Prolog :我在文档中错过了这个白痴
的cmake-2.8.10.2
如何在安装目录时让cmake保留原始文件权限?对于手头的项目,我希望它基本上将一些目录从我的源代码树复制到安装树。即:
install(
DIRECTORY config runp
DESTINATION ${CMAKE_INSTALL_PREFIX}
PATTERN ".svn" EXCLUDE
PATTERN ".git" EXCLUDE
PATTERN "start_collection.snl" EXCLUDE
)
所有工作都按预期工作 - 除了使用不正确的文件权限复制可执行脚本。实际上,保留了原始文件权限的 none 。使用FILE_PERMISSIONS和DIRECTORY_PERMISSIONS全局设置权限是我不想做的事情,坦率地说,在这种情况下会是一个黑客。
在shell脚本世界中,我会做这样简单的事情:
for i in config runp ; do
tar cf - $i | tar -C $CMAKE_INSTALL_PREFIX -xf -
done
答案 0 :(得分:11)
文档建议在调用USE_SOURCE_PERMISSIONS
时使用install()
:
install(
DIRECTORY config runp
DESTINATION ${CMAKE_INSTALL_PREFIX}
USE_SOURCE_PERMISSIONS
PATTERN ".svn" EXCLUDE
PATTERN ".git" EXCLUDE
PATTERN "start_collection.snl" EXCLUDE
)
或者,您可以使用此命令的install(PROGRAMS
签名。 See docs了解更多信息。