# Converting exemplar to a CMake INTERFACE-type library

**URL:** <https://discourse.bemanproject.org/t/converting-exemplar-to-a-cmake-interface-type-library/527>\
**Category:** Beman Project Development\
**Created:** [September 29, 2025, 3:17pm UTC](https://discourse.bemanproject.org/t/converting-exemplar-to-a-cmake-interface-type-library/527 "2025-09-29T15:17:22Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![ednolan](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.bemanproject.org/ednolan/32/131_2.png) [@ednolan](https://discourse.bemanproject.org/u/ednolan)\
**Post date:** [September 29, 2025, 5:14pm UTC](https://discourse.bemanproject.org/t/converting-exemplar-to-a-cmake-interface-type-library/527/2 "2025-09-29T17:14:32Z")

</div>

Takeaways on this topic from today’s weekly sync:

- We should adopt what beman.optional does currently and [declare](https://github.com/bemanproject/optional/blob/main/CMakeLists.txt#L25) the named header set in the top-level CMakeLists.txt while [populating](https://github.com/bemanproject/optional/blob/main/include/beman/optional/CMakeLists.txt#L4) it in `include/beman/exemplar/CMakeLists.txt`
- It’s okay to unconditionally move the lines `find_package(beman-install-library REQUIRED)` and `beman_install_library(beman.exemplar)` from `src/beman/exemplar/CMakeLists.txt` into the top-level `CMakeLists.txt` regardless of whether or not we’re building an `INTERFACE` vs a `STATIC`/`SHARED` library
- The location of the `beman.exemplar-config.cmake.in` file (in the draft, tentatively moved from `src/beman/exemplar` into the top level directory) requires more discussion

@vito.gamberini, what are your thoughts on the last bullet item above?

---

_[View the full topic](https://discourse.bemanproject.org/t/converting-exemplar-to-a-cmake-interface-type-library/527)._
