2017-08-31 111 views
0

cmake文档告诉我们默认权限是用户读取写入,组读取和其他读取。更改cmake安装命令的默认文件权限

我们的项目有大量的带有INSTALL命令的CMakeLists.txt文件,我们需要我们所有安装的文件和目录都是可写的。有没有办法将默认权限设置/更改为包含组写入,而无需向每个INSTALL命令添加PERMISSIONS规范?

+0

哪个操作系统是你的工作吗? – Onno

+0

红帽企业Linux 6 –

回答

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) 

这可以安装()命令中的任何使用前放置在顶层CMakeLists.txt。或者,此代码可存储在.cmake脚本中,该脚本可通过include()命令包含在顶级CMakeLists.txt中。

1

文件和显式安装目录中没有全局设置,但CMake的3.10.0上你可以设置安装自动生成目录的权限(那些创建由于CMAKE_INSTALL_PREFIX设置或指定的目标路径):

https://cmake.org/cmake/help/git-stage/variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.html#variable:CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS

和包装:

https://cmake.org/cmake/help/git-stage/variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.html#variable:CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS