2013-10-16 61 views
6

我有一个带有660标志的文件集,但我想用700标志集来安装它。cmake:如何在安装时更改文件权限?

我该怎么做?如何更改文件权限,而不更改源文件的权限?


我安装的命令是这样的:

install(
    FILES common.sh 
    DESTINATION /rootfs/usr/bin 
) 

而这正是我试图(但它不工作):

install(
    FILES common.sh 
    FILE_PERMISSIONS "600" 
    DESTINATION /rootfs/usr/bin 
) 
+0

看看'umask'。 – fedorqui

+0

@fedorqui你是什么意思? –

+0

例如http://superuser.com/questions/264383/set-file-permissions-so-that-new-files-inherit-same-permissions – fedorqui

回答

9

有一个在install(FILES ...)没有FILE_PERMISSIONS说法。使用PERMISSIONS代替:

install(
    FILES common.sh 
    PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ 
    DESTINATION /rootfs/usr/bin 
) 
+0

谢谢,它的工作原理。但是您链接的页面会谈到FILE_PERMISSIONS。我只注意到它不适用于install(),而是file()命令。是否有可能使用file()命令设置权限,因为它似乎提供了更好的控制? –

+1

那么,他们做不同的事情。当'make install'被执行时,安装在'install(FILES ...)'中的文件被安装,并被添加到你所做的任何安装包中。在文件(INSTALL ...)中添加的文件在CMake运行时安装,甚至在构建开始之前安装。 – Fraser