diff --git a/.github/workflows/build-full.yml b/.github/workflows/build-docker.yml similarity index 66% rename from .github/workflows/build-full.yml rename to .github/workflows/build-docker.yml index 9ac6225430..2dbc88b7c1 100644 --- a/.github/workflows/build-full.yml +++ b/.github/workflows/build-docker.yml @@ -1,4 +1,4 @@ -name: build-full +name: build-docker on: workflow_dispatch: workflow_call: @@ -11,59 +11,49 @@ jobs: # TODO: this currently includes non-GPU builds as well # and won't actually run on device gpu: - name: gpu + name: >- + ${{format('{0}{1}{2}-{3}-{4}', + matrix.special, + matrix.special && '-' || '', + matrix.geometry, + matrix.buildtype, + matrix.image)}} strategy: fail-fast: false matrix: special: [null] - geometry: ['orange', 'vecgeom'] - buildtype: ['debug', 'ndebug'] - image: ['ubuntu-cuda', 'centos-rocm'] + geometry: ["orange", "vecgeom"] + buildtype: ["debug", "ndebug"] + image: ["ubuntu-cuda", "centos-rocm"] exclude: - - geometry: 'vecgeom' - image: 'centos-rocm' # VecGeom not installed on HIP - - buildtype: 'debug' - image: 'centos-rocm' # Debug builds don't work with HIP + - geometry: "vecgeom" + image: "centos-rocm" # VecGeom not installed on HIP + - buildtype: "debug" + image: "centos-rocm" # Debug builds don't work with HIP include: - - special: 'asan' - geometry: 'orange' - buildtype: 'reldeb' - image: 'centos-rocm' - - special: 'minimal' - geometry: 'orange' - buildtype: 'debug' - image: 'centos-rocm' - - special: 'float' - geometry: 'orange' - buildtype: 'debug' - image: 'centos-rocm' - - special: 'float' - geometry: 'orange' - buildtype: 'ndebug' - image: 'centos-rocm' - - geometry: 'geant4' - buildtype: 'reldeb' - image: 'centos-rocm' - - geometry: 'vecgeom' - buildtype: 'reldeb' - image: 'ubuntu-cuda' - - special: 'clhep' - geometry: 'vecgeom' - buildtype: 'debug' - image: 'ubuntu-cuda' + - special: "asan" + geometry: "orange" + buildtype: "reldeb" + image: "centos-rocm" + - geometry: "vecgeom" + buildtype: "reldeb" + image: "ubuntu-cuda" env: ASAN_OPTIONS: "detect_leaks=0" CELER_TEST_STRICT: 1 CELER_DISABLE_DEVICE: 1 # IMPORTANT CMAKE_PRESET: >- - ${{matrix.buildtype}}-${{matrix.geometry}}${{matrix.special && '-' || ''}}${{matrix.special}} + ${{format('{0}-{1}{2}{3}', + matrix.buildtype, + matrix.geometry, + matrix.special && '-' || '', + matrix.special)}} runs-on: ubuntu-latest container: image: >- docker.io/celeritas/${{ matrix.image == 'ubuntu-cuda' && 'ci-jammy-cuda11:2023-08-02' || matrix.image == 'centos-rocm' && 'ci-centos7-rocm5:2022-12-14.2' - || null }} # See https://github.com/actions/checkout/issues/956 options: --user root @@ -108,11 +98,12 @@ jobs: done ./bin/celer-sim --version - name: Build examples - # TODO: asan needs -fsanitize=address # TODO: rocm+ndebug fails to propagate HIP library link + # TODO: ASAN requires flags downstream if: >- - ${{ matrix.special != 'asan' - && !(matrix.image == 'centos-rocm' && matrix.buildtype == 'ndebug') + ${{ + !(matrix.image == 'centos-rocm' && matrix.buildtype == 'ndebug') + && (matrix.special != 'asan') }} run: | . /etc/profile diff --git a/.github/workflows/build-fast.yml b/.github/workflows/build-fast.yml index f99caffb65..121e4a80a4 100644 --- a/.github/workflows/build-fast.yml +++ b/.github/workflows/build-fast.yml @@ -10,7 +10,7 @@ concurrency: jobs: linux: - name: ${{matrix.runner}}-${{matrix.compiler}}-${{matrix.version}} + name: "${{matrix.runner}}-${{matrix.compiler}}-${{matrix.version}}" strategy: matrix: include: @@ -26,16 +26,17 @@ jobs: - runner: jammy compiler: clang version: 15 - runs-on: >- - ${{ matrix.runner == 'focal' && 'ubuntu-20.04' - || matrix.runner == 'jammy' && 'ubuntu-22.04' - || null - }} env: + GHA_JOB_NAME: "${{matrix.runner}}-${{matrix.compiler}}-${{matrix.version}}" CCACHE_DIR: "${{github.workspace}}/.ccache" - CCACHE_MAXSIZE: "10G" + CCACHE_MAXSIZE: "100Mi" + CMAKE_PRESET: fast CC: ${{matrix.compiler}}-${{matrix.version}} CXX: ${{matrix.compiler == 'gcc' && 'g++' || 'clang++'}}-${{matrix.version}} + runs-on: >- + ${{ matrix.runner == 'focal' && 'ubuntu-20.04' + || matrix.runner == 'jammy' && 'ubuntu-22.04' + }} steps: - name: Install dependencies run: | @@ -52,30 +53,22 @@ jobs: - name: Check out Celeritas uses: actions/checkout@v4 - name: Cache ccache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ${{env.CCACHE_DIR}} - key: ccache-${{matrix.runner}}-${{matrix.compiler}}-${{matrix.version}}-${{github.run_id}} - restore-keys: ccache-${{matrix.runner}}-${{matrix.compiler}}-${{matrix.version}} + key: ccache-${{env.GHA_JOB_NAME}}-${{github.run_id}} + restore-keys: | + ccache-${{env.GHA_JOB_NAME}} - name: Zero ccache stats run: | ccache -z - name: Configure Celeritas run: | - mkdir build && cd build - cmake -GNinja \ + ln -fs scripts/cmake-presets/ci-ubuntu-github.json CMakeUserPresets.json + cmake --preset=${CMAKE_PRESET} \ -DCeleritas_GIT_DESCRIBE="${{github.event.pull_request && format(';-pr.{0};', github.event.pull_request.number) - || format(';-{0};', github.ref_name)}}" \ - -DCELERITAS_BUILD_DEMOS:BOOL=ON \ - -DCELERITAS_BUILD_TESTS:BOOL=ON \ - -DCELERITAS_USE_SWIG=OFF \ - -DCELERITAS_DEBUG:BOOL=ON \ - -DCMAKE_BUILD_TYPE="Release" \ - -DCMAKE_INSTALL_PREFIX="${{github.workspace}}/install" \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -DCMAKE_CXX_FLAGS="-Werror -Wall -Wextra -pedantic -Wno-error=deprecated-declarations" \ - .. + || format(';-{0};', github.ref_name)}}" - name: Build all working-directory: build run: | diff --git a/.github/workflows/build-spack.yml b/.github/workflows/build-spack.yml index 227dc6750d..ec90ed0073 100644 --- a/.github/workflows/build-spack.yml +++ b/.github/workflows/build-spack.yml @@ -11,26 +11,47 @@ env: SPACK_REF: 968ad02473b12f6305cc1fe19f2a0d706f171154 jobs: - linux: - name: jammy-g4-${{matrix.geant}} + spack: + name: >- + ${{format('{0}{1}{2}{3}{4}', + matrix.geometry, + matrix.special && '-' || '', + matrix.special, + matrix.geant && '-g4@' || '', + matrix.geant)}} strategy: + fail-fast: false matrix: - compiler: [clang] - version: [15] + geometry: ["vecgeom"] + special: [null] geant: ["10.5", "10.6", "10.7", "11.0", "11.1", "11.2"] - experimental: [false] - continue-on-error: ${{matrix.experimental}} - runs-on: ubuntu-22.04 - permissions: - packages: write + include: + - geometry: "orange" + special: "minimal" + geant: null + - geometry: "orange" + special: "float" + geant: "11.0" + - geometry: "vecgeom" + special: "clhep" + geant: "11.0" + - geometry: "geant4" + special: null + geant: "11.0" env: CCACHE_DIR: "${{github.workspace}}/.ccache" - CCACHE_MAXSIZE: "1G" - CELERITAS_VERSION: "0.5.0" + CCACHE_MAXSIZE: "100Mi" + CMAKE_PRESET: >- + ${{format('reldeb-{0}{1}{2}', + matrix.geometry, + matrix.special && '-' || '', + matrix.special)}} SPACK_VIEW: "/opt/spack-view" SPACK_BUILDCACHE: "celer-buildcache" # see spack.yaml - CC: ${{matrix.compiler}}-${{matrix.version}} - CXX: ${{matrix.compiler == 'gcc' && 'g++' || 'clang++'}}-${{matrix.version}} + CC: "clang-15" + CXX: "clang++-15" + runs-on: ubuntu-22.04 + continue-on-error: false steps: - name: Check out Celeritas uses: actions/checkout@v4 @@ -47,8 +68,16 @@ jobs: - name: Initialize spack environment run: | cp scripts/ci/spack.yaml . - spack -e . add geant4@${{matrix.geant}} - spack -e . config add packages:all:require:"'%${{matrix.compiler}}@${{matrix.version}} target=x86_64_v3'" + if [ "${{matrix.geometry}}" == "vecgeom" ]; then + spack -e . add vecgeom + fi + if [ "${{matrix.special}}" != "minimal" ]; then + spack -e . add root + fi + if [ "${{matrix.geant}}" != "" ]; then + spack -e . add geant4@${{matrix.geant}} + fi + spack -e . config add packages:all:require:"'%clang@15 target=x86_64_v3'" spack -e . compiler find # Add the spack ref so that updating spack will reconcretize echo "# Concretized with ${{env.SPACK_REF}}" >> spack.yaml @@ -81,36 +110,33 @@ jobs: uses: actions/cache@v4 with: path: ${{env.CCACHE_DIR}} - key: ccache-spack-${{matrix.compiler}}-${{matrix.version}}-${{matrix.geant}}-${{github.run_id}} + key: ccache-${{env.CMAKE_PRESET}}-${{matrix.geant}}-${{github.run_id}} + # NOTE: remove ccache-spack-clang-15* in follow-up PR restore-keys: | - ccache-spack-${{matrix.compiler}}-${{matrix.version}}-${{matrix.geant}}- - ccache-spack-${{matrix.compiler}}-${{matrix.version}}- + ccache-${{env.CMAKE_PRESET}}-${{matrix.geant}} + ccache-${{env.CMAKE_PRESET}} + ccache-spack-clang-15-${{matrix.geant}}- + ccache-spack-clang-15- - name: Zero ccache stats run: | ccache -z - name: Configure Celeritas run: | - mkdir build && cd build - cmake -GNinja --log-level=VERBOSE \ - -DCELERITAS_BUILD_DEMOS:BOOL=ON \ - -DCELERITAS_BUILD_TESTS:BOOL=ON \ - -DCELERITAS_USE_SWIG=OFF \ - -DCELERITAS_USE_Geant4=ON \ - -DCELERITAS_DEBUG:BOOL=ON \ - -DCMAKE_BUILD_TYPE="Release" \ - -DCMAKE_INSTALL_PREFIX="${{github.workspace}}/install" \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -DCMAKE_CXX_FLAGS="-Werror -Wall -Wextra -pedantic -Wno-error=deprecated-declarations" \ - .. - + ln -fs scripts/cmake-presets/ci-ubuntu-github.json CMakeUserPresets.json + cmake --preset=${CMAKE_PRESET} --log-level=VERBOSE - name: Build all working-directory: build run: | ninja -v -k0 - name: Run tests working-directory: build - continue-on-error: true # TODO: disable or fix failing tests + continue-on-error: ${{matrix.geant != '11.0'}} # TODO: disable or fix failing tests run: | + if [ "${{matrix.geant}}" == "11.0" ]; then + # TODO: add 11.0.4 and clhep version to tests + #export CELER_TEST_STRICT=1 + echo "warning: strict testing is disabled" + fi ctest --parallel $(nproc) --timeout 15 --output-on-failure \ --test-output-size-passed=32768 --test-output-size-failed=1048576 - name: Install @@ -128,11 +154,10 @@ jobs: - name: Build examples run: | . ${SPACK_VIEW}/rc - CMAKE_PRESET=spack-vecgeom ./scripts/ci/test-examples.sh + ./scripts/ci/test-examples.sh - name: Show ccache stats if: ${{!cancelled()}} run: | ccache -s - # vim: set nowrap tw=100: diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml index 3cf0eb187b..156e6f6877 100644 --- a/.github/workflows/doc.yml +++ b/.github/workflows/doc.yml @@ -46,12 +46,15 @@ jobs: working-directory: build run: | ninja doxygen - - name: Upload pages artifacts + - name: Upload artifacts if: ${{env.celer_upload_doc}} - id: upload-pages-user - uses: actions/upload-pages-artifact@v2 + uses: actions/upload-artifact@v4 with: path: build/doc/doxygen-html + name: doc-dev + if-no-files-found: error + overwrite: true + retention-days: 7 user: runs-on: ubuntu-latest steps: @@ -60,7 +63,7 @@ jobs: sudo apt-get -y update sudo apt-get -y install \ cmake graphviz ninja-build doxygen gcc - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: '3.10' - name: Check out Celeritas @@ -84,12 +87,16 @@ jobs: working-directory: build run: | ninja doc - - name: Upload pages artifacts + - name: Upload artifacts if: ${{env.celer_upload_doc}} - id: upload-pages-user - uses: actions/upload-pages-artifact@v2 + uses: actions/upload-artifact@v4 with: path: build/doc/html + name: doc-user + if-no-files-found: error + overwrite: true + retention-days: 7 + #TODO: deploy with actions/deploy-pages@v2 ? # vim: set nowrap tw=100: diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 4b423d2c4b..60bf57ed7b 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -28,9 +28,9 @@ jobs: steps: - name: Success run: "true" - build-full: + build-docker: needs: [all-prechecks] - uses: ./.github/workflows/build-full.yml + uses: ./.github/workflows/build-docker.yml build-spack: needs: [all-prechecks] uses: ./.github/workflows/build-spack.yml @@ -39,7 +39,7 @@ jobs: all: if: ${{always()}} needs: - - build-full + - build-docker - build-spack runs-on: ubuntu-latest steps: diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index c66f8f38ec..96357f7ba4 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -18,14 +18,14 @@ concurrency: jobs: build-fast: uses: ./.github/workflows/build-fast.yml - build-full: - uses: ./.github/workflows/build-full.yml + build-docker: + uses: ./.github/workflows/build-docker.yml build-spack: uses: ./.github/workflows/build-spack.yml doc: uses: ./.github/workflows/doc.yml all: - needs: [build-fast, build-full, build-spack, doc] + needs: [build-fast, build-docker, build-spack, doc] runs-on: ubuntu-latest steps: - name: Success diff --git a/scripts/ci/spack.yaml b/scripts/ci/spack.yaml index 829dae86da..92a2f7eb6e 100644 --- a/scripts/ci/spack.yaml +++ b/scripts/ci/spack.yaml @@ -1,4 +1,4 @@ -# Note that the Geant4 spec is added by the CI script. +# Note that Geant4 and vecgom specs are added by the CI script. # Most of these specs should correspond to # https://github.com/celeritas-project/spack-gha-buildcache/blob/main/spack.yaml spack: @@ -8,15 +8,12 @@ spack: - cmake - googletest - hepmc3 - - libtree - ninja - nlohmann-json - - root - - vecgeom + - swig config: install_tree: root: /opt/spack - padded_length: 116 projections: all: "{name}/{version}/{hash:7}" mirrors: diff --git a/scripts/cmake-presets/ci-centos-rocm.json b/scripts/cmake-presets/ci-centos-rocm.json index d29e51ca7f..28c238df58 100644 --- a/scripts/cmake-presets/ci-centos-rocm.json +++ b/scripts/cmake-presets/ci-centos-rocm.json @@ -41,26 +41,6 @@ "CMAKE_CXX_FLAGS_RELWITHDEBINFO": "-O2 -g -DNDEBUG -fsanitize=address -fno-omit-frame-pointer" } }, - { - "name": "debug-orange-minimal", - "description": "Build with minimal reasonable dependencies", - "inherits": [".debug", "base"], - "cacheVariables": { - "CELERITAS_USE_Geant4": {"type": "BOOL", "value": "OFF"}, - "CELERITAS_USE_HepMC3": {"type": "BOOL", "value": "OFF"}, - "CELERITAS_USE_HIP": {"type": "BOOL", "value": "OFF"}, - "CELERITAS_USE_OpenMP": {"type": "BOOL", "value": "OFF"} - } - }, - { - "name": "debug-orange-float", - "description": "Build with single-precision arithmetic (no HIP)", - "inherits": [".reldeb", "base"], - "cacheVariables": { - "CELERITAS_USE_HIP": {"type": "BOOL", "value": "OFF"}, - "CELERITAS_REAL_TYPE": "float" - } - }, { "name": "ndebug-orange-float", "description": "Build with single-precision arithmetic and HIP/ROCm", @@ -73,17 +53,6 @@ "name": "ndebug-orange", "description": "Build with HIP/ROCm for AMD", "inherits": [".ndebug", "base"] - }, - { - "name": "reldeb-geant4", - "description": "Build with geant4 as the core geometry (no HIP)", - "inherits": [".reldeb", "base"], - "cacheVariables": { - "CELERITAS_USE_HIP": {"type": "BOOL", "value": "OFF"}, - "CELERITAS_USE_OpenMP": {"type": "BOOL", "value": "OFF"}, - "CELERITAS_CORE_GEO": "Geant4", - "CMAKE_BUILD_TYPE": "RelWithDebInfo" - } } ], "buildPresets": [ @@ -94,11 +63,7 @@ "verbose": true, "jobs": 16 }, - {"name": "reldeb-orange-asan", "configurePreset": "reldeb-orange-asan", "inherits": "base"}, - {"name": "debug-orange-minimal", "configurePreset": "debug-orange-minimal", "inherits": "base"}, - {"name": "debug-orange-float", "configurePreset": "debug-orange-float", "inherits": "base"}, {"name": "ndebug-orange-float", "configurePreset": "ndebug-orange-float", "inherits": "base"}, - {"name": "reldeb-geant4", "configurePreset": "reldeb-geant4", "inherits": "base"}, {"name": "ndebug-orange", "configurePreset": "ndebug-orange", "inherits": "base", "targets": ["all", "install"]} ], @@ -118,11 +83,7 @@ "outputOnFailure": true } }, - {"name": "reldeb-orange-asan", "configurePreset": "reldeb-orange-asan", "inherits": "base"}, - {"name": "debug-orange-minimal", "configurePreset": "debug-orange-minimal", "inherits": "base"}, - {"name": "debug-orange-float", "configurePreset": "debug-orange-float", "inherits": "base"}, {"name": "ndebug-orange-float", "configurePreset": "ndebug-orange-float", "inherits": "base"}, - {"name": "reldeb-geant4", "configurePreset": "reldeb-geant4", "inherits": "base"}, {"name": "ndebug-orange", "configurePreset": "ndebug-orange", "inherits": "base"} ] } diff --git a/scripts/cmake-presets/ci-ubuntu-cuda.json b/scripts/cmake-presets/ci-ubuntu-cuda.json index c5aa55efec..4862c6e8a8 100644 --- a/scripts/cmake-presets/ci-ubuntu-cuda.json +++ b/scripts/cmake-presets/ci-ubuntu-cuda.json @@ -73,15 +73,6 @@ "CELERITAS_USE_OpenMP": {"type": "BOOL", "value": "OFF"} } }, - { - "name": "debug-vecgeom-clhep", - "description": "Build with VecGeom and CLHEP units", - "inherits": [".vecgeom", ".debug", "base"], - "cacheVariables": { - "CELERITAS_USE_CUDA": {"type": "BOOL", "value": "OFF"}, - "CELERITAS_UNITS": "CLHEP" - } - }, { "name": "reldeb-vecgeom", "description": "Build with RelWithDebInfo, assertions, and VecGeom", diff --git a/scripts/cmake-presets/ci-ubuntu-github.json b/scripts/cmake-presets/ci-ubuntu-github.json new file mode 100644 index 0000000000..1a5d65c721 --- /dev/null +++ b/scripts/cmake-presets/ci-ubuntu-github.json @@ -0,0 +1,139 @@ +{ + "version": 3, + "cmakeMinimumRequired": {"major": 3, "minor": 21, "patch": 0}, + "configurePresets": [ + { + "name": "base", + "displayName": "ubuntu options for clang/gcc", + "inherits": ["default"], + "binaryDir": "${sourceDir}/build", + "generator": "Ninja", + "cacheVariables": { + "BUILD_SHARED_LIBS": {"type": "BOOL", "value": "ON"}, + "CELERITAS_BUILD_DEMOS": {"type": "BOOL", "value": "ON"}, + "CELERITAS_BUILD_TESTS": {"type": "BOOL", "value": "ON"}, + "CELERITAS_BUILD_DOCS": {"type": "BOOL", "value": "OFF"}, + "CELERITAS_DEBUG": {"type": "BOOL", "value": "ON"}, + "CELERITAS_TEST_VERBOSE":{"type": "BOOL", "value": "OFF"}, + "CELERITAS_USE_CUDA": {"type": "BOOL", "value": "OFF"}, + "CELERITAS_USE_Geant4": {"type": "BOOL", "value": "OFF"}, + "CELERITAS_USE_HepMC3": {"type": "BOOL", "value": "OFF"}, + "CELERITAS_USE_HIP": {"type": "BOOL", "value": "OFF"}, + "CELERITAS_USE_JSON": {"type": "BOOL", "value": "OFF"}, + "CELERITAS_USE_MPI": {"type": "BOOL", "value": "OFF"}, + "CELERITAS_USE_OpenMP": {"type": "BOOL", "value": "OFF"}, + "CELERITAS_USE_ROOT": {"type": "BOOL", "value": "OFF"}, + "CELERITAS_USE_SWIG": {"type": "BOOL", "value": "OFF"}, + "CELERITAS_USE_VecGeom": {"type": "BOOL", "value": "OFF"}, + "CMAKE_BUILD_TYPE": "Release", + "CMAKE_CXX_COMPILER_LAUNCHER": "ccache", + "CMAKE_CXX_EXTENSIONS": {"type": "BOOL", "value": "OFF"}, + "CMAKE_CXX_FLAGS": "-Wall -Wextra -pedantic -Werror -Wno-error=deprecated-declarations", + "CMAKE_CXX_STANDARD": "17", + "CMAKE_INSTALL_PREFIX": "${sourceDir}/install" + } + }, + { + "name": "spack", + "inherits": ["base"], + "displayName": "use spack toolchain", + "cacheVariables": { + "CELERITAS_USE_Geant4": {"type": "BOOL", "value": "ON"}, + "CELERITAS_USE_HepMC3": {"type": "BOOL", "value": "ON"}, + "CELERITAS_USE_JSON": {"type": "BOOL", "value": "ON"}, + "CELERITAS_USE_ROOT": {"type": "BOOL", "value": "ON"}, + "CELERITAS_USE_SWIG": {"type": "BOOL", "value": "OFF"}, + "CELERITAS_USE_VecGeom": {"type": "BOOL", "value": "OFF"}, + "CMAKE_SWIG_CXX_FLAGS": "-Wno-unused-parameter;-Wno-deprecated-declarations", + "SWIG_EXECUTABLE": {"type": "PATH", "value": "/opt/spack-view/bin/swig"} + } + }, + { + "name": "fast", + "inherits": ["base"], + "displayName": "fast build using apt-get", + "cacheVariables": { + "CELERITAS_USE_HepMC3": {"type": "BOOL", "value": "ON"}, + "CELERITAS_USE_JSON": {"type": "BOOL", "value": "ON"} + } + }, + { + "name": ".vecgeom", + "hidden": true, + "description": "Options to enable VecGeom on Ubuntu", + "cacheVariables": { + "CELERITAS_USE_VecGeom": {"type": "BOOL", "value": "ON"} + } + }, + { + "name": "reldeb-orange", + "description": "Build with ORANGE", + "inherits": ["spack"] + }, + { + "name": "reldeb-vecgeom-clhep", + "description": "Build with VecGeom and CLHEP units", + "inherits": [".vecgeom", "spack"], + "cacheVariables": { + "CELERITAS_UNITS": "CLHEP" + } + }, + { + "name": "reldeb-vecgeom", + "description": "Build with release, assertions, VecGeom", + "inherits": [".vecgeom", "spack"], + "cacheVariables": { + } + }, + { + "name": "ndebug-vecgeom", + "description": "Build release with vecgeom for testing *only* demos", + "inherits": [".ndebug", ".vecgeom", "spack"], + "cacheVariables": { + "BUILD_TESTING": {"type": "BOOL", "value": "ON"}, + "CELERITAS_BUILD_DEMOS": {"type": "BOOL", "value": "ON"}, + "CELERITAS_BUILD_TESTS": {"type": "BOOL", "value": "OFF"} + } + }, + { + "name": "reldeb-geant4", + "description": "Build with Geant4 geometry", + "inherits": ["spack"], + "cacheVariables": { + "CELERITAS_CORE_GEO": "Geant4" + } + }, + { + "name": "reldeb-orange-minimal", + "description": "Build with minimal reasonable dependencies", + "inherits": ["spack"], + "cacheVariables": { + "CELERITAS_USE_Geant4": {"type": "BOOL", "value": "OFF"}, + "CELERITAS_USE_HepMC3": {"type": "BOOL", "value": "OFF"}, + "CELERITAS_USE_OpenMP": {"type": "BOOL", "value": "OFF"}, + "CELERITAS_USE_ROOT": {"type": "BOOL", "value": "OFF"}, + "CELERITAS_USE_SWIG": {"type": "BOOL", "value": "OFF"} + } + }, + { + "name": "reldeb-orange-asan", + "description": "Build with address sanitizer flags", + "inherits": ["spack"], + "cacheVariables": { + "CELERITAS_USE_HIP": {"type": "BOOL", "value": "OFF"}, + "CELERITAS_USE_ROOT": {"type": "BOOL", "value": "OFF"}, + "CMAKE_BUILD_TYPE": "RelWithDebInfo", + "CMAKE_CXX_FLAGS_RELWITHDEBINFO": "-O2 -g -DNDEBUG -fsanitize=address -fno-omit-frame-pointer" + } + }, + { + "name": "reldeb-orange-float", + "description": "Build with single-precision arithmetic (no HIP)", + "inherits": ["spack"], + "cacheVariables": { + "CELERITAS_USE_SWIG": {"type": "BOOL", "value": "OFF"}, + "CELERITAS_REAL_TYPE": "float" + } + } + ] +}