我有一个源目录结构:
projectSource
|---src
|---include
|---CMakeLists.txt
并想要一个安装目录结构
projectInstall
|---bin
|---include
|---lib
我的源目录树都在版本控制之下,所以每个源文件夹包含一个额外的
.svn/
目录。从 projectSource/include
安装所有头文件的最简单方法是什么?至 projectInstall/include
, 同时跳过 .svn
目录?我想使用类似的东西:
set( PROJECT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include )
include_directories( ${PROJECT_INCLUDE_DIR} )
install(DIRECTORY ${PROJECT_INCLUDE_DIR}/
DESTINATION "include"
FILES_MATCHING PATTERN "*.h"
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
但即使我(试图)只安装匹配
*.h
的文件,我还在接.svn/
目录和内容。
最佳答案
您可以添加 EXCLUDE
模式的关键字:
install(DIRECTORY ${PROJECT_INCLUDE_DIR}/
DESTINATION "include"
FILES_MATCHING
PATTERN "*.h"
PATTERN ".svn" EXCLUDE
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
关于svn - 使用 CMake 安装某些文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8560122/