cmake文檔告訴我們默認權限是用戶讀取寫入,組讀取和其他讀取。更改cmake安裝命令的默認文件權限
我們的項目有大量的帶有INSTALL命令的CMakeLists.txt文件,我們需要我們所有安裝的文件和目錄都是可寫的。有沒有辦法將默認權限設置/更改爲包含組寫入,而無需向每個INSTALL命令添加PERMISSIONS規範?
cmake文檔告訴我們默認權限是用戶讀取寫入,組讀取和其他讀取。更改cmake安裝命令的默認文件權限
我們的項目有大量的帶有INSTALL命令的CMakeLists.txt文件,我們需要我們所有安裝的文件和目錄都是可寫的。有沒有辦法將默認權限設置/更改爲包含組寫入,而無需向每個INSTALL命令添加PERMISSIONS規範?
我不知道在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
中。
文件和顯式安裝目錄中沒有全局設置,但CMake的3.10.0上你可以設置安裝自動生成目錄的權限(那些創建由於CMAKE_INSTALL_PREFIX設置或指定的目標路徑):
和包裝:
哪個操作系統是你的工作嗎? – Onno
紅帽企業Linux 6 –