I'm new to cmake
and I'm trying to install .hpp
files while preserving directory structure.
So far I have
FILE(GLOB files "${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/MyLib/*.hpp"
"${CMAKE_CURRENT_SOURCE_DIR}/include/MyLib/detail/*.hpp"
install (FILES ${files} DESTINATION include)
All the files get found but the directory hierarchy is flattened.
FWIW The bjam
command I'm trying to emulate is
install headers
: ../include/EnsembleLearning.hpp
[ glob ../include/MyLib/*.hpp ]
[ glob ../include/MyLib/detail/*.hpp ]
: <install-source-root>../include ;
You can use the DIRECTORY variant of the CMake install command. This command will preserve the structure of the copied directory:
install(DIRECTORY include/ DESTINATION include
FILES_MATCHING PATTERN "*.hpp")
If the directory to be copied contains subdirectories that should not be installed, you'll have to explicitly exclude those with a PATTERN EXCLUDE option:
install(DIRECTORY include/ DESTINATION include
FILES_MATCHING PATTERN "*.hpp"
PATTERN "include/MyOtherLib" EXCLUDE)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With