ament / ament/ament_lint

[ament_cppcheck] provide libraries

Open
#427 1 comment 0 reactions 0 assignees View on GitHub
backlog
Dominant language
Python
Stars
50
Forks
129
Avg merge
3d 10h
Merged PRs (30d)
3

Description

When configuring my CMakeLists.txt for `ament_cppcheck()`, LIBRARIES can be explicitly set.

However, when `ament_package()` is called as well, errors are raised since `ament_cppcheck()` is called from [ament_cmake_cppcheck_lint_hook.cmake](https://github.com/ament/ament_lint/blob/rolling/ament_cmake_cppcheck/cmake/ament_cmake_cppcheck_lint_hook.cmake#L88)

How am I supposed to provide the relevant libraries for `ament_cppcheck()` while calling `ament_package()` in my CMakeLists.txt?

On my local system, I solved it similarly as for e.g. file exclusions. Hence I added the following in ament_cmake_cppcheck_lint_hook.cmake

```
# Add libraries for added targets
set(_all_libraries "")
if(DEFINED ament_cmake_cppcheck_ADDITIONAL_LIBRARIES)
list(APPEND _all_libraries ${ament_cmake_cppcheck_ADDITIONAL_LIBRARIES})
endif()
```

and called `ament_cppcheck` as
```
ament_cppcheck(
${_language} INCLUDE_DIRS ${_all_include_dirs} EXCLUDE ${_all_exclude} LIBRARIES ${_all_libraries}
)
```
As a result, I can set e.g. the boost-configuration of cppcheck as follows:
```
set(ament_cmake_cppcheck_ADDITIONAL_LIBRARIES "boost")
```
Is this how it is supposed to work or am I missing something?
If necessary, I am willing to create a PR.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.