我有一个包含混合源(.cpp)和标题(.h和.hpp)文件的文件夹。如何在CMake install命令中编写正则表达式,以便仅将头文件安装到特定目标?
我在CMake安装命令中搜索如何使用正则表达式的示例没有成功。
答案 0 :(得分:1)
可以在第一个匹配选项之前给出FILES_MATCHING选项以禁用 安装文件(但不是目录)与任何表达式都不匹配。
cmake_minimum_required(VERSION 2.8)
project(foo)
install(
DIRECTORY
"./src"
DESTINATION
"include/foo"
FILES_MATCHING
PATTERN
"*.hpp"
)
> cmake -H. -B_builds -DCMAKE_INSTALL_PREFIX=`pwd`/_install
> cmake --build _builds/ --target install
> find src/ -type f
src/a.hpp
src/a.cpp
src/B/b.hpp
src/B/b.cpp
仅安装了*.hpp
个文件:
> find _install/ -type f
_install/include/foo/src/a.hpp
_install/include/foo/src/B/b.hpp