# Adding a library to a library

**URL:** https://discourse.cmake.org/t/adding-a-library-to-a-library/13547
**Category:** Code
**Created:** [February 6, 2025, 3:34pm UTC](https://discourse.cmake.org/t/adding-a-library-to-a-library/13547 "2025-02-06T15:34:31Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![rsalz](https://discourse.cmake.org/user_avatar/discourse.cmake.org/rsalz/32/5179_2.png) [@rsalz](https://discourse.cmake.org/u/rsalz)
#### Post date: [February 6, 2025, 3:34pm UTC](https://discourse.cmake.org/t/adding-a-library-to-a-library/13547/1 "2025-02-06T15:34:31Z")

</div>

CMake newbie here. I have a library, `add_library(crypto...` that needs to incorporate another library `add_library(defprov ...` In Unix I can just add libdefprov.a to the $(CC) line. How do I write that in cmake?

---

<div class="post-metadata">

### Author: ![snikulov](https://discourse.cmake.org/user_avatar/discourse.cmake.org/snikulov/32/194_2.png) [@snikulov](https://discourse.cmake.org/u/snikulov)
#### Post date: [February 6, 2025, 3:42pm UTC](https://discourse.cmake.org/t/adding-a-library-to-a-library/13547/2 "2025-02-06T15:42:28Z")

</div>

Something like that from samples

```auto
add_library(defprov ${DEFPROV_SRC_HERE})

add_library(crypto ${CRYPTO_SRC_HERE})
# add defprov public dependency to crypto library
target_link_libraries(crypto PUBLIC defprov)
...

```

Lean above cmake keywords in documentation [https://cmake.org/cmake/help/latest/](https://cmake.org/cmake/help/latest/)

HTH.

---

<div class="post-metadata">

### Author: ![rsalz](https://discourse.cmake.org/user_avatar/discourse.cmake.org/rsalz/32/5179_2.png) [@rsalz](https://discourse.cmake.org/u/rsalz)
#### Post date: [February 6, 2025, 11:25pm UTC](https://discourse.cmake.org/t/adding-a-library-to-a-library/13547/3 "2025-02-06T23:25:43Z")

</div>

Short answer: thanks that works! I had been building the source list in an error-prone way (each subdir ending with `set...PARENT_SCOPE)` but I had errors and typo’s. Since the source are additive, I just do multiple `target_sources(defprov ...)` and things are much better. Thanks.
