Provide patches provided by consumers of draco. (#32281)

This commit is contained in:
Kelly (KT) Thompson 2022-08-22 08:04:58 -06:00 committed by GitHub
parent 00b244853e
commit 1c61f0420a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 183 additions and 0 deletions

View File

@ -0,0 +1,56 @@
From ce2d856a516a592cf6c123d2862e9bbdaa4d6926 Mon Sep 17 00:00:00 2001
From: Howard Pritchard <hppritcha@gmail.com>
Date: Mon, 7 Dec 2020 13:53:45 -0700
Subject: [PATCH] CMAKE: add option to not use QT
Signed-off-by: Howard Pritchard <hppritcha@gmail.com>
diff --git a/config/vendor_libraries.cmake b/config/vendor_libraries.cmake
index 5a3e9d0c..8782170d 100644
--- a/config/vendor_libraries.cmake
+++ b/config/vendor_libraries.cmake
@@ -318,22 +318,27 @@ endmacro()
macro( setupQt )
message( STATUS "Looking for Qt SDK...." )
- # Find the QtWidgets library
- find_package(Qt5 COMPONENTS Widgets QUIET)
+ option (USE_QT "Build QT support for Draco" ON)
- if( Qt5Core_DIR )
- mark_as_advanced( Qt5Core_DIR Qt5Gui_DIR Qt5Gui_EGL_LIBRARY
- Qt5Widgets_DIR QTDIR)
- message( STATUS "Looking for Qt SDK....found ${Qt5Core_DIR}" )
- else()
- message( STATUS "Looking for Qt SDK....not found." )
- endif()
+ if( USE_QT )
+ # Find the QtWidgets library
+ find_package(Qt5 COMPONENTS Widgets QUIET)
- set_package_properties( Qt PROPERTIES
- URL "http://qt.io"
- DESCRIPTION "Qt is a comprehensive cross-platform C++ application framework."
- TYPE OPTIONAL
- PURPOSE "Only needed to demo qt version of draco_diagnostics." )
+ if( Qt5Core_DIR )
+ mark_as_advanced( Qt5Core_DIR Qt5Gui_DIR Qt5Gui_EGL_LIBRARY
+ Qt5Widgets_DIR QTDIR)
+ message( STATUS "Looking for Qt SDK....found ${Qt5Core_DIR}" )
+ else()
+ message( STATUS "Looking for Qt SDK....not found." )
+ endif()
+
+ set_package_properties( Qt PROPERTIES
+ URL "http://qt.io"
+ DESCRIPTION "Qt is a comprehensive cross-platform C++ application framework."
+ TYPE OPTIONAL
+ PURPOSE "Only needed to demo qt version of draco_diagnostics." )
+
+ endif()
endmacro()
--
2.26.2

View File

@ -0,0 +1,25 @@
Allow Draco-7_5_0 to compile with intel-17.0.4 by removing components experimental and cdi_CPEloss.
This bug is tracked at https://github.com/kokkos/mdspan/issues/16
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index d1aec250..9ebbf8de 100755
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -52,7 +52,7 @@ add_dir_if_exists( c4 ) # needs ds++
add_dir_if_exists( cdi ) # needs ds++
add_dir_if_exists( compton ) # needs ds++, CSK
add_dir_if_exists( device ) # needs ds++
-add_dir_if_exists( experimental ) # only the tests need ds++
+#add_dir_if_exists( experimental ) # only the tests need ds++
add_dir_if_exists( lapack_wrap ) # needs ds++
add_dir_if_exists( linear ) # needs ds++
add_dir_if_exists( memory ) # needs ds++
@@ -66,7 +66,7 @@ add_dir_if_exists( viz ) # needs ds++
# Level 3
message(" ")
message( STATUS "Configuring Level 3 packages --" )
-add_dir_if_exists( cdi_CPEloss ) # needs cdi, units
+#add_dir_if_exists( cdi_CPEloss ) # needs cdi, units
add_dir_if_exists( cdi_ipcress ) # needs cdi
add_dir_if_exists( cdi_ndi ) # needs ds++, rng, cdi
add_dir_if_exists( diagnostics ) # needs c4

View File

@ -0,0 +1,77 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f7a69c95..e44d3496 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -72,7 +72,6 @@ dbsConfigInfo()
# Platform Checks: Is HOST_NAME_MAX defined? Is WinSock2.h available? Is
# gethostname() available?
include( platform_checks )
-query_craype()
set_draco_uname()
query_have_gethostname()
query_have_maxpathlen()
diff --git a/config/platform_checks.cmake b/config/platform_checks.cmake
index 3ddcdab3..e66fd5e8 100644
--- a/config/platform_checks.cmake
+++ b/config/platform_checks.cmake
@@ -64,48 +64,6 @@ Platform Checks...
")
dbs_set_sitename()
-#------------------------------------------------------------------------------#
-# Sanity checks for Cray Programming Environments
-#
-# - Ensure CMAKE_EXE_LINKER_FLAGS contains "-dynamic"
-# - Ensure that the compilers given to cmake are actually Cray compiler
-# wrappers.
-#------------------------------------------------------------------------------#
-macro( query_craype )
-
- # We expect developers to use the Cray compiler wrappers. See also
- # https://cmake.org/cmake/help/latest/module/FindMPI.html
- #
- # Skip this check if building from within spack.
- if( CMAKE_CXX_COMPILER_WRAPPER STREQUAL CrayPrgEnv AND
- NOT "$ENV{CXX}" MATCHES "$ENV{SPACK_ROOT}/lib/spack/env/" )
- if( NOT "$ENV{CXX}" MATCHES "CC$" OR
- NOT "$ENV{CC}" MATCHES "cc$" OR
- NOT "$ENV{FC}" MATCHES "ftn$" OR
- NOT "$ENV{CRAYPE_LINK_TYPE}" MATCHES "dynamic$" )
- message( FATAL_ERROR
- "The build system requires that the Cray compiler wrappers (CC, cc, "
- "ftn) be used when configuring this product on a Cray system "
- "(CMAKE_CXX_COMPILER_WRAPPER = ${CMAKE_CXX_COMPILER_WRAPPER}). The "
- "development environment must also support dynamic linking. The "
- "build system thinks you are trying to use:\n"
- " CMAKE_CXX_COMPILER = ${CMAKE_CXX_COMPILER}\n"
- " CMAKE_C_COMPILER = ${CMAKE_C_COMPILER}\n"
- " CMAKE_Fortran_COMPILER = ${CMAKE_Fortran_COMPILER}\n"
- " CRAYPE_LINK_TYPE = $ENV{CRAYPE_LINK_TYPE}\n"
- "If you are working on a system that runs the Cray Programming "
- "Environment, try setting the following variables and rerunning cmake "
- "from a clean build directory:\n"
- " export CXX=`which CC`\n"
- " export CC=`which cc`\n"
- " export FC=`which ftn`\n"
- " export CRAYPE_LINK_TYPE=dynamic\n"
- "Otherwise please email this error message and other related "
- "information to draco@lanl.gov.\n" )
- endif()
- endif()
-endmacro()
-
##---------------------------------------------------------------------------##
## Determine System Type and System Names
##
diff --git a/config/vendor_libraries.cmake b/config/vendor_libraries.cmake
index 7112e786..55596abe 100644
--- a/config/vendor_libraries.cmake
+++ b/config/vendor_libraries.cmake
@@ -786,7 +786,6 @@ Looking for Draco...\")
# CMake macros that check the system for features like 'gethostname', etc.
include( platform_checks )
- query_craype()
# Set compiler options
include( compilerEnv )

View File

@ -49,6 +49,7 @@ class Draco(CMakePackage):
variant("caliper", default=False, description="Enable caliper timers support")
variant("cuda", default=False, description="Enable Cuda/GPU support")
variant("eospac", default=True, description="Enable EOSPAC support")
variant("fast_fma", default=False, description="Enable fast FMA operations")
variant("lapack", default=True, description="Enable LAPACK wrapper")
variant("libquo", default=True, description="Enable Quo wrapper")
variant("parmetis", default=True, description="Enable Parmetis support")
@ -90,8 +91,12 @@ class Draco(CMakePackage):
patch("d710-python2.patch", when="@7.1.0^python@2.7:2")
patch("d730.patch", when="@7.3.0:7.3")
patch("d740.patch", when="@7.4.0:7.4")
patch("d750-intel17.patch", when="@7.5.0:7.6.99%intel@17.0.0:18.0.0")
patch("d760-cray.patch", when="@7.6.0")
patch("d770-nocuda.patch", when="@7.7.0")
patch("d770-query_craype.patch", when="@7.7.0")
patch("smpi.patch", when="@:7.6.99")
patch("CMAKE-add-option-to-not-use-QT.patch", when="@7.8.0")
def url_for_version(self, version):
url = "https://github.com/lanl/Draco/archive/draco-{0}.zip"
@ -107,6 +112,14 @@ def cmake_args(self):
"-DUSE_QT={0}".format("ON" if "+qt" in self.spec else "OFF"),
]
)
if "+fast_fma" in self.spec:
options.extend(
[
"-DDRACO_ROUNDOFF_MODE={0}".format(
"FAST" if "build_type=Release" in self.spec else "ACCURATE"
)
]
)
return options
def check(self):

View File

@ -0,0 +1,12 @@
The LANL Darwin platform calls the IBM Spectrum modules "smpi".
diff -up config/setupMPI.cmake.smpi config/setupMPI.cmake
--- a/config/setupMPI.cmake.smpi 2020-05-28 11:54:17.851957957 -0600
+++ b/config/setupMPI.cmake 2020-05-28 11:55:35.018332601 -0600
@@ -46,6 +46,7 @@ function( setMPIflavorVer )
elseif( "${MPIEXEC_EXECUTABLE}" MATCHES "mvapich2")
set( MPI_FLAVOR "mvapich2" )
elseif( "${MPIEXEC_EXECUTABLE}" MATCHES "spectrum-mpi" OR
+ "${MPIEXEC_EXECUTABLE}" MATCHES "smpi" OR
"${MPIEXEC_EXECUTABLE}" MATCHES "jsrun" )
set( MPI_FLAVOR "spectrum")
endif()