diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 94ea6a20..d5054076 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -11,42 +11,36 @@ # at Lawrence Livermore National Laboratory (LLNL). # This entire pipeline is LLNL-specific # -# Important note: This file is a template provided by llnl/radiuss-shared-ci. -# Remains to set variable values, change the reference to the radiuss-shared-ci -# repo, opt-in and out optional features. The project can then extend it with -# additional stages. +# This file uses GitLab CI Components from radiuss-shared-ci (requires GitLab 17.0+). +# Components provide better versioning, type-safe inputs, and cleaner syntax. # -# In addition, each project should copy over and complete: -# - .gitlab/custom-jobs-and-variables.yml -# - .gitlab/subscribed-pipelines.yml -# -# The jobs should be specified in a file local to the project, -# - .gitlab/jobs/${CI_MACHINE}.yml -# or generated (see LLNL/Umpire for an example). +# In addition, each project should have: +# - .gitlab/custom-jobs.yml - Job templates for child pipelines +# - .gitlab/custom-variables.yml - Machine-specific variables +# - .gitlab/jobs/${CI_MACHINE}.yml - Machine-specific job definitions +############################################################################### + +############################################################################### +# VARIABLES ############################################################################### -# We define the following GitLab pipeline variables: variables: -##### LC GITLAB CONFIGURATION + +# LC GITLAB CONFIGURATION # Use an LLNL service user to run CI. This prevents from running pipelines as # an actual user. LLNL_SERVICE_USER: "" # Use the service user workspace. Solves permission issues, stores everything # at the same location whoever triggers a pipeline. # CUSTOM_CI_BUILDS_DIR: "" -# Submodules: We don't need to fetch dependencies handled by Spack. +# Optimize submodules usage: only fetch the ones we need. +# Note: We don't need to fetch dependencies handled by Spack. GIT_SUBMODULE_STRATEGY: normal GIT_SUBMODULE_DEPTH: 1 GIT_SUBMODULE_UPDATE_FLAGS: --jobs 2 GIT_SUBMODULE_PATHS: scripts/radiuss-spack-configs scripts/uberenv -##### PROJECT VARIABLES -# We build the projects in the CI clone directory. Used in -# script/gitlab/build-and-test.sh script. -# TODO: add a clean-up mechanism. - BUILD_ROOT: ${CI_PROJECT_DIR} - -##### SHARED_CI CONFIGURATION +# SHARED_CI CONFIGURATION # Required information about GitHub repository GITHUB_PROJECT_NAME: "Caliper" GITHUB_PROJECT_ORG: "LLNL" @@ -56,41 +50,172 @@ variables: JOB_CMD: value: "./scripts/gitlab/build-and-test.sh" expand: false -# Override the pattern describing branches that will skip the "draft PR filter -# test". Add protected branches here. See default value in -# preliminary-ignore-draft-pr.yml. - ALWAYS_RUN_PATTERN: "^develop$|^master$|^v[0-9.]*$|^releases/$" +############################################################################### +# MAIN PIPELINE STAGES +############################################################################### +# IMPORTANT: You must define stages yourself to allow customization. +# The following stages are REQUIRED by RADIUSS Shared CI components: +stages: + - prerequisites # Required: machine availability checks + - build-and-test # Required: build and test jobs + +############################################################################### +# INCLUDES +############################################################################### + +include: + # Sets ID tokens for every job using `default:` + - project: 'lc-templates/id_tokens' + file: 'id_tokens.yml' + + # Base pipeline templates and utilities + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/base-pipeline@woptim/migrate-to-components + inputs: + github_project_name: $GITHUB_PROJECT_NAME + github_project_org: $GITHUB_PROJECT_ORG + github_token: $GITHUB_TOKEN + + # Draft PR filter + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/utility-draft-pr-filter@woptim/migrate-to-components + inputs: + github_token: $GITHUB_TOKEN + github_project_name: $GITHUB_PROJECT_NAME + github_project_org: $GITHUB_PROJECT_ORG + always_run_pattern: "^develop$|^master$|^v[0-9.]*$|^releases/$" + + # Local custom variables (used for component inputs and forwarded to child pipelines) + - local: '.gitlab/custom-variables.yml' + +############################################################################### +# MACHINE PIPELINES +############################################################################### # We organize the build-and-test stage with sub-pipelines. Each sub-pipeline # corresponds to a test batch on a given machine. -# High level stages -stages: - - prerequisites - - build-and-test +# Note: .machine-check template is provided by the base-pipeline component +# and includes better error handling, validation, and GitHub status reporting. +# Trigger a build-and-test pipeline for each machine. +# Comment out the machine blocks you don't need. + +# One job to generate the job list for all the subpipelines +generate-job-lists: + stage: prerequisites + tags: [shell, oslic] + variables: + RADIUSS_JOBS_PATH: "scripts/radiuss-spack-configs/gitlab/radiuss-jobs" + LOCAL_JOBS_PATH: ".gitlab/jobs" + script: + - cat ${RADIUSS_JOBS_PATH}/dane.yml ${LOCAL_JOBS_PATH}/dane.yml > dane-jobs.yml + - cat ${RADIUSS_JOBS_PATH}/matrix.yml ${LOCAL_JOBS_PATH}/matrix.yml > matrix-jobs.yml + - cat ${RADIUSS_JOBS_PATH}/corona.yml ${LOCAL_JOBS_PATH}/corona.yml > corona-jobs.yml + - cat ${RADIUSS_JOBS_PATH}/tioga.yml ${LOCAL_JOBS_PATH}/tioga.yml > tioga-jobs.yml + - cat ${RADIUSS_JOBS_PATH}/tuolumne.yml ${LOCAL_JOBS_PATH}/tuolumne.yml > tuolumne-jobs.yml + artifacts: + paths: + - dane-jobs.yml + - matrix-jobs.yml + - corona-jobs.yml + - tioga-jobs.yml + - tuolumne-jobs.yml -# Template for jobs triggering a build-and-test sub-pipeline: -.build-and-test: - stage: build-and-test +# DANE +dane-up-check: + extends: [.dane, .machine-check] + +dane-build-and-test: + extends: [.dane, .build-and-test] + needs: [dane-up-check, generate-job-lists] trigger: include: - - local: '.gitlab/custom-jobs-and-variables.yml' - - project: 'radiuss/radiuss-shared-ci' - ref: 'v2025.06.0' - file: 'pipelines/${CI_MACHINE}.yml' - - artifact: '${CI_MACHINE}-jobs.yml' + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/dane-pipeline@woptim/migrate-to-components + inputs: + job_cmd: $JOB_CMD + shared_alloc: $DANE_SHARED_ALLOC + job_alloc: $DANE_JOB_ALLOC + github_project_name: $GITHUB_PROJECT_NAME + github_project_org: $GITHUB_PROJECT_ORG + - local: '.gitlab/custom-jobs.yml' + - artifact: 'dane-jobs.yml' + job: 'generate-job-lists' + +# MATRIX +matrix-up-check: + extends: [.matrix, .machine-check] + +matrix-build-and-test: + extends: [.matrix, .build-and-test] + needs: [matrix-up-check, generate-job-lists] + trigger: + include: + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/matrix-pipeline@woptim/migrate-to-components + inputs: + job_cmd: $JOB_CMD + shared_alloc: $MATRIX_SHARED_ALLOC + job_alloc: $MATRIX_JOB_ALLOC + github_project_name: $GITHUB_PROJECT_NAME + github_project_org: $GITHUB_PROJECT_ORG + - local: '.gitlab/custom-jobs.yml' + - artifact: 'matrix-jobs.yml' + job: 'generate-job-lists' + +# CORONA +corona-up-check: + extends: [.corona, .machine-check] + +corona-build-and-test: + extends: [.corona, .build-and-test] + needs: [corona-up-check, generate-job-lists] + trigger: + include: + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/corona-pipeline@woptim/migrate-to-components + inputs: + job_cmd: $JOB_CMD + shared_alloc: $CORONA_SHARED_ALLOC + job_alloc: $CORONA_JOB_ALLOC + github_project_name: $GITHUB_PROJECT_NAME + github_project_org: $GITHUB_PROJECT_ORG + - local: '.gitlab/custom-jobs.yml' + - artifact: 'corona-jobs.yml' + job: 'generate-job-lists' + +# TIOGA +tioga-up-check: + extends: [.tioga, .machine-check] + +tioga-build-and-test: + extends: [.tioga, .build-and-test] + needs: [tioga-up-check, generate-job-lists] + trigger: + include: + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/tioga-pipeline@woptim/migrate-to-components + inputs: + job_cmd: $JOB_CMD + shared_alloc: $TIOGA_SHARED_ALLOC + job_alloc: $TIOGA_JOB_ALLOC + github_project_name: $GITHUB_PROJECT_NAME + github_project_org: $GITHUB_PROJECT_ORG + - local: '.gitlab/custom-jobs.yml' + - artifact: 'tioga-jobs.yml' + job: 'generate-job-lists' + +# TUOLUMNE +tuolumne-up-check: + extends: [.tuolumne, .machine-check] + +tuolumne-build-and-test: + extends: [.tuolumne, .build-and-test] + needs: [tuolumne-up-check, generate-job-lists] + trigger: + include: + - component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/tuolumne-pipeline@woptim/migrate-to-components + inputs: + job_cmd: $JOB_CMD + shared_alloc: $TUOLUMNE_SHARED_ALLOC + job_alloc: $TUOLUMNE_JOB_ALLOC + github_project_name: $GITHUB_PROJECT_NAME + github_project_org: $GITHUB_PROJECT_ORG + - local: '.gitlab/custom-jobs.yml' + - artifact: 'tuolumne-jobs.yml' job: 'generate-job-lists' - strategy: depend - forward: - pipeline_variables: true -include: - # Sets ID tokens for every job using `default:` - - project: 'lc-templates/id_tokens' - file: 'id_tokens.yml' - # [Optional] checks preliminary to running the actual CI test - - project: 'radiuss/radiuss-shared-ci' - ref: 'v2025.06.0' - file: 'utilities/preliminary-ignore-draft-pr.yml' - # pipelines subscribed by the project - - local: '.gitlab/subscribed-pipelines.yml' diff --git a/.gitlab/custom-jobs-and-variables.yml b/.gitlab/custom-jobs-and-variables.yml index 6c7ef28b..d5a3c164 100644 --- a/.gitlab/custom-jobs-and-variables.yml +++ b/.gitlab/custom-jobs-and-variables.yml @@ -22,6 +22,16 @@ variables: # Project specific deps for dane PROJECT_DANE_DEPS: "" +# Matrix +# Arguments for top level allocation + MATRIX_SHARED_ALLOC: "--exclusive --time=10 --nodes=1" +# Arguments for job level allocation + MATRIX_JOB_ALLOC: "--overlap --nodes=1" +# Project specific variants for matrix + PROJECT_MATRIX_VARIANTS: "+tests ~papi +cuda cuda_arch=75" +# Project specific deps for matrix + PROJECT_MATRIX_DEPS: "" + # Corona # Arguments for top level allocation CORONA_SHARED_ALLOC: "--exclusive --time-limit=8m --nodes=1 -o per-resource.count=2" diff --git a/.gitlab/custom-jobs.yml b/.gitlab/custom-jobs.yml new file mode 100644 index 00000000..4257a9d3 --- /dev/null +++ b/.gitlab/custom-jobs.yml @@ -0,0 +1,37 @@ +############################################################################### +# Copyright (c) 2022-25, Lawrence Livermore National Security, LLC and RADIUSS +# project contributors. See the COPYRIGHT file for details. +# +# SPDX-License-Identifier: (MIT) +############################################################################### + +# This file defines JOB TEMPLATES ONLY. +# It is included in CHILD pipelines (via trigger: include:) to provide +# templates that your jobs can extend. + +############################################################################### +# JOB CUSTOMIZATION TEMPLATES +############################################################################### + +# Configuration shared by build and test jobs specific to this project. +# Not all configuration can be shared. Here projects can fine tune the +# CI behavior. +.custom_job: + artifacts: + reports: + junit: junit.xml + name: "${CI_PROJECT_NAME}-${CI_MACHINE}-${CI_JOB_NAME}-${CI_PIPELINE_ID}" + paths: + - ./*.cmake + +.reproducer_vars: + script: + - | + echo -e " + # Required variables \n + export MODULE_LIST=\"${MODULE_LIST}\" \n + export SPEC=\"${SPEC//\"/\\\"}\" \n + # Allow to set job script for debugging (only this differs from CI) \n + export DEBUG_MODE=true \n + # Using the CI build cache is optional and requires a token. Set it like so: \n + # export REGISTRY_TOKEN=\"\" \n" diff --git a/.gitlab/custom-variables.yml b/.gitlab/custom-variables.yml new file mode 100644 index 00000000..118d3089 --- /dev/null +++ b/.gitlab/custom-variables.yml @@ -0,0 +1,67 @@ +############################################################################### +# Copyright (c) 2022-25, Lawrence Livermore National Security, LLC and RADIUSS +# project contributors. See the COPYRIGHT file for details. +# +# SPDX-License-Identifier: (MIT) +############################################################################### + +# This file defines project-specific VARIABLES ONLY. +# It is included in the PARENT pipeline (.gitlab-ci.yml) to provide +# variables that are passed as component inputs and forwarded to child pipelines. + +############################################################################### +# MACHINE-SPECIFIC ALLOCATION VARIABLES +############################################################################### + +variables: + # Allocation name (used for shared allocations) + ALLOC_NAME: ${CI_PROJECT_NAME}_ci_${CI_PIPELINE_ID} + + # Dane (SLURM) allocation settings + DANE_SHARED_ALLOC: "--exclusive --reservation=ci --time=10 --nodes=1" + DANE_JOB_ALLOC: "--reservation=ci --overlap --nodes=1" + # Project specific variants for dane + PROJECT_DANE_VARIANTS: "+tests ~papi" + # Project specific deps for dane + PROJECT_DANE_DEPS: "" + + # Matrix (SLURM) allocation settings + MATRIX_SHARED_ALLOC: "--exclusive --time=10 --nodes=1" + MATRIX_JOB_ALLOC: "--overlap --nodes=1" + # Project specific variants for matrix + PROJECT_MATRIX_VARIANTS: "+tests ~papi +cuda cuda_arch=75" + # Project specific deps for matrix + PROJECT_MATRIX_DEPS: "" + + # Corona (flux) allocation settings + CORONA_SHARED_ALLOC: "--exclusive --time-limit=8m --nodes=1 -o per-resource.count=2" + CORONA_JOB_ALLOC: "--nodes=1 --begin-time=+5s" + # Project specific variants for corona + PROJECT_CORONA_VARIANTS: "+tests" + # Project specific deps for corona + PROJECT_CORONA_DEPS: "" + + # Tioga (flux) allocation settings + TIOGA_SHARED_ALLOC: "--queue=pci --exclusive --time-limit=15m --nodes=1 -o per-resource.count=2" + TIOGA_JOB_ALLOC: "--nodes=1 --begin-time=+5s" + # Project specific variants for tioga + PROJECT_TIOGA_VARIANTS: "+tests" + # Project specific deps for tioga + PROJECT_TIOGA_DEPS: "" + + # Tuolumne (flux) allocation settings + TUOLUMNE_SHARED_ALLOC: "--queue=pci --exclusive --time-limit=15m --nodes=1 -o per-resource.count=2" + TUOLUMNE_JOB_ALLOC: "--nodes=1 --begin-time=+5s" + # Project specific variants for tuolumne + PROJECT_TUOLUMNE_VARIANTS: "+tests" + # Project specific deps for tuolumne + PROJECT_TUOLUMNE_DEPS: "" + + # Lassen (LSF) allocation settings + # Lassen uses a different job scheduler (spectrum lsf) that does not + # allow pre-allocation the same way slurm does. + LASSEN_JOB_ALLOC: "1 -W 10 -q pci" + # Project specific variants for lassen + PROJECT_LASSEN_VARIANTS: " +tests" + # Project specific deps for lassen + PROJECT_LASSEN_DEPS: "^adiak ~mpi" diff --git a/.gitlab/jobs/corona.yml b/.gitlab/jobs/corona.yml index 0d5de562..66aef7e7 100644 --- a/.gitlab/jobs/corona.yml +++ b/.gitlab/jobs/corona.yml @@ -14,11 +14,11 @@ variables: INCLUDED_FILE_CANNOT_BE_EMPTY: "True" -# The correct way is now to use rocmcc compiler directly as done in shared spec +# The correct way is now to use llvm-amdgpu compiler directly as done in shared spec ### Template for extra jobs defined by the project. #clang14.0.6-rocm5.4.1: # variables: -# SPEC: "%clang@14.0.6 +rocm amdgpu_target=gfx906 ^hip@5.4.1 " +# SPEC: "%llvm@14.0.6 +rocm amdgpu_target=gfx906 ^hip@5.4.1 " # extends: .job_on_corona master: diff --git a/.gitlab/jobs/lassen.yml b/.gitlab/jobs/lassen.yml index fcc3d41b..255d1a9f 100644 --- a/.gitlab/jobs/lassen.yml +++ b/.gitlab/jobs/lassen.yml @@ -23,14 +23,6 @@ variables: # No overridden jobs so far. -# Allow failure due to weird error only with XL on Lassen. Passes in debug mode. -xl_2023_06_28_gcc_11_2_1_cuda_11_8_0: - variables: - SPEC: "${PROJECT_LASSEN_VARIANTS} +cuda %xl@=16.1.1.14.cuda.11.8.0.gcc.11.2.1 ^cuda@11.8.0+allow-unsupported-compilers ${PROJECT_LASSEN_DEPS}" - MODULE_LIST: "cuda/11.8.0" - extends: .job_on_lassen - allow_failure: true - ############ # Extra jobs ############ diff --git a/.gitlab/jobs/matrix.yml b/.gitlab/jobs/matrix.yml new file mode 100644 index 00000000..0b2ae7d4 --- /dev/null +++ b/.gitlab/jobs/matrix.yml @@ -0,0 +1,12 @@ +############################################################################## +# Copyright (c) 2022-25, Lawrence Livermore National Security, LLC and RADIUSS +# project contributors. See the COPYRIGHT file for details. +# +# SPDX-License-Identifier: (MIT) +############################################################################## + +# Override reproducer section to define project specific variables. +.matrix_reproducer_vars: + script: + - !reference [.reproducer_vars, script] + diff --git a/.gitlab/jobs/tioga.yml b/.gitlab/jobs/tioga.yml index 194017fb..8ca68024 100644 --- a/.gitlab/jobs/tioga.yml +++ b/.gitlab/jobs/tioga.yml @@ -36,7 +36,7 @@ cce_18_0_1: # We do not recommend using ${PROJECT__VARIANTS} and # ${PROJECT__DEPS} in the extra jobs. There is no reason not to fully # describe the spec here. -# The correct way is now to use rocmcc compiler directly as done in shared spec +# The correct way is now to use llvm-amdgpu compiler directly as done in shared spec # As long as cce 18 fails, we keep this one. cce_17_0_1: diff --git a/.gitlab/jobs/tuolumne.yml b/.gitlab/jobs/tuolumne.yml index 096e1fba..a0048363 100644 --- a/.gitlab/jobs/tuolumne.yml +++ b/.gitlab/jobs/tuolumne.yml @@ -36,7 +36,7 @@ cce_18_0_1: # We do not recommend using ${PROJECT__VARIANTS} and # ${PROJECT__DEPS} in the extra jobs. There is no reason not to fully # describe the spec here. -# The correct way is now to use rocmcc compiler directly as done in shared spec +# The correct way is now to use llvm-amdgpu compiler directly as done in shared spec # As long as cce 18 fails, we keep this one. cce_19_0_0: diff --git a/.gitlab/subscribed-pipelines.yml b/.gitlab/subscribed-pipelines.yml deleted file mode 100644 index f58680a2..00000000 --- a/.gitlab/subscribed-pipelines.yml +++ /dev/null @@ -1,113 +0,0 @@ -############################################################################### -# Copyright (c) 2022-23, Lawrence Livermore National Security, LLC and RADIUSS -# project contributors. See the COPYRIGHT file for details. -# -# SPDX-License-Identifier: (MIT) -############################################################################### - -# The template job to test whether a machine is up. -# Expects CI_MACHINE defined to machine name. -.machine-check: - stage: prerequisites - tags: [shell, oslic] - variables: - GIT_STRATEGY: none - script: - - | - if [[ $(jq '.[env.CI_MACHINE].total_nodes_up' /usr/global/tools/lorenz/data/loginnodeStatus) == 0 ]] - then - echo -e "\e[31mNo node available on ${CI_MACHINE}\e[0m" - curl --url "https://api.github.com/repos/${GITHUB_PROJECT_ORG}/${GITHUB_PROJECT_NAME}/statuses/${CI_COMMIT_SHA}" \ - --header 'Content-Type: application/json' \ - --header "authorization: Bearer ${GITHUB_TOKEN}" \ - --data "{ \"state\": \"failure\", \"target_url\": \"${CI_PIPELINE_URL}\", \"description\": \"GitLab ${CI_MACHINE} down\", \"context\": \"ci/gitlab/${CI_MACHINE}\" }" - exit 1 - fi - -### -# Trigger a build-and-test pipeline for a machine. -# Comment the jobs for machines you don’t need. -### - -# One job to generate the job list for all the subpipelines -generate-job-lists: - stage: prerequisites - tags: [shell, oslic] - variables: - RADIUSS_JOBS_PATH: "scripts/radiuss-spack-configs/gitlab/radiuss-jobs" - LOCAL_JOBS_PATH: ".gitlab/jobs" - script: - - cat ${RADIUSS_JOBS_PATH}/dane.yml ${LOCAL_JOBS_PATH}/dane.yml > dane-jobs.yml - - cat ${RADIUSS_JOBS_PATH}/lassen.yml ${LOCAL_JOBS_PATH}/lassen.yml > lassen-jobs.yml - - cat ${RADIUSS_JOBS_PATH}/corona.yml ${LOCAL_JOBS_PATH}/corona.yml > corona-jobs.yml - - cat ${RADIUSS_JOBS_PATH}/tioga.yml ${LOCAL_JOBS_PATH}/tioga.yml > tioga-jobs.yml - - cat ${RADIUSS_JOBS_PATH}/tuolumne.yml ${LOCAL_JOBS_PATH}/tuolumne.yml > tuolumne-jobs.yml - artifacts: - paths: - - dane-jobs.yml - - lassen-jobs.yml - - corona-jobs.yml - - tioga-jobs.yml - - tuolumne-jobs.yml - - -# DANE -dane-up-check: - variables: - CI_MACHINE: "dane" - extends: [.machine-check] - -dane-build-and-test: - variables: - CI_MACHINE: "dane" - needs: [dane-up-check, generate-job-lists] - extends: [.build-and-test] - -# CORONA -corona-up-check: - variables: - CI_MACHINE: "corona" - extends: [.machine-check] - -corona-build-and-test: - variables: - CI_MACHINE: "corona" - needs: [corona-up-check, generate-job-lists] - extends: [.build-and-test] - -# TIOGA -tioga-up-check: - variables: - CI_MACHINE: "tioga" - extends: [.machine-check] - -tioga-build-and-test: - variables: - CI_MACHINE: "tioga" - needs: [tioga-up-check, generate-job-lists] - extends: [.build-and-test] - -# TUOLUMNE -tuolumne-up-check: - variables: - CI_MACHINE: "tuolumne" - extends: [.machine-check] - -tuolumne-build-and-test: - variables: - CI_MACHINE: "tuolumne" - needs: [tuolumne-up-check, generate-job-lists] - extends: [.build-and-test] - -# LASSEN -lassen-up-check: - variables: - CI_MACHINE: "lassen" - extends: [.machine-check] - -lassen-build-and-test: - variables: - CI_MACHINE: "lassen" - needs: [lassen-up-check, generate-job-lists] - extends: [.build-and-test] - diff --git a/.uberenv_config.json b/.uberenv_config.json index 8bb8610a..d87ee844 100755 --- a/.uberenv_config.json +++ b/.uberenv_config.json @@ -1,12 +1,11 @@ { - "package_name" : "caliper", - "package_version" : "master", - "package_source_dir" : "../..", - "package_final_phase" : "initconfig", - "spack_url": "https://github.com/spack/spack.git", - "spack_commit": "280017a9ba3f6a969743deca0eebc96e7c0e5cfd", - "spack_configs_path": "scripts/radiuss-spack-configs", - "spack_packages_path": "scripts/radiuss-spack-configs/packages", - "spack_concretizer": "clingo", - "spack_setup_clingo": false - } +"package_name" : "caliper", +"package_version" : "master", +"package_final_phase" : "initconfig", +"package_source_dir" : "../..", +"spack_url": "https://github.com/spack/spack.git", +"spack_branch": "v1.0.2", +"spack_configs_path": "scripts/radiuss-spack-configs", +"spack_packages_path": "scripts/radiuss-spack-configs/spack_repo/llnl_radiuss/packages", +"spack_setup_clingo": false +} diff --git a/cmake/FindLibunwind.cmake b/cmake/FindLibunwind.cmake index 04f325d9..7868138f 100644 --- a/cmake/FindLibunwind.cmake +++ b/cmake/FindLibunwind.cmake @@ -3,20 +3,38 @@ # # LIBUNWIND_PREFIX - Set to the libunwind installation directory # -# LIBUNWIND_INCLUDE_DIR - Path to libunwind.h +# LIBUNWIND_INCLUDE_DIRS - Path to libunwind.h # LIBUNWIND_LIBRARIES - List of libraries for using libunwind # LIBUNWIND_FOUND - True if libunwind was found -find_path(LIBUNWIND_PREFIX - include/libunwind.h) +if(LIBUNWIND_PREFIX) + # When prefix is explicitly provided, only look there + find_library(LIBUNWIND_LIBRARIES + NAMES unwind + PATHS ${LIBUNWIND_PREFIX}/lib + NO_DEFAULT_PATH) -find_library(LIBUNWIND_LIBRARIES - NAMES unwind - HINTS ${LIBUNWIND_PREFIX}/lib) + find_path(LIBUNWIND_INCLUDE_DIRS + NAMES libunwind.h + PATHS ${LIBUNWIND_PREFIX}/include + NO_DEFAULT_PATH) -find_path(LIBUNWIND_INCLUDE_DIRS - NAMES libunwind.h - HINTS ${LIBUNWIND_PREFIX}/include) + if(NOT LIBUNWIND_LIBRARIES OR NOT LIBUNWIND_INCLUDE_DIRS) + message(WARNING "LIBUNWIND_PREFIX was set to '${LIBUNWIND_PREFIX}' but libunwind was not found there") + endif() +else() + # Try to find libunwind in standard locations + find_path(LIBUNWIND_PREFIX + include/libunwind.h) + + find_library(LIBUNWIND_LIBRARIES + NAMES unwind + HINTS ${LIBUNWIND_PREFIX}/lib) + + find_path(LIBUNWIND_INCLUDE_DIRS + NAMES libunwind.h + HINTS ${LIBUNWIND_PREFIX}/include) +endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(Libunwind DEFAULT_MSG LIBUNWIND_LIBRARIES LIBUNWIND_INCLUDE_DIRS) diff --git a/scripts/radiuss-spack-configs b/scripts/radiuss-spack-configs index dcf80758..2b1f50d1 160000 --- a/scripts/radiuss-spack-configs +++ b/scripts/radiuss-spack-configs @@ -1 +1 @@ -Subproject commit dcf807584584cb1ca4dca1d5cbf8b320bf73567e +Subproject commit 2b1f50d135a497b06e29b9065fc50baf9766283c diff --git a/scripts/uberenv b/scripts/uberenv index 6ba67dcb..eb185358 160000 --- a/scripts/uberenv +++ b/scripts/uberenv @@ -1 +1 @@ -Subproject commit 6ba67dcbd7ccbb9c03920b89de19ac959e2c3bdd +Subproject commit eb1853586821360613f1c6c415ebf65d370a47e7