summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKelly (KT) Thompson <KineticTheory@users.noreply.github.com>2020-10-10 20:02:00 -0600
committerGitHub <noreply@github.com>2020-10-10 21:02:00 -0500
commit933aacf7b6ad250fc4828be3dd3cf3d766daa2ab (patch)
tree840d51f5c49d33a09c5e1bdeaaa1516bae968c88
parente8306e8f22a217ec8424fb126fcee63967293d3f (diff)
downloadspack-933aacf7b6ad250fc4828be3dd3cf3d766daa2ab.tar.gz
spack-933aacf7b6ad250fc4828be3dd3cf3d766daa2ab.tar.bz2
spack-933aacf7b6ad250fc4828be3dd3cf3d766daa2ab.tar.xz
spack-933aacf7b6ad250fc4828be3dd3cf3d766daa2ab.zip
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.
-rw-r--r--var/spack/repos/builtin/packages/draco/d760-cray.patch107
-rw-r--r--var/spack/repos/builtin/packages/draco/package.py38
-rw-r--r--var/spack/repos/builtin/packages/draco/smpi.patch12
3 files changed, 128 insertions, 29 deletions
diff --git a/var/spack/repos/builtin/packages/draco/d760-cray.patch b/var/spack/repos/builtin/packages/draco/d760-cray.patch
new file mode 100644
index 0000000000..dece924461
--- /dev/null
+++ b/var/spack/repos/builtin/packages/draco/d760-cray.patch
@@ -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()
+
+ ##---------------------------------------------------------------------------##
diff --git a/var/spack/repos/builtin/packages/draco/package.py b/var/spack/repos/builtin/packages/draco/package.py
index 6b3e2da72c..eed12b8e75 100644
--- a/var/spack/repos/builtin/packages/draco/package.py
+++ b/var/spack/repos/builtin/packages/draco/package.py
@@ -18,6 +18,7 @@ class Draco(CMakePackage):
maintainers = ['KineticTheory']
version('develop', branch='develop')
+ version('7.8.0', sha256='f6de794457441f69025619be58810bca432f3e0dd773ea9b9a7977b1dc09530d')
version('7.7.0', sha256='eb7fffbcba48e16524f619d261192ead129f968c59f3581f3217b89590812ddf')
version('7.6.0', sha256='c2c6b329620d7bcb0f2fc14371f105dfb80a84e7c5adbb34620777034b15c7c9')
version('7.5.0', sha256='0bb12b5f5ff60ba3087310c07da42e8d4f481ec4259daaa24ec240815a2e9dec')
@@ -34,26 +35,29 @@ class Draco(CMakePackage):
variant('build_type', default='Release', description='CMake build type',
values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'))
+ 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('lapack', default=True, description='Enable LAPACK wrapper')
- variant('libquo', default=True, description='Enable Quo wrapper')
- variant('parmetis', default=True, description='Enable Parmetis support')
+ variant('eospac', default=True, description='Enable EOSPAC support')
+ variant('lapack', default=True, description='Enable LAPACK wrapper')
+ variant('libquo', default=True, description='Enable Quo wrapper')
+ variant('parmetis', default=True, description='Enable Parmetis support')
variant('qt', default=False, description='Enable Qt support')
variant('superlu_dist', default=True, description='Enable SuperLU-DIST support')
- depends_on('gsl')
- depends_on('mpi@3:', type=('build', 'link', 'run'))
- 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('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:7.6.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('cuda@10.1:', when='+cuda')
+ depends_on('gsl')
+ depends_on('mpi@3:', type=('build', 'link', 'run'))
+ depends_on('numdiff', 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'))
+
+ # Optional dependencies
+ depends_on('caliper', when='+caliper')
+ depends_on('cuda@11.0:', when='+cuda')
depends_on('eospac@6.3:', when='+eospac')
depends_on('lapack', when='+lapack')
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')
conflicts('+cuda', when='@:7.6.99')
+ conflicts('+caliper', when='@:7.7.99')
# Fix python discovery.
patch('d710.patch', when='@7.1.0^python@3:')
patch('d710-python2.patch', when='@7.1.0^python@2.7:2.99')
patch('d730.patch', when='@7.3.0:7.3.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')
def url_for_version(self, version):
@@ -81,10 +86,9 @@ class Draco(CMakePackage):
options = []
options.extend([
'-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
def check(self):
diff --git a/var/spack/repos/builtin/packages/draco/smpi.patch b/var/spack/repos/builtin/packages/draco/smpi.patch
deleted file mode 100644
index 64b80d8e34..0000000000
--- a/var/spack/repos/builtin/packages/draco/smpi.patch
+++ /dev/null
@@ -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()