cmake文档告诉我们默认权限是用户读写,组读和其他读。
我们的项目有大量带有INSTALL命令的CMakeLists.txt文件,我们需要所有已安装的文件和目录都是可写组的。有没有办法设置/更改默认权限以包括组写,而不是为每个INSTALL命令添加一个PERMISSIONS规范?
答案 0 :(得分:2)
我知道无法在CMake中设置更改默认安装权限。
但是,您可以替换install
命令以将适当的 PERMISSIONS 附加到其参数。像这样:
function(install TYPE)
if(TYPE STREQUAL "FILES")
# install(FILES) command with additional PERMISSIONS option at the end
_install(FILES ${ARGN}
PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ
)
else()
# Pass original arguments for other types of install() command
_install(${TYPE} ${ARGN})
endfunction(install)
在使用install()命令之前,可以将其放在顶级CMakeLists.txt
中。或者,此代码可以存储在.cmake
脚本中,该脚本可以使用CMakeLists.txt
命令包含在顶级include()
中。
答案 1 :(得分:1)
对于文件和显式安装的目录,没有全局设置,但是从CMake 3.10.0开始,您可以为自动生成的目录设置安装权限(由于CMAKE_INSTALL_PREFIX设置或在DESTINATION路径中指定而创建的目录):
和包装: