在CMake中使用install()时保留单个文件的权限

时间:2012-12-29 18:37:31

标签: install cmake

在KDE中,我调整了一个宏来编译和安装Python文件,但我遇到了保留文件权限的问题。

更清楚的是,宏中的违规行是

install(FILES ${SOURCE_FILE} DESTINATION ${DESTINATION_DIR})

适用于99%的案例。

在一个案例中,虽然我在源目录中有一个标记为可执行文件的Python文件(+ x,我在这里谈论Linux),然后将其符号链接到安装的二进制目录。由于install()不保留权限,因此会从中删除执行位,这会导致以后出现各种问题。

是否可以保留文件的权限,或者读取它们并相应地设置它们?我讨厌使用手动chmod命令,因为它不可移植。

编辑:我不想让这个宏可执行文件安装所有文件,因为这样做毫无意义。

1 个答案:

答案 0 :(得分:20)

您可以使用

安装+x权限的文件
install(PROGRAMS ...

命令。

或者,您可以安装整个目录保留文件权限:

install(DIRECTORIES ... USE_SOURCE_PERMISSIONS)

See documentation用于安装命令以获取更多信息。