Skip to content

Commit

Permalink
fix cmp CMP0074 policy issue for exported install logic (#637)
Browse files Browse the repository at this point in the history
* guard use of env for hdf5 with cmake version

* resolve CMP0074 policy warnings downstream when importing installed conduit
  • Loading branch information
cyrush committed Oct 27, 2020
1 parent 21387ec commit 66d6b12
Showing 1 changed file with 18 additions and 4 deletions.
22 changes: 18 additions & 4 deletions src/config/conduit_setup_deps.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,23 @@ if(CONDUIT_HDF5_DIR)
get_filename_component(HDF5_DIR_REAL "${HDF5_DIR}" REALPATH)
message(STATUS "Looking for HDF5 at: " ${HDF5_DIR_REAL})

if(POLICY CMP0074)
#policy for <PackageName>_ROOT variables
cmake_policy(PUSH)
cmake_policy(SET CMP0074 NEW)
endif()

# CMake's FindHDF5 module uses the HDF5_ROOT env var
set(HDF5_ROOT ${HDF5_DIR_REAL})

if(NOT WIN32)
set(ENV{HDF5_ROOT} ${HDF5_ROOT}/bin)
# Use CMake's FindHDF5 module, which uses hdf5's compiler wrappers to extract
# all the info about the hdf5 install
include(FindHDF5)
# use HDF5_ROOT env var for FindHDF5 with older versions of cmake
if(${CMAKE_VERSION} VERSION_LESS "3.12.0")
set(ENV{HDF5_ROOT} ${HDF5_ROOT}/bin)
endif()

# Use CMake's FindHDF5 module to locate hdf5 and setup hdf5
find_package(HDF5 REQUIRED)
else()
# CMake's FindHDF5 module is buggy on windows and will put the dll
# in HDF5_LIBRARY. Instead, use the 'CONFIG' signature of find_package
Expand All @@ -54,6 +63,11 @@ if(CONDUIT_HDF5_DIR)
${HDF5_DIR}/cmake)
endif()

if(POLICY CMP0074)
# clear CMP0074
cmake_policy(POP)
endif()

# FindHDF5/find_package sets HDF5_DIR to it's installed CMake info if it exists
# we want to keep HDF5_DIR as the root dir of the install to be
# consistent with other packages
Expand Down

0 comments on commit 66d6b12

Please sign in to comment.