ament / ament/ament_cmake

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

Aberta
#546 0 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
CMake
Estrelas
125
Forks
147
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

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)

Guia de contribuição

Abrir o guia de contribuição

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.