diff --git a/scripts/spack_packages/packages/blt/package.py b/scripts/spack_packages/packages/blt/package.py new file mode 100644 index 00000000..536bb020 --- /dev/null +++ b/scripts/spack_packages/packages/blt/package.py @@ -0,0 +1,9 @@ +from spack.package import * +from spack_repo.builtin.packages.blt.package import Blt as BuiltinBlt + + +class Blt(BuiltinBlt): + version( + "0.7.2", + sha256="107f2c1d616bcfc629a11d887f0bb1b602aef1fe5e4580db65e592f23925e23f", + ) diff --git a/scripts/spack_packages/packages/camp/package.py b/scripts/spack_packages/packages/camp/package.py new file mode 100644 index 00000000..3049a2d8 --- /dev/null +++ b/scripts/spack_packages/packages/camp/package.py @@ -0,0 +1,18 @@ +from spack.package import * +from spack_repo.builtin.packages.camp.package import Camp as BuiltinCamp + + +class Camp(BuiltinCamp): + version( + "2026.05.18", + commit="47a3682c3d5ff43b542ad7e29569eb5e157f918e", + submodules=False, + ) + + def cmake_args(self): + args = super().cmake_args() + args.append(self.define("BLT_CXX_STD", "c++20")) + args.append(self.define("CMAKE_CXX_STANDARD", 20)) + args.append(self.define("CMAKE_CUDA_STANDARD", 20)) + args.append(self.define("CMAKE_HIP_STANDARD", 20)) + return args diff --git a/scripts/spack_packages/packages/chai/package.py b/scripts/spack_packages/packages/chai/package.py index 16b68a56..96d19945 100644 --- a/scripts/spack_packages/packages/chai/package.py +++ b/scripts/spack_packages/packages/chai/package.py @@ -4,6 +4,19 @@ from spack_repo.builtin.packages.chai.package import Chai as BuiltinChai class Chai(BuiltinChai): + version( + "2026.04.13", + commit="c4de793a61596a6787afb07ed0dd1dfee349f34f", + submodules=False, + ) + # Bypass llnl_link_helpers failure depends_on("fortran") + def cmake_args(self): + args = super().cmake_args() + args.append(self.define("BLT_CXX_STD", "c++20")) + args.append(self.define("CMAKE_CXX_STANDARD", 20)) + args.append(self.define("CMAKE_CUDA_STANDARD", 20)) + args.append(self.define("CMAKE_HIP_STANDARD", 20)) + return args diff --git a/scripts/spack_packages/packages/geosx/package.py b/scripts/spack_packages/packages/geosx/package.py index 91c3c7df..d96f31d0 100644 --- a/scripts/spack_packages/packages/geosx/package.py +++ b/scripts/spack_packages/packages/geosx/package.py @@ -77,7 +77,8 @@ class Geosx(CMakePackage, CudaPackage, ROCmPackage): multi=False) variant('grpc', default=False, description='Enable gRPC.') variant('pygeosx', default=True, description='Enable pygeosx.') - variant('cxxstd', default='17', description='CXX standard.') + variant('cxxstd', default='20', values=('20',), multi=False, + description='CXX standard.') # SPHINX_END_VARIANTS @@ -93,6 +94,8 @@ class Geosx(CMakePackage, CudaPackage, ROCmPackage): variant('cuda_stack_size', default="0", description="Defines the adjusted cuda stack \ size limit if required. Zero or negative keep default behavior") + requires('cxxstd=20', msg='GEOS.AI TPL snapshots require C++20.') + # SPHINX_BEGIN_DEPENDS depends_on("c", type="build") depends_on("cxx", type="build") @@ -100,7 +103,8 @@ class Geosx(CMakePackage, CudaPackage, ROCmPackage): depends_on('cmake@3.24:', type='build') - depends_on('blt@0.7.1') + depends_on('blt@0.7.1', when='~cuda') + depends_on('blt@0.7.2', when='+cuda') # # Virtual packages @@ -112,11 +116,14 @@ class Geosx(CMakePackage, CudaPackage, ROCmPackage): # # Performance portability # - raja_suite_version="2025.12.0" - depends_on(f"raja @{raja_suite_version} ~examples~exercises~shared") - depends_on(f"chai @{raja_suite_version} +raja~examples~shared") - depends_on(f"camp @{raja_suite_version}") - depends_on(f"umpire @{raja_suite_version} +c~examples+fortran~device_alloc~shared") + raja_version = "2026.05.19" + chai_version = "2026.04.13" + camp_version = "2026.05.18" + umpire_version = "2026.03.31" + depends_on(f"chai @{chai_version} +raja~examples~shared") + depends_on(f"raja @{raja_version} ~examples~exercises~shared") + depends_on(f"camp @{camp_version}") + depends_on(f"umpire @{umpire_version} +c~examples+fortran~device_alloc~shared") with when('+openmp'): for pkg in ('raja', 'chai', 'umpire'): depends_on(f"{pkg}+openmp", when="+openmp") @@ -152,9 +159,7 @@ class Geosx(CMakePackage, CudaPackage, ROCmPackage): depends_on('pugixml@1.13 ~shared') - depends_on('fmt@11') - for _fmt_cxxstd in ('14', '17', '20'): - depends_on(f'fmt@11 cxxstd={_fmt_cxxstd}', when=f'cxxstd={_fmt_cxxstd}') + depends_on('fmt@12.1.0 cxxstd=20') depends_on('vtk@9.4.2', when='+vtk') # diff --git a/scripts/spack_packages/packages/raja/package.py b/scripts/spack_packages/packages/raja/package.py new file mode 100644 index 00000000..1db6ba26 --- /dev/null +++ b/scripts/spack_packages/packages/raja/package.py @@ -0,0 +1,18 @@ +from spack.package import * +from spack_repo.builtin.packages.raja.package import Raja as BuiltinRaja + + +class Raja(BuiltinRaja): + version( + "2026.05.19", + commit="d9a03fd56f7fb81540aeacbf082eb35dbb840b9c", + submodules=False, + ) + + def cmake_args(self): + args = super().cmake_args() + args.append(self.define("BLT_CXX_STD", "c++20")) + args.append(self.define("CMAKE_CXX_STANDARD", 20)) + args.append(self.define("CMAKE_CUDA_STANDARD", 20)) + args.append(self.define("CMAKE_HIP_STANDARD", 20)) + return args diff --git a/scripts/spack_packages/packages/umpire/package.py b/scripts/spack_packages/packages/umpire/package.py new file mode 100644 index 00000000..9429d2e1 --- /dev/null +++ b/scripts/spack_packages/packages/umpire/package.py @@ -0,0 +1,20 @@ +from spack.package import * +from spack_repo.builtin.packages.umpire.package import Umpire as BuiltinUmpire + + +class Umpire(BuiltinUmpire): + version( + "2026.03.31", + commit="5ff0d696d84f1048faf72085743630fcf33c0928", + submodules=False, + ) + + depends_on("fmt@12.1.0", when="@2026.03.31") + + def cmake_args(self): + args = super().cmake_args() + args.append(self.define("BLT_CXX_STD", "c++20")) + args.append(self.define("CMAKE_CXX_STANDARD", 20)) + args.append(self.define("CMAKE_CUDA_STANDARD", 20)) + args.append(self.define("CMAKE_HIP_STANDARD", 20)) + return args