Skip to content

Commit

Permalink
Merge pull request NOAA-EMC#204 from AlexanderRichert-NOAA/cmake_spac…
Browse files Browse the repository at this point in the history
…k_updates

CMake & Spack updates
  • Loading branch information
AlexanderRichert-NOAA authored Sep 22, 2023
2 parents 35f0298 + ee406d1 commit 49e0d3b
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 9 deletions.
12 changes: 7 additions & 5 deletions .github/workflows/Spack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
openmp: ["+openmp", "~openmp"]
sharedlibs: ["+shared", "~shared"]
pic: ["+pic", "~pic"]
precision: ["precision=d", "precision=4", "precision=8"]
precision: ["d", "4", "8"]
runs-on: ${{ matrix.os }}

steps:
Expand All @@ -41,15 +41,17 @@ jobs:
spack env create ip-env
spack env activate ip-env
cp $GITHUB_WORKSPACE/ip/spack/package.py $SPACK_ROOT/var/spack/repos/builtin/packages/ip/package.py
mv $GITHUB_WORKSPACE/ip $SPACK_ENV/ip
spack develop --no-clone ip@develop
spack add ip@develop%gcc@11 ${{ matrix.openmp }} ${{ matrix.sharedlibs }} ${{ matrix.pic }} ${{ matrix.precision }} target=x86_64
spack develop --no-clone --path $GITHUB_WORKSPACE/ip ip@develop
spack add ip@develop%gcc@11 ${{ matrix.openmp }} ${{ matrix.sharedlibs }} ${{ matrix.pic }} precision=${{ matrix.precision }} target=x86_64
if [ ${{ matrix.precision }} == "d" ]; then spack add grib-util@develop ; fi
spack external find cmake gmake
spack concretize
# Run installation and run CTest suite
spack install --verbose --fail-fast --test root
# Run 'spack load' to check for obvious errors in setup_run_environment
# Run 'spack load' and check that key build options were respected
spack load ip
if [ ${{ matrix.sharedlibs }} == "+shared" ]; then suffix="so" ; else suffix="a"; fi
ls ${IP_LIB${{ matrix.precision }}} | grep -cE '/libip_${{ matrix.precision }}\.'$suffix'$'
# This job validates the Spack recipe by making sure each cmake build option is represented
recipe-check:
Expand Down
17 changes: 13 additions & 4 deletions cmake/PackageConfig.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,25 @@ include("${CMAKE_CURRENT_LIST_DIR}/@[email protected]")

include(CMakeFindDependencyMacro)

# ON/OFF implies ip was compiled with/without OPENMP
find_dependency(sp CONFIG)

if(@OPENMP@)
find_dependency(OpenMP COMPONENTS Fortran)
endif()

find_dependency(sp CONFIG)
# The target name needs to be one that's built, even if the dependent
# build does not use that version.
if(@BUILD_4@)
set(precision 4)
elseif(@BUILD_D@)
set(precision d)
elseif(@BUILD_8@)
set(precision 8)
endif()

get_target_property(@PROJECT_NAME@_BUILD_TYPES @PROJECT_NAME@::@PROJECT_NAME@_4 IMPORTED_CONFIGURATIONS)
get_target_property(@PROJECT_NAME@_BUILD_TYPES @PROJECT_NAME@::@PROJECT_NAME@_${precision} IMPORTED_CONFIGURATIONS)

check_required_components("@PROJECT_NAME@")

get_target_property(location @PROJECT_NAME@::@PROJECT_NAME@_4 LOCATION)
get_target_property(location @PROJECT_NAME@::@PROJECT_NAME@_${precision} LOCATION)
message(STATUS "Found @PROJECT_NAME@: ${location} (found version \"@PROJECT_VERSION@\")")

0 comments on commit 49e0d3b

Please sign in to comment.