2017-08-31 536 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