安装时不应用CMake WORLD_WRITE权限

Ste*_*art 5 install cmake

CMakeLists.txt通过执行以下操作从a安装一个空目录:

file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/var/log)

install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/var
        DESTINATION ${CMAKE_INSTALL_PREFIX}
        DIRECTORY_PERMISSIONS
          OWNER_WRITE OWNER_READ OWNER_EXECUTE
          GROUP_WRITE GROUP_READ GROUP_EXECUTE
          WORLD_WRITE WORLD_READ WORLD_EXECUTE
        COMPONENT runtime
       )
Run Code Online (Sandbox Code Playgroud)

我希望看到这些权限:

/opt/myapp $ ls -l
drwxrwxrwx root root var
drwxrwxrwx root root var/log
Run Code Online (Sandbox Code Playgroud)

但相反,我看到:

/opt/myapp $ ls -l
drwxr-xr-x root root var
drwxrwxrwx root root var/log
Run Code Online (Sandbox Code Playgroud)

DIRECTORY_PERMISSIONS WORLD_WRITEGROUP_WRITE适用于var/log但不适用var.目前我需要sudo chmod 777 var让我的程序运行.我怎么能纠正这个?

Ste*_*art 1

在无法用 MCVE 重现它之后我发现了这一点。

包含以下add_subdirectory()内容的一个 CMakeLists.txt:

install(DIRECTORY var DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT runtime)
Run Code Online (Sandbox Code Playgroud)

覆盖了install上级命令的权限CMakeLists.txt