# Make Beman Packageable

**URL:** <https://discourse.bemanproject.org/t/make-beman-packageable/331>\
**Category:** Beman Project Development\
**Tags:** cmake, packaging\
**Created:** [January 27, 2025, 3:29pm UTC](https://discourse.bemanproject.org/t/make-beman-packageable/331 "2025-01-27T15:29:30Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![Jason5480](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.bemanproject.org/jason5480/32/203_2.png) [@Jason5480](https://discourse.bemanproject.org/u/Jason5480)\
**Post date:** [January 27, 2025, 8:15pm UTC](https://discourse.bemanproject.org/t/make-beman-packageable/331/3 "2025-01-27T20:15:25Z")

</div>

If I had to choose, I would go with option 3 since `find_package(GTest)` is the norm. Also, having a fallback to fetch and build from source isn’t a bad choice. However, if I am not mistaken the proposed way is to provide a toolchain file in the configuration step. This file is usually generated by the package manager, the concept is that you consume packages the way you want your package to be consumed! That way you create a consistent user experience. So, I think failing to find GTest if a toolchain is not provided is not a bad thing at all. CMake should express “what” is needed while package manager should tell “where” and “how” to obtain it. If presets are used, the toolchain file can be provided to a base preset that is inherited by other presets. That way is not a burden during development and the three problems (should be) solved by the package manager.

---

_[View the full topic](https://discourse.bemanproject.org/t/make-beman-packageable/331)._
