USE_SOURCE_PERMISSIONS按预期保留权限:
install(
DIRECTORY dir/
DESTINATION dest
USE_SOURCE_PERMISSIONS
)
但是,当我运行
时,不会保留文件的所有权sudo make install
我错过了什么,或者没有办法用CMake干净利落地完成它?
编辑:
我想出了一个我能想到的最简单的例子来重现这个问题,但同样的情况仍在发生。
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/to_install
DESTINATION $ENV{HOME}
USE_SOURCE_PERMISSIONS)
然后我跑:
mkdir build
cd build
cmake ..
sudo make install
原始权限是:
.──[drwxr-xr-x guicc ] test-cmake
├── [-rw-r--r-- guicc ] CMakeLists.txt
└── [drwxr-xr-x guicc ] to_install
├── [-rw-r--r-- guicc ] file1.txt
└── [-rw-r--r-- guicc ] file2.txt
结果权限如下:
.──[drwxr-xr-x root ] to_install
├── [-rw-r--r-- root ] file1.txt
└── [-rw-r--r-- root ] file2.txt