diff --git a/HDF5Examples/config/HDFMacros.cmake b/HDF5Examples/config/HDFMacros.cmake index 981f7165035..2f80f665df2 100644 --- a/HDF5Examples/config/HDFMacros.cmake +++ b/HDF5Examples/config/HDFMacros.cmake @@ -112,7 +112,7 @@ macro (HDF_DIR_PATHS package_prefix) set (${package_prefix}_INSTALL_DATA_DIR ${CMAKE_INSTALL_DATADIR}) endif () if (NOT ${package_prefix}_INSTALL_CMAKE_DIR) - set (${package_prefix}_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake) + set (${package_prefix}_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/${${package_prefix}_PACKAGE_NAME_LOWER}) endif () if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${CMAKE_INSTALL_DOCDIR}) @@ -162,7 +162,17 @@ macro (HDF_DIR_PATHS package_prefix) endif () endif () if (NOT ${package_prefix}_INSTALL_CMAKE_DIR) - set (${package_prefix}_INSTALL_CMAKE_DIR cmake) + # CMake config install directory: + # - Frameworks: /Resources/CMake/ + # - Windows (not Cygwin): cmake/ + # - Linux/Unix/Cygwin: /cmake// + if (${package_prefix}_BUILD_FRAMEWORKS) + set (${package_prefix}_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_FRAMEWORK_PREFIX}/${${package_prefix}_PACKAGE_NAME_LOWER}.framework/Resources/CMake) + elseif (WIN32 AND NOT CYGWIN) + set (${package_prefix}_INSTALL_CMAKE_DIR cmake) + else () + set (${package_prefix}_INSTALL_CMAKE_DIR ${${package_prefix}_INSTALL_LIB_DIR}/cmake/${${package_prefix}_PACKAGE_NAME_LOWER}) + endif () endif () if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR}) diff --git a/config/HDFMacros.cmake b/config/HDFMacros.cmake index 4091df70230..9da19896623 100644 --- a/config/HDFMacros.cmake +++ b/config/HDFMacros.cmake @@ -421,6 +421,14 @@ endmacro () # HDF_DIR_PATHS: Set up install directory variables and RPATHs. macro (HDF_DIR_PATHS package_prefix) option (HDF5_USE_GNU_DIRS "ON to use GNU Coding Standard install directory variables, OFF to use historical settings" OFF) + + if (APPLE) + option (${package_prefix}_BUILD_FRAMEWORKS "ON to build as frameworks libraries, OFF to build according to BUILD_SHARED_LIBS" OFF) + endif () + + # Derive lowercase package name for cmake config directory + string (TOLOWER ${package_prefix} ${package_prefix}_PACKAGE_NAME_LOWER) + if (HDF5_USE_GNU_DIRS) include(GNUInstallDirs) if (NOT ${package_prefix}_INSTALL_BIN_DIR) @@ -442,7 +450,7 @@ macro (HDF_DIR_PATHS package_prefix) set (${package_prefix}_INSTALL_DATA_DIR ${CMAKE_INSTALL_DATADIR}) endif () if (NOT ${package_prefix}_INSTALL_CMAKE_DIR) - set (${package_prefix}_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake) + set (${package_prefix}_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/${${package_prefix}_PACKAGE_NAME_LOWER}) endif () if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${CMAKE_INSTALL_DOCDIR}) @@ -450,10 +458,6 @@ macro (HDF_DIR_PATHS package_prefix) message(STATUS "GNU: ${${package_prefix}_INSTALL_DOC_DIR}") endif () - if (APPLE) - option (${package_prefix}_BUILD_FRAMEWORKS "ON to build as frameworks libraries, OFF to build according to BUILD_SHARED_LIBS" OFF) - endif () - if (NOT ${package_prefix}_INSTALL_BIN_DIR) set (${package_prefix}_INSTALL_BIN_DIR bin) endif () @@ -492,7 +496,17 @@ macro (HDF_DIR_PATHS package_prefix) endif () endif () if (NOT ${package_prefix}_INSTALL_CMAKE_DIR) - set (${package_prefix}_INSTALL_CMAKE_DIR cmake) + # CMake config install directory: + # - Frameworks: /Resources/CMake/ + # - Windows (not Cygwin): cmake/ + # - Linux/Unix/Cygwin: /cmake// + if (${package_prefix}_BUILD_FRAMEWORKS) + set (${package_prefix}_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_FRAMEWORK_PREFIX}/${${package_prefix}_PACKAGE_NAME_LOWER}.framework/Resources/CMake) + elseif (WIN32 AND NOT CYGWIN) + set (${package_prefix}_INSTALL_CMAKE_DIR cmake) + else () + set (${package_prefix}_INSTALL_CMAKE_DIR ${${package_prefix}_INSTALL_LIB_DIR}/cmake/${${package_prefix}_PACKAGE_NAME_LOWER}) + endif () endif () if (NOT ${package_prefix}_INSTALL_DOC_DIR) set (${package_prefix}_INSTALL_DOC_DIR ${${package_prefix}_INSTALL_DATA_DIR})