diff --git a/.uberenv_config.json b/.uberenv_config.json index 5f201a4b..9ebb8c7b 100644 --- a/.uberenv_config.json +++ b/.uberenv_config.json @@ -8,6 +8,6 @@ "spack_url": "https://github.com/spack/spack", "spack_commit": "0c2be44e4ece21eb091ad5de4c97716b7c6d4c87", "spack_commit_note": "v1.1.0 (Nov 14th 2025)", -"spack_packages_commit": "cfa8d650480c409de2d568cf1355bf7e509f4c1c", -"spack_packages_note": "Jan 21st 2026" +"spack_packages_commit": "3dd98680871078353a28ee508fa76c7554f918fa", +"spack_packages_note": "Feb 25th 2026" } diff --git a/CMakeLists.txt b/CMakeLists.txt index 588800b3..cd80f5db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -334,7 +334,7 @@ list(APPEND build_list silo ) set(RAJA_DIR "${CMAKE_INSTALL_PREFIX}/raja") -set(RAJA_URL "${TPL_MIRROR_DIR}/RAJA-v2025.03.0.tar.gz") +set(RAJA_URL "${TPL_MIRROR_DIR}/RAJA-v2025.12.0.tar.gz") message(STATUS "Building RAJA found at ${RAJA_URL}") @@ -374,7 +374,7 @@ list(APPEND build_list raja ) # CHAI ################################ set(CHAI_DIR "${CMAKE_INSTALL_PREFIX}/chai") -set(CHAI_URL "${TPL_MIRROR_DIR}/chai-2025.03.0.tar.gz") +set(CHAI_URL "${TPL_MIRROR_DIR}/chai-2025.12.0.tar.gz") message(STATUS "Building CHAI found at ${CHAI_URL}") ExternalProject_Add( chai @@ -448,7 +448,7 @@ if (ENABLE_CALIPER) set(CALIPER_DIR "${CMAKE_INSTALL_PREFIX}/caliper") - set(CALIPER_URL "${TPL_MIRROR_DIR}/Caliper-2.12.0.tar.gz") + set(CALIPER_URL "${TPL_MIRROR_DIR}/Caliper-2.14.0.tar.gz") message(STATUS "Building Caliper found at ${CALIPER_URL}") set(CALIPER_WITH_CUPTI OFF) diff --git a/cmake/blt b/cmake/blt index 9ff77344..e783e30f 160000 --- a/cmake/blt +++ b/cmake/blt @@ -1 +1 @@ -Subproject commit 9ff77344f0b2a6ee345e452bddd6bfd46cbbfa35 +Subproject commit e783e30f2823ee1a208f7f90741b41c1f5a08063 diff --git a/scripts/spack_configs/versions.yaml b/scripts/spack_configs/versions.yaml index 5708dbb8..7c5da2af 100644 --- a/scripts/spack_configs/versions.yaml +++ b/scripts/spack_configs/versions.yaml @@ -14,34 +14,10 @@ # This file lists the package versions for geos's dependencies # packages: - # v0.6.2 - blt: - require: "@git.9ff77344f0b2a6ee345e452bddd6bfd46cbbfa35=develop" - # master - 01/23/26 hypre: require: "@git.8b0093306228fef1b92384d9face7fbe5a63b460=master" - # v2025.0.3.0 - chai: - require: "@git.4b9060b18b9bec1167026cfb3132bd540c4bd56b=develop" - - # v2025.0.3.0 - umpire: - require: "@git.1ed0669c57f041baa1f1070693991c3a7a43e7ee=develop" - - # v2025.0.3.0 - raja: - require: "@git.1d70abf171474d331f1409908bdf1b1c3fe19222=develop" - - # v2025.0.3.0 - camp: - require: "@git.ee0a3069a7ae72da8bcea63c06260fad34901d43=main" - - # v2.12.0 - caliper: - require: "@git.287b7f3ad2d12f520aad04268d44f353cd05403c" - # v0.9.2 conduit: require: "@git.ad86e316ad56a75c099d30ca5ce75cff275b5924=develop" diff --git a/scripts/spack_packages/packages/geosx/package.py b/scripts/spack_packages/packages/geosx/package.py index 3bcac0cb..1c1d119d 100644 --- a/scripts/spack_packages/packages/geosx/package.py +++ b/scripts/spack_packages/packages/geosx/package.py @@ -76,6 +76,7 @@ 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.') # SPHINX_END_VARIANTS @@ -98,7 +99,7 @@ class Geosx(CMakePackage, CudaPackage, ROCmPackage): depends_on('cmake@3.24:', type='build') - depends_on('blt') + depends_on('blt@0.7.1') # # Virtual packages @@ -110,20 +111,14 @@ class Geosx(CMakePackage, CudaPackage, ROCmPackage): # # Performance portability # - depends_on('raja ~examples~exercises~shared') - depends_on("raja~openmp", when="~openmp") - depends_on("raja+openmp", when="+openmp") - - depends_on('umpire +c~examples+fortran~device_alloc~shared') - depends_on("umpire~openmp", when="~openmp") - depends_on("umpire+openmp", when="+openmp") - - depends_on('chai +raja~examples~shared') - depends_on("chai~openmp", when="~openmp") - depends_on("chai+openmp", when="+openmp") - - depends_on('camp') - + 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") + with when('+openmp'): + for pkg in ('raja', 'chai', 'umpire'): + depends_on(f"{pkg}+openmp", when="+openmp") # # GPUs # @@ -152,11 +147,13 @@ class Geosx(CMakePackage, CudaPackage, ROCmPackage): depends_on('conduit~test~fortran~hdf5_compat+shared') depends_on('adiak@0.4.0 ~shared', when='+caliper') - depends_on('caliper~gotcha~sampler~libunwind~libdw', when='+caliper') + depends_on('caliper@2.14.0 ~gotcha~sampler~libunwind~libdw', when='+caliper') depends_on('pugixml@1.13 ~shared') - depends_on('fmt@10.0.0 cxxstd=14') + 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('vtk@9.4.2', when='+vtk') # @@ -355,7 +352,7 @@ def geos_hostconfig(self, spec, prefix, py_site_pkgs_dir=None): cfg.write("# CMake Standard\n") cfg.write("#{0}\n\n".format("-" * 80)) - cfg.write(cmake_cache_string("BLT_CXX_STD", "c++17")) + cfg.write(cmake_cache_string("BLT_CXX_STD", f"c++{spec.variants['cxxstd'].value}")) cfg.write("#{0}\n".format("-" * 80)) cfg.write("# MPI\n") @@ -439,7 +436,7 @@ def geos_hostconfig(self, spec, prefix, py_site_pkgs_dir=None): cfg.write('#{0}\n\n'.format('-' * 80)) if '+cuda' in spec: cfg.write(cmake_cache_option('ENABLE_CUDA', True)) - cfg.write(cmake_cache_entry('CMAKE_CUDA_STANDARD', 17)) + cfg.write(cmake_cache_string('CMAKE_CUDA_STANDARD', spec.variants['cxxstd'].value)) cudatoolkitdir = spec['cuda'].prefix cfg.write(cmake_cache_entry('CUDA_TOOLKIT_ROOT_DIR', cudatoolkitdir)) @@ -484,7 +481,7 @@ def geos_hostconfig(self, spec, prefix, py_site_pkgs_dir=None): cfg.write('#{0}\n\n'.format('-' * 80)) if '+rocm' in spec: cfg.write(cmake_cache_option('ENABLE_HIP', True)) - cfg.write(cmake_cache_string('CMAKE_HIP_STANDARD', 17)) + cfg.write(cmake_cache_string('CMAKE_HIP_STANDARD', spec.variants['cxxstd'].value)) cfg.write(cmake_cache_entry('CMAKE_HIP_COMPILER', spec['hip'].prefix.bin.hipcc)) if not spec.satisfies('amdgpu_target=none'): @@ -532,7 +529,20 @@ def geos_hostconfig(self, spec, prefix, py_site_pkgs_dir=None): for tpl, cmake_name, enable in io_tpls: if enable: - cfg.write(cmake_cache_entry('{}_DIR'.format(cmake_name), spec[tpl].prefix)) + dep_spec = None + if tpl == 'zlib': + # Spack may concretize zlib-api to zlib-ng instead of zlib. + for candidate in ('zlib', 'zlib-ng', 'zlib-api'): + try: + dep_spec = spec[candidate] + break + except KeyError: + pass + if dep_spec is None: + raise KeyError("No zlib provider (zlib/zlib-ng/zlib-api) found in {0}".format(spec)) + else: + dep_spec = spec[tpl] + cfg.write(cmake_cache_entry('{}_DIR'.format(cmake_name), dep_spec.prefix)) else: cfg.write(cmake_cache_option('ENABLE_{}'.format(cmake_name), False)) @@ -754,7 +764,7 @@ def lvarray_hostconfig(self, spec, prefix, py_site_pkgs_dir=None): cfg.write('#{0}\n\n'.format('-' * 80)) if '+cuda' in spec: cfg.write(cmake_cache_option('ENABLE_CUDA', True)) - cfg.write(cmake_cache_entry('CMAKE_CUDA_STANDARD', 17)) + cfg.write(cmake_cache_string('CMAKE_CUDA_STANDARD', spec.variants['cxxstd'].value)) cudatoolkitdir = spec['cuda'].prefix cfg.write(cmake_cache_entry('CUDA_TOOLKIT_ROOT_DIR', cudatoolkitdir)) diff --git a/tplMirror/Caliper-2.12.0.tar.gz b/tplMirror/Caliper-2.12.0.tar.gz deleted file mode 100644 index 12c4753f..00000000 --- a/tplMirror/Caliper-2.12.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3e76d64905e4c17676d78047a8e84edbcbe4176edf789850fce42f69a7d9d1e2 -size 2089422 diff --git a/tplMirror/Caliper-2.14.0.tar.gz b/tplMirror/Caliper-2.14.0.tar.gz new file mode 100644 index 00000000..ddfa6526 --- /dev/null +++ b/tplMirror/Caliper-2.14.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b42c35dfbe485960dd326033893dae37ac00d9807c5c3e6b5b1f396bc4af273f +size 2093696 diff --git a/tplMirror/RAJA-v2025.03.0.tar.gz b/tplMirror/RAJA-v2025.03.0.tar.gz deleted file mode 100644 index 49233dc7..00000000 --- a/tplMirror/RAJA-v2025.03.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:60d047e04e7e7855f7b31e5f54bf66e465c52a6efb3871ace33cc8da1cb1b9ae -size 11182913 diff --git a/tplMirror/RAJA-v2025.12.0.tar.gz b/tplMirror/RAJA-v2025.12.0.tar.gz new file mode 100644 index 00000000..4a17ad92 --- /dev/null +++ b/tplMirror/RAJA-v2025.12.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e8b4656a79fe01f01b122947365537537505073e4a8dbf388ee85f105f678d2 +size 10997567 diff --git a/tplMirror/chai-2025.03.0.tar.gz b/tplMirror/chai-2025.03.0.tar.gz deleted file mode 100644 index 088ebdda..00000000 --- a/tplMirror/chai-2025.03.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:144917f3185b7d112392e9f99c1fbc74b9e0be79cdbee445e0879ea2487d3d73 -size 23937809 diff --git a/tplMirror/chai-v2025.12.0.tar.gz b/tplMirror/chai-v2025.12.0.tar.gz new file mode 100644 index 00000000..897ff763 --- /dev/null +++ b/tplMirror/chai-v2025.12.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c77a17dbb1aade696681b7b747a7437f4e4252361d57dca1fe7edd20d5b1984b +size 23851995