Bash 更改CMake中文件的权限

Bash 更改CMake中文件的权限,bash,shell,build,permissions,cmake,Bash,Shell,Build,Permissions,Cmake,我使用CMake创建了一个shell脚本,如下所示: 文件(编写somescript.sh“echo foo!”) 我希望用户能够立即执行该脚本。为此,最好在CMake中更改该文件的权限 CMake中是否有类似于chmod u+x somescript.sh的内容?您可以在istall命令中执行此操作。使用以下标签: install( FILES somescript.sh PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ

我使用CMake创建了一个shell脚本,如下所示:
文件(编写somescript.sh“echo foo!”)

我希望用户能够立即执行该脚本。为此,最好在CMake中更改该文件的权限


CMake中是否有类似于
chmod u+x somescript.sh的内容?

您可以在istall命令中执行此操作。使用以下标签:

install(
    FILES somescript.sh
    PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
    DESTINATION /some/destination
)

可以在istall命令中执行此操作。使用以下标签:

install(
    FILES somescript.sh
    PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
    DESTINATION /some/destination
)

install
的问题是,当目标目录等于源目录并且文件本身没有更改时(CMake似乎比较时间戳),现有文件不会被覆盖。但无论如何,我找到了一个有效的解决方案,供大家阅读:

  • 如问题所示,在临时文件夹
    ${CMAKE\u BINARY\u DIR}/tmp
  • 使用
    文件(复制${CMAKE\u BINARY\u DIR}/tmp/somescript.sh目标${CMAKE\u BINARY\u DIR}文件${CMAKE\u BINARY\u DIR}权限所有者.\u执行所有者.\u写入所有者.\u读取)
  • 删除旧文件和临时目录:
    文件(删除递归${CMAKE\u BINARY\u DIR}/tmp/)

  • install
    的问题是,当目标目录等于源目录并且文件本身没有更改时(CMake似乎比较时间戳),现有文件不会被覆盖。但无论如何,我找到了一个有效的解决方案,供大家阅读:

  • 如问题所示,在临时文件夹
    ${CMAKE\u BINARY\u DIR}/tmp
  • 使用
    文件(复制${CMAKE\u BINARY\u DIR}/tmp/somescript.sh目标${CMAKE\u BINARY\u DIR}文件${CMAKE\u BINARY\u DIR}权限所有者.\u执行所有者.\u写入所有者.\u读取)
  • 删除旧文件和临时目录:
    文件(删除递归${CMAKE\u BINARY\u DIR}/tmp/)

  • 如果您要复制二进制文件,我将使用\u SOURCE\u权限

    如果您要复制二进制文件,我将使用\u SOURCE\u权限

    删除\u RECURSIVE对我不起作用。它是REMOVE\u RECURSE,正如官方文档中提到的那样,REMOVE\u RECURSE对我不起作用。它是REMOVE_RECURSE,正如官方文档中所提到的,它在linux pc上尝试过这一点,确实有效,但在windows上。。我认为它不是交叉兼容的解决方案在linux pc上尝试了这一点,确实有效,但在windows上。。我认为它不是交叉兼容的解决方案