Provide draco-7_8_0. (#18947)
* Provide draco-7_8_0. + Also provide a patchfile for draco-7_6_0 to support CrayPE builds. + Version 7.8.0 has a new variant `+caliper`. + Sort dependencies alphabetically after grouping by required and optional. * Remove patchfile that is no longer needed. + Newer versions of draco do not require this patch. + Older versions of draco are not supported for spectrum-mpi. * Change new variant +caliper to default to False.
This commit is contained in:
parent
e8306e8f22
commit
933aacf7b6
107
var/spack/repos/builtin/packages/draco/d760-cray.patch
Normal file
107
var/spack/repos/builtin/packages/draco/d760-cray.patch
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
diff --git a/config/platform_checks.cmake b/config/platform_checks.cmake
|
||||||
|
index d2ab4da9..4d3c14c2 100644
|
||||||
|
--- a/config/platform_checks.cmake
|
||||||
|
+++ b/config/platform_checks.cmake
|
||||||
|
@@ -77,54 +77,54 @@ endif()
|
||||||
|
#------------------------------------------------------------------------------#
|
||||||
|
macro( query_craype )
|
||||||
|
|
||||||
|
- if( NOT DEFINED CRAY_PE )
|
||||||
|
-
|
||||||
|
- # Is this a Cray machine?
|
||||||
|
- message( STATUS "Looking to see if we are building in a Cray Environment...")
|
||||||
|
- if( DEFINED ENV{CRAYPE_VERSION} )
|
||||||
|
- set( CRAY_PE ON CACHE BOOL
|
||||||
|
- "Are we building in a Cray Programming Environment?")
|
||||||
|
-
|
||||||
|
- # We expect developers to use the Cray compiler wrappers (especially in
|
||||||
|
- # setupMPI.cmake). See also
|
||||||
|
- # https://cmake.org/cmake/help/latest/module/FindMPI.html
|
||||||
|
- if( NOT "$ENV{CXX}" MATCHES "$ENV{SPACK_ROOT}/lib/spack/env/" )
|
||||||
|
- # skip this check if building from within spack.
|
||||||
|
- 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 (CRAY_PE=${CRAY_PE}). 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()
|
||||||
|
- message( STATUS
|
||||||
|
- "Looking to see if we are building in a Cray Environment..."
|
||||||
|
- "found version $ENV{CRAYPE_VERSION}.")
|
||||||
|
- else()
|
||||||
|
- set( CRAY_PE OFF CACHE BOOL
|
||||||
|
- "Are we building in a Cray Programming Environment?")
|
||||||
|
- message( STATUS
|
||||||
|
- "Looking to see if we are building in a Cray Environment...no.")
|
||||||
|
- endif()
|
||||||
|
-
|
||||||
|
- endif()
|
||||||
|
+ # if( NOT DEFINED CRAY_PE )
|
||||||
|
+
|
||||||
|
+ # # Is this a Cray machine?
|
||||||
|
+ # message( STATUS "Looking to see if we are building in a Cray Environment...")
|
||||||
|
+ # if( DEFINED ENV{CRAYPE_VERSION} )
|
||||||
|
+ # set( CRAY_PE ON CACHE BOOL
|
||||||
|
+ # "Are we building in a Cray Programming Environment?")
|
||||||
|
+
|
||||||
|
+ # # We expect developers to use the Cray compiler wrappers (especially in
|
||||||
|
+ # # setupMPI.cmake). See also
|
||||||
|
+ # # https://cmake.org/cmake/help/latest/module/FindMPI.html
|
||||||
|
+ # if( NOT "$ENV{CXX}" MATCHES "$ENV{SPACK_ROOT}/lib/spack/env/" )
|
||||||
|
+ # # skip this check if building from within spack.
|
||||||
|
+ # 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 (CRAY_PE=${CRAY_PE}). 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()
|
||||||
|
+ # message( STATUS
|
||||||
|
+ # "Looking to see if we are building in a Cray Environment..."
|
||||||
|
+ # "found version $ENV{CRAYPE_VERSION}.")
|
||||||
|
+ # else()
|
||||||
|
+ # set( CRAY_PE OFF CACHE BOOL
|
||||||
|
+ # "Are we building in a Cray Programming Environment?")
|
||||||
|
+ # message( STATUS
|
||||||
|
+ # "Looking to see if we are building in a Cray Environment...no.")
|
||||||
|
+ # endif()
|
||||||
|
+
|
||||||
|
+ # endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
##---------------------------------------------------------------------------##
|
@ -18,6 +18,7 @@ class Draco(CMakePackage):
|
|||||||
maintainers = ['KineticTheory']
|
maintainers = ['KineticTheory']
|
||||||
|
|
||||||
version('develop', branch='develop')
|
version('develop', branch='develop')
|
||||||
|
version('7.8.0', sha256='f6de794457441f69025619be58810bca432f3e0dd773ea9b9a7977b1dc09530d')
|
||||||
version('7.7.0', sha256='eb7fffbcba48e16524f619d261192ead129f968c59f3581f3217b89590812ddf')
|
version('7.7.0', sha256='eb7fffbcba48e16524f619d261192ead129f968c59f3581f3217b89590812ddf')
|
||||||
version('7.6.0', sha256='c2c6b329620d7bcb0f2fc14371f105dfb80a84e7c5adbb34620777034b15c7c9')
|
version('7.6.0', sha256='c2c6b329620d7bcb0f2fc14371f105dfb80a84e7c5adbb34620777034b15c7c9')
|
||||||
version('7.5.0', sha256='0bb12b5f5ff60ba3087310c07da42e8d4f481ec4259daaa24ec240815a2e9dec')
|
version('7.5.0', sha256='0bb12b5f5ff60ba3087310c07da42e8d4f481ec4259daaa24ec240815a2e9dec')
|
||||||
@ -34,6 +35,7 @@ class Draco(CMakePackage):
|
|||||||
|
|
||||||
variant('build_type', default='Release', description='CMake build type',
|
variant('build_type', default='Release', description='CMake build type',
|
||||||
values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'))
|
values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'))
|
||||||
|
variant('caliper', default=False, description='Enable caliper timers support')
|
||||||
variant('cuda', default=False, description='Enable Cuda/GPU support')
|
variant('cuda', default=False, description='Enable Cuda/GPU support')
|
||||||
variant('eospac', default=True, description='Enable EOSPAC support')
|
variant('eospac', default=True, description='Enable EOSPAC support')
|
||||||
variant('lapack', default=True, description='Enable LAPACK wrapper')
|
variant('lapack', default=True, description='Enable LAPACK wrapper')
|
||||||
@ -42,18 +44,20 @@ class Draco(CMakePackage):
|
|||||||
variant('qt', default=False, description='Enable Qt support')
|
variant('qt', default=False, description='Enable Qt support')
|
||||||
variant('superlu_dist', default=True, description='Enable SuperLU-DIST support')
|
variant('superlu_dist', default=True, description='Enable SuperLU-DIST support')
|
||||||
|
|
||||||
|
depends_on('cmake@3.9:', when='@:6.99', type='build')
|
||||||
|
depends_on('cmake@3.11:', when='@7.0.0:7.1.99', type='build')
|
||||||
|
depends_on('cmake@3.14:', when='@7.2.0:7.6.99', type='build')
|
||||||
|
depends_on('cmake@3.17:', when='@7.7:', type='build')
|
||||||
depends_on('gsl')
|
depends_on('gsl')
|
||||||
depends_on('mpi@3:', type=('build', 'link', 'run'))
|
depends_on('mpi@3:', type=('build', 'link', 'run'))
|
||||||
depends_on('numdiff', type='build')
|
depends_on('numdiff', type='build')
|
||||||
depends_on('python@2.7:', when='@:7.6.99', type=('build', 'run'))
|
|
||||||
depends_on('python@3.5:', when='@7.7.0:', type=('build', 'run', 'test'))
|
|
||||||
depends_on('random123@1.09', type='build')
|
depends_on('random123@1.09', type='build')
|
||||||
|
depends_on('python@2.7:', when='@7.7.0:', type=('build', 'run'))
|
||||||
|
depends_on('python@3.5:', when='@:7.6.99', type=('build', 'run', 'test'))
|
||||||
|
|
||||||
depends_on('cmake@3.9:', when='@:6.99', type='build')
|
# Optional dependencies
|
||||||
depends_on('cmake@3.11:', when='@7.0.0:7.1.99', type='build')
|
depends_on('caliper', when='+caliper')
|
||||||
depends_on('cmake@3.14:', when='@7.2:7.6.99', type='build')
|
depends_on('cuda@11.0:', when='+cuda')
|
||||||
depends_on('cmake@3.17:', when='@7.7:', type='build')
|
|
||||||
depends_on('cuda@10.1:', when='+cuda')
|
|
||||||
depends_on('eospac@6.3:', when='+eospac')
|
depends_on('eospac@6.3:', when='+eospac')
|
||||||
depends_on('lapack', when='+lapack')
|
depends_on('lapack', when='+lapack')
|
||||||
depends_on('libquo@1.3.1:', when='@7.4.0:+libquo')
|
depends_on('libquo@1.3.1:', when='@7.4.0:+libquo')
|
||||||
@ -64,13 +68,14 @@ class Draco(CMakePackage):
|
|||||||
depends_on('superlu-dist@:5.99', when='@:7.6.99+superlu_dist')
|
depends_on('superlu-dist@:5.99', when='@:7.6.99+superlu_dist')
|
||||||
|
|
||||||
conflicts('+cuda', when='@:7.6.99')
|
conflicts('+cuda', when='@:7.6.99')
|
||||||
|
conflicts('+caliper', when='@:7.7.99')
|
||||||
|
|
||||||
# Fix python discovery.
|
# Fix python discovery.
|
||||||
patch('d710.patch', when='@7.1.0^python@3:')
|
patch('d710.patch', when='@7.1.0^python@3:')
|
||||||
patch('d710-python2.patch', when='@7.1.0^python@2.7:2.99')
|
patch('d710-python2.patch', when='@7.1.0^python@2.7:2.99')
|
||||||
patch('d730.patch', when='@7.3.0:7.3.99')
|
patch('d730.patch', when='@7.3.0:7.3.99')
|
||||||
patch('d740.patch', when='@7.4.0:7.4.99')
|
patch('d740.patch', when='@7.4.0:7.4.99')
|
||||||
patch('smpi.patch', when='@:7.6.99')
|
patch('d760-cray.patch', when='@7.6.0')
|
||||||
patch('d770-nocuda.patch', when='@7.7.0')
|
patch('d770-nocuda.patch', when='@7.7.0')
|
||||||
|
|
||||||
def url_for_version(self, version):
|
def url_for_version(self, version):
|
||||||
@ -81,10 +86,9 @@ def cmake_args(self):
|
|||||||
options = []
|
options = []
|
||||||
options.extend([
|
options.extend([
|
||||||
'-Wno-dev',
|
'-Wno-dev',
|
||||||
'-DBUILD_TESTING={0}'.format('ON' if self.run_tests else 'OFF')
|
'-DBUILD_TESTING={0}'.format('ON' if self.run_tests else 'OFF'),
|
||||||
|
'-DUSE_CUDA={0}'.format('ON' if '+cuda' in self.spec else 'OFF')
|
||||||
])
|
])
|
||||||
if '~cuda' in self.spec:
|
|
||||||
options.extend(['-DUSE_CUDA=OFF'])
|
|
||||||
return options
|
return options
|
||||||
|
|
||||||
def check(self):
|
def check(self):
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
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()
|
|
Loading…
Reference in New Issue
Block a user