Skip to content

Commit 0103467

Browse files
authored
cmake: export into build directory (#27)
Copies the `*Target.cmake` file to the build directory. This enables using the build directory as the source of HighFive in other projects, e.g. cmake -DHighFive_ROOT=${HIGH_FIVE_DIR}/build ...
1 parent 7b34992 commit 0103467

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

CMakeLists.txt

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ mark_as_advanced(HIGHFIVE_HAS_FRIEND_DECLARATIONS)
3737

3838
option(HIGHFIVE_FIND_HDF5 "Find and link with HDF5." On)
3939

40+
set(HIGHFIVE_CMAKE_INSTALL_DIR "lib/cmake/HighFive" CACHE STRING
41+
"Directory where HighFive's CMake code will be installed. Default: lib/cmake/HighFive")
42+
43+
4044
# Configure Tests & Examples
4145
# --------------------------
4246

@@ -135,6 +139,12 @@ write_basic_package_version_file(
135139
COMPATIBILITY AnyNewerVersion
136140
)
137141

142+
configure_package_config_file(
143+
${CMAKE_CURRENT_SOURCE_DIR}/cmake/HighFiveConfig.cmake
144+
${CMAKE_CURRENT_BINARY_DIR}/cmake/HighFiveConfig.cmake
145+
INSTALL_DESTINATION ${HIGHFIVE_CMAKE_INSTALL_DIR}
146+
)
147+
138148
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
139149
DESTINATION "include"
140150
PATTERN "*.in" EXCLUDE)
@@ -143,15 +153,23 @@ install(TARGETS HighFive HighFiveInclude EXPORT HighFiveTargets)
143153
install(EXPORT HighFiveTargets
144154
FILE HighFiveTargets.cmake
145155
NAMESPACE HighFive::
146-
DESTINATION lib/cmake/HighFive
156+
DESTINATION ${HIGHFIVE_CMAKE_INSTALL_DIR}
147157
)
148158

149159
install(FILES
150-
${CMAKE_CURRENT_SOURCE_DIR}/cmake/HighFiveConfig.cmake
160+
${CMAKE_CURRENT_BINARY_DIR}/cmake/HighFiveConfig.cmake
151161
${CMAKE_CURRENT_BINARY_DIR}/cmake/HighFiveConfigVersion.cmake
152-
DESTINATION lib/cmake/HighFive
162+
DESTINATION ${HIGHFIVE_CMAKE_INSTALL_DIR}
153163
)
154164

165+
# export targets into build tree
166+
export(
167+
EXPORT HighFiveTargets
168+
FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/HighFiveTargets.cmake"
169+
NAMESPACE HighFive::
170+
)
171+
172+
155173
# Preparing local building (tests, examples)
156174
# ------------------------------------------
157175

0 commit comments

Comments
 (0)