summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/care/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/care/package.py')
-rw-r--r--var/spack/repos/builtin/packages/care/package.py165
1 files changed, 84 insertions, 81 deletions
diff --git a/var/spack/repos/builtin/packages/care/package.py b/var/spack/repos/builtin/packages/care/package.py
index 2e86701cb7..3ffe48c737 100644
--- a/var/spack/repos/builtin/packages/care/package.py
+++ b/var/spack/repos/builtin/packages/care/package.py
@@ -12,121 +12,124 @@ class Care(CMakePackage, CudaPackage, ROCmPackage):
"""
homepage = "https://github.com/LLNL/CARE"
- git = "https://github.com/LLNL/CARE.git"
- tags = ['radiuss']
-
- version('develop', branch='develop', submodules='True')
- version('master', branch='main', submodules='True')
- version('0.3.0', tag='v0.3.0', submodules='True')
- version('0.2.0', tag='v0.2.0', submodules='True')
-
- variant('openmp', default=False, description='Build Shared Libs')
- variant('implicit_conversions', default=True, description='Enable implicit'
- 'conversions to/from raw pointers')
- variant('benchmarks', default=True, description='Build benchmarks.')
- variant('examples', default=True, description='Build examples.')
- variant('docs', default=False, description='Build documentation')
- variant('tests', default=False, description='Build tests')
- variant('loop_fuser', default=False, description='Enable loop fusion capability')
-
- depends_on('blt@0.4.0:', type='build', when='@0.3.1:')
- depends_on('blt@:0.3.6', type='build', when='@:0.3.0')
-
- depends_on('camp')
- depends_on('umpire@develop')
- depends_on('raja@develop')
- depends_on('chai@develop+enable_pick~benchmarks')
+ git = "https://github.com/LLNL/CARE.git"
+ tags = ["radiuss"]
+
+ version("develop", branch="develop", submodules="True")
+ version("master", branch="main", submodules="True")
+ version("0.3.0", tag="v0.3.0", submodules="True")
+ version("0.2.0", tag="v0.2.0", submodules="True")
+
+ variant("openmp", default=False, description="Build Shared Libs")
+ variant(
+ "implicit_conversions",
+ default=True,
+ description="Enable implicit" "conversions to/from raw pointers",
+ )
+ variant("benchmarks", default=True, description="Build benchmarks.")
+ variant("examples", default=True, description="Build examples.")
+ variant("docs", default=False, description="Build documentation")
+ variant("tests", default=False, description="Build tests")
+ variant("loop_fuser", default=False, description="Enable loop fusion capability")
+
+ depends_on("blt@0.4.0:", type="build", when="@0.3.1:")
+ depends_on("blt@:0.3.6", type="build", when="@:0.3.0")
+
+ depends_on("camp")
+ depends_on("umpire@develop")
+ depends_on("raja@develop")
+ depends_on("chai@develop+enable_pick~benchmarks")
# WARNING: this package currently only supports an internal cub
# package. This will cause a race condition if compiled with another
# package that uses cub. TODO: have all packages point to the same external
# cub package.
- depends_on('camp+cuda', when='+cuda')
- depends_on('umpire+cuda~shared', when='+cuda')
- depends_on('cub', when='+cuda')
- depends_on('raja+cuda~openmp', when='+cuda')
- depends_on('chai+cuda~shared', when='+cuda')
+ depends_on("camp+cuda", when="+cuda")
+ depends_on("umpire+cuda~shared", when="+cuda")
+ depends_on("cub", when="+cuda")
+ depends_on("raja+cuda~openmp", when="+cuda")
+ depends_on("chai+cuda~shared", when="+cuda")
# variants +rocm and amdgpu_targets are not automatically passed to
# dependencies, so do it manually.
- depends_on('camp+rocm', when='+rocm')
- depends_on('umpire+rocm', when='+rocm')
- depends_on('raja+rocm~openmp', when='+rocm')
- depends_on('chai+rocm', when='+rocm')
+ depends_on("camp+rocm", when="+rocm")
+ depends_on("umpire+rocm", when="+rocm")
+ depends_on("raja+rocm~openmp", when="+rocm")
+ depends_on("chai+rocm", when="+rocm")
for val in ROCmPackage.amdgpu_targets:
- depends_on('camp amdgpu_target=%s' % val, when='amdgpu_target=%s' % val)
- depends_on('umpire amdgpu_target=%s' % val, when='amdgpu_target=%s' % val)
- depends_on('raja amdgpu_target=%s' % val, when='amdgpu_target=%s' % val)
- depends_on('chai amdgpu_target=%s' % val, when='amdgpu_target=%s' % val)
+ depends_on("camp amdgpu_target=%s" % val, when="amdgpu_target=%s" % val)
+ depends_on("umpire amdgpu_target=%s" % val, when="amdgpu_target=%s" % val)
+ depends_on("raja amdgpu_target=%s" % val, when="amdgpu_target=%s" % val)
+ depends_on("chai amdgpu_target=%s" % val, when="amdgpu_target=%s" % val)
- conflicts('+openmp', when='+rocm')
- conflicts('+openmp', when='+cuda')
+ conflicts("+openmp", when="+rocm")
+ conflicts("+openmp", when="+cuda")
def cmake_args(self):
spec = self.spec
from_variant = self.define_from_variant
options = []
- options.append('-DBLT_SOURCE_DIR={0}'.format(spec['blt'].prefix))
-
- if '+cuda' in spec:
- options.extend([
- '-DENABLE_CUDA=ON',
- '-DCUDA_TOOLKIT_ROOT_DIR=' + spec['cuda'].prefix,
- '-DNVTOOLSEXT_DIR=' + spec['cuda'].prefix,
- '-DCUB_DIR=' + spec['cub'].prefix])
-
- if not spec.satisfies('cuda_arch=none'):
- cuda_arch = spec.variants['cuda_arch'].value
+ options.append("-DBLT_SOURCE_DIR={0}".format(spec["blt"].prefix))
+
+ if "+cuda" in spec:
+ options.extend(
+ [
+ "-DENABLE_CUDA=ON",
+ "-DCUDA_TOOLKIT_ROOT_DIR=" + spec["cuda"].prefix,
+ "-DNVTOOLSEXT_DIR=" + spec["cuda"].prefix,
+ "-DCUB_DIR=" + spec["cub"].prefix,
+ ]
+ )
+
+ if not spec.satisfies("cuda_arch=none"):
+ cuda_arch = spec.variants["cuda_arch"].value
# Please note that within care, CUDA_ARCH is assigned to -code
# and likewise CUDA_CODE is assigned to -arch, so these are
# intentionally flipped here.
- options.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch[0]))
- options.append('-DCUDA_CODE=compute_{0}'.format(cuda_arch[0]))
+ options.append("-DCUDA_ARCH=sm_{0}".format(cuda_arch[0]))
+ options.append("-DCUDA_CODE=compute_{0}".format(cuda_arch[0]))
else:
- options.append('-DENABLE_CUDA=OFF')
+ options.append("-DENABLE_CUDA=OFF")
- if '+rocm' in spec:
- options.extend([
- '-DENABLE_HIP=ON',
- '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix)])
+ if "+rocm" in spec:
+ options.extend(["-DENABLE_HIP=ON", "-DHIP_ROOT_DIR={0}".format(spec["hip"].prefix)])
- archs = self.spec.variants['amdgpu_target'].value
- if archs != 'none':
+ archs = self.spec.variants["amdgpu_target"].value
+ if archs != "none":
arch_str = ",".join(archs)
- options.append(
- '-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.format(arch_str)
- )
+ options.append("-DHIP_HIPCC_FLAGS=--amdgpu-target={0}".format(arch_str))
else:
- options.append('-DENABLE_HIP=OFF')
-
- options.extend([
- from_variant('CARE_ENABLE_IMPLICIT_CONVERSIONS',
- 'implicit_conversions'),
- from_variant('CARE_ENABLE_LOOP_FUSER', 'loop_fuser'),
- self.define('CAMP_DIR', spec['camp'].prefix.share.camp.cmake),
- self.define('UMPIRE_DIR', spec['umpire'].prefix.share.umpire.cmake),
- self.define('RAJA_DIR', spec['raja'].prefix.share.raja.cmake),
- self.define('CHAI_DIR', spec['chai'].prefix.share.chai.cmake),
- from_variant('CARE_ENABLE_TESTS', 'tests'),
- ])
+ options.append("-DENABLE_HIP=OFF")
+
+ options.extend(
+ [
+ from_variant("CARE_ENABLE_IMPLICIT_CONVERSIONS", "implicit_conversions"),
+ from_variant("CARE_ENABLE_LOOP_FUSER", "loop_fuser"),
+ self.define("CAMP_DIR", spec["camp"].prefix.share.camp.cmake),
+ self.define("UMPIRE_DIR", spec["umpire"].prefix.share.umpire.cmake),
+ self.define("RAJA_DIR", spec["raja"].prefix.share.raja.cmake),
+ self.define("CHAI_DIR", spec["chai"].prefix.share.chai.cmake),
+ from_variant("CARE_ENABLE_TESTS", "tests"),
+ ]
+ )
# For tests to work, we also need BLT_ENABLE_TESTS to be on.
# This will take care of the gtest dependency. CARE developers should
# consider consolidating these flags in the future.
- options.append(from_variant('BLT_ENABLE_TESTS', 'tests'))
+ options.append(from_variant("BLT_ENABLE_TESTS", "tests"))
# There are both CARE_ENABLE_* and ENABLE_* variables in here because
# one controls the BLT infrastructure and the other controls the CARE
# infrastructure. The goal is to just be able to use the CARE_ENABLE_*
# variables, but CARE isn't set up correctly for that yet.
- options.append(from_variant('ENABLE_BENCHMARKS', 'benchmarks'))
- options.append(from_variant('CARE_ENABLE_BENCHMARKS', 'benchmarks'))
+ options.append(from_variant("ENABLE_BENCHMARKS", "benchmarks"))
+ options.append(from_variant("CARE_ENABLE_BENCHMARKS", "benchmarks"))
- options.append(from_variant('ENABLE_EXAMPLES', 'examples'))
- options.append(from_variant('CARE_ENABLE_EXAMPLES', 'examples'))
+ options.append(from_variant("ENABLE_EXAMPLES", "examples"))
+ options.append(from_variant("CARE_ENABLE_EXAMPLES", "examples"))
- options.append(from_variant('ENABLE_DOCS', 'docs'))
- options.append(from_variant('CARE_ENABLE_DOCS', 'docs'))
+ options.append(from_variant("ENABLE_DOCS", "docs"))
+ options.append(from_variant("CARE_ENABLE_DOCS", "docs"))
return options