gpt4 book ai didi

c++ - cmake glob包含同时保留目录结构

转载 作者:IT老高 更新时间:2023-10-28 22:59:32 30 4
gpt4 key购买 nike

我是 cmake 的新手,我正在尝试安装 .hpp 文件,同时保留目录结构。

目前为止

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)

所有文件都已找到,但目录层次结构已展平。

FWIW 我试图模拟的 bjam 命令是

install headers 
: ../include/EnsembleLearning.hpp
[ glob ../include/MyLib/*.hpp ]
[ glob ../include/MyLib/detail/*.hpp ]
: <install-source-root>../include ;

最佳答案

您可以使用 CMake install 的 DIRECTORY 变体命令。此命令将保留复制目录的结构:

install(DIRECTORY include/ DESTINATION include
FILES_MATCHING PATTERN "*.hpp")

如果要复制的目录包含不应安装的子目录,则必须使用 PATTERN EXCLUDE 选项明确排除那些:

install(DIRECTORY include/ DESTINATION include
FILES_MATCHING PATTERN "*.hpp"
PATTERN "include/MyOtherLib" EXCLUDE)

关于c++ - cmake glob包含同时保留目录结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6216554/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com