ament / ament/ament_cmake

Policy CMP0009 warning when symlink-installing a directory that contains a symlink

未關閉
#546 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
CMake
星號
125
分支
147
PR 合併指標
30 天內沒有已合併 PR

描述

I have some packages that print a cmake policy warning when I try to install directories:

```
CMake Warning (dev) at ament_cmake_symlink_install/ament_cmake_symlink_install.cmake:62 (file):
Policy CMP0009 is not set: FILE GLOB_RECURSE calls should not follow
symlinks by default. Run "cmake --help-policy CMP0009" for policy details.
Use the cmake_policy command to set the policy and suppress this warning.
Call Stack (most recent call first):
ament_cmake_symlink_install/ament_cmake_symlink_install.cmake:314 (ament_cmake_symlink_install_directory)
cmake_install.cmake:46 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
```

As far as I know there is no way to fix this warning from my side, the policy should probably be set inside `ament_cmake_core` (I would say it should be set to NEW in order not to follow the links).

A minimal example package setup to show this warning looks as follows:

- CMakeLists.txt
- package.xml
- config
- some_dir
- foo.yaml
- alias_dir --> some_dir

CMakeLists.txt like this:

```cmake
cmake_minimum_required(VERSION 3.8)
project(test_pkg)
find_package(ament_cmake REQUIRED)
install(
DIRECTORY config
DESTINATION share/${PROJECT_NAME}
)
ament_package()
```
Then build with `--symlink-install`.

(version: ROS 2 Jazzy)

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。