dray: add new variant and host config entry (#28598)
This commit is contained in:
parent
218b1c153c
commit
b300a9d7a5
@ -31,7 +31,7 @@ class Dray(Package, CudaPackage):
|
|||||||
git = "https://github.com/LLNL/devil_ray.git"
|
git = "https://github.com/LLNL/devil_ray.git"
|
||||||
url = "https://github.com/LLNL/devil_ray/releases/download/v0.1.2/dray-v0.1.2.tar.gz"
|
url = "https://github.com/LLNL/devil_ray/releases/download/v0.1.2/dray-v0.1.2.tar.gz"
|
||||||
|
|
||||||
maintainers = ['mclarsen', 'cyrush']
|
maintainers = ['cyrush']
|
||||||
|
|
||||||
version('develop', branch='develop', submodules='True')
|
version('develop', branch='develop', submodules='True')
|
||||||
version('0.1.8', sha256='ae78ca6a5a31f06f6400a4a1ff6fc1d75347c8b41027a80662179f5b877eee30')
|
version('0.1.8', sha256='ae78ca6a5a31f06f6400a4a1ff6fc1d75347c8b41027a80662179f5b877eee30')
|
||||||
@ -52,6 +52,8 @@ class Dray(Package, CudaPackage):
|
|||||||
variant("logging", default=False, description='Enable logging')
|
variant("logging", default=False, description='Enable logging')
|
||||||
variant("stats", default=False, description='Enable stats')
|
variant("stats", default=False, description='Enable stats')
|
||||||
variant("mpi", default=True, description='Enable MPI compiler')
|
variant("mpi", default=True, description='Enable MPI compiler')
|
||||||
|
# set to false for systems that implicitly link mpi
|
||||||
|
variant('blt_find_mpi', default=True, description='Use BLT CMake Find MPI logic')
|
||||||
|
|
||||||
depends_on('cuda', when='+cuda')
|
depends_on('cuda', when='+cuda')
|
||||||
depends_on('mpi', when='+mpi')
|
depends_on('mpi', when='+mpi')
|
||||||
@ -185,27 +187,40 @@ def create_host_config(self, spec, prefix):
|
|||||||
cfg.write("#######\n")
|
cfg.write("#######\n")
|
||||||
cfg.write("# using %s compiler spec\n" % spec.compiler)
|
cfg.write("# using %s compiler spec\n" % spec.compiler)
|
||||||
cfg.write("#######\n\n")
|
cfg.write("#######\n\n")
|
||||||
|
cfg.write("# c compiler used by spack\n")
|
||||||
|
cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", c_compiler))
|
||||||
|
cfg.write("# cpp compiler used by spack\n")
|
||||||
|
cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler))
|
||||||
|
|
||||||
if "+mpi" in spec:
|
if "+mpi" in spec:
|
||||||
cfg.write(cmake_cache_entry("ENABLE_MPI", "ON"))
|
|
||||||
mpicc_path = spec['mpi'].mpicc
|
mpicc_path = spec['mpi'].mpicc
|
||||||
mpicxx_path = spec['mpi'].mpicxx
|
mpicxx_path = spec['mpi'].mpicxx
|
||||||
# if we are using compiler wrappers on cray systems
|
# if we are using compiler wrappers on cray systems
|
||||||
# use those for mpi wrappers, b/c spec['mpi'].mpicxx
|
# use those for mpi wrappers, b/c spec['mpi'].mpicxx
|
||||||
# etc make return the spack compiler wrappers
|
# etc make return the spack compiler wrappers
|
||||||
# which can trip up mpi detection in CMake 3.14
|
# which can trip up mpi detection in CMake 3.14
|
||||||
if cpp_compiler == "CC":
|
if spec['mpi'].mpicc == spack_cc:
|
||||||
mpicc_path = "cc"
|
mpicc_path = c_compiler
|
||||||
mpicxx_path = "CC"
|
mpicxx_path = cpp_compiler
|
||||||
|
cfg.write(cmake_cache_entry("ENABLE_MPI", "ON"))
|
||||||
cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", mpicc_path))
|
cfg.write(cmake_cache_entry("MPI_C_COMPILER", mpicc_path))
|
||||||
cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", mpicxx_path))
|
cfg.write(cmake_cache_entry("MPI_CXX_COMPILER", mpicxx_path))
|
||||||
|
if "+blt_find_mpi" in spec:
|
||||||
|
cfg.write(cmake_cache_entry("ENABLE_FIND_MPI", "ON"))
|
||||||
|
else:
|
||||||
|
cfg.write(cmake_cache_entry("ENABLE_FIND_MPI", "OFF"))
|
||||||
|
mpiexe_bin = join_path(spec['mpi'].prefix.bin, 'mpiexec')
|
||||||
|
if os.path.isfile(mpiexe_bin):
|
||||||
|
# starting with cmake 3.10, FindMPI expects MPIEXEC_EXECUTABLE
|
||||||
|
# vs the older versions which expect MPIEXEC
|
||||||
|
if self.spec["cmake"].satisfies('@3.10:'):
|
||||||
|
cfg.write(cmake_cache_entry("MPIEXEC_EXECUTABLE",
|
||||||
|
mpiexe_bin))
|
||||||
|
else:
|
||||||
|
cfg.write(cmake_cache_entry("MPIEXEC",
|
||||||
|
mpiexe_bin))
|
||||||
else:
|
else:
|
||||||
cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF"))
|
cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF"))
|
||||||
cfg.write("# c compiler used by spack\n")
|
|
||||||
cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", c_compiler))
|
|
||||||
cfg.write("# cpp compiler used by spack\n")
|
|
||||||
cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler))
|
|
||||||
|
|
||||||
# use global spack compiler flags
|
# use global spack compiler flags
|
||||||
cppflags = ' '.join(spec.compiler_flags['cppflags'])
|
cppflags = ' '.join(spec.compiler_flags['cppflags'])
|
||||||
|
Loading…
Reference in New Issue
Block a user