# How to force target\_link\_libraries to link only dependency, no additional include directories?

**URL:** https://discourse.cmake.org/t/how-to-force-target-link-libraries-to-link-only-dependency-no-additional-include-directories/11186
**Category:** Usage
**Created:** [July 7, 2024, 6:53pm UTC](https://discourse.cmake.org/t/how-to-force-target-link-libraries-to-link-only-dependency-no-additional-include-directories/11186 "2024-07-07T18:53:28Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![davemilter](https://discourse.cmake.org/user_avatar/discourse.cmake.org/davemilter/32/541_2.png) [@davemilter](https://discourse.cmake.org/u/davemilter)
#### Post date: [July 7, 2024, 6:53pm UTC](https://discourse.cmake.org/t/how-to-force-target-link-libraries-to-link-only-dependency-no-additional-include-directories/11186/1 "2024-07-07T18:53:28Z")

</div>

Here minimal example:

```cmake
cmake_minimum_required(VERSION 3.17 FATAL_ERROR)

project(foo)

add_library(lib1 OBJECT lib1/lib1.cpp lib1/lib1.hpp)
target_include_directories(lib1 PUBLIC lib1)

add_library(lib2 OBJECT lib2/lib2.cpp lib2/lib2.hpp)
target_link_libraries(lib2 PRIVATE lib1)
target_include_directories(lib2 PUBLIC lib2)

add_executable(foo main.cpp)
target_link_libraries(foo PRIVATE lib2 lib1)

```

Because of [cmake bug](https://gitlab.kitware.com/cmake/cmake/-/issues/18090) object library dependecies do not propagate, so I have to specify dependency of `foo` to `lib1` manually: target\_link\_libraries(foo PRIVATE lib2 **lib1** ) or I get link time error.

But this also populate include directory list, so source files of `foo` after target\_link\_libraries(… lib1) can no access include from `lib1` directory. I do not want this.

So can I somehow only link `lib1` with `foo`, and do not pull new include paths from `lib1` to `foo` ?

---

<div class="post-metadata">

### Author: ![jtxa](https://discourse.cmake.org/user_avatar/discourse.cmake.org/jtxa/32/1535_2.png) [@jtxa](https://discourse.cmake.org/u/jtxa)
#### Post date: [July 8, 2024, 8:11pm UTC](https://discourse.cmake.org/t/how-to-force-target-link-libraries-to-link-only-dependency-no-additional-include-directories/11186/2 "2024-07-08T20:11:16Z")

</div>

You almost have the answer in your headline: [LINK\_ONLY](https://cmake.org/cmake/help/latest/manual/cmake-generator-expressions.7.html#genex:LINK_ONLY)  
`target_link_libraries(foo PRIVATE lib2 $<LINK_ONLY:lib1>)`

And it’s not a CMake bug, it’s a feature 😉 or better said, a design decision.
