This repository contains the infrastructure for The Beman Project. This is NOT a library repository, so it does not respect the usual structure of a Beman library repository nor The Beman Standard!
cmake/: CMake modules and toolchain files used by Beman libraries.containers/: Containers used for CI builds and tests in the Beman org.tools/: Tools used to manage the infrastructure and the codebase (e.g., linting, formatting, etc.).
This repository is intended to be used as a beman-submodule in other Beman repositories. See the Beman Submodule documentation for details.
The CMake modules in this repository are intended to be used by Beman libraries. Use the
beman_add_install_library_config() function to install your library, along with header
files, any metadata files, and a CMake config file for find_package() support.
add_library(beman.something)
add_library(beman::something ALIAS beman.something)
# ... configure your target as needed ...
find_package(beman-install-library REQUIRED)
beman_install_library(beman.something)Note that the target must be created before calling beman_install_library(). The module
also assumes that the target is named using the beman.something convention, and it
uses that assumption to derive the names to match other Beman standards and conventions.
If your target does not follow that convention, raise an issue or pull request to add
more configurability to the module.
The module will configure the target to install:
- The library target itself
- Any public headers associated with the target
- CMake files for
find_package(beman.something)support
Some options for the project and target will also be supported:
BEMAN_INSTALL_CONFIG_FILE_PACKAGES- a list of package names (e.g.,beman.something) for which to install the config file (default: all packages)<BEMAN_NAME>_INSTALL_CONFIG_FILE_PACKAGE- a per-project option to enable/disable config file installation (default:ONif the project is top-level,OFFotherwise). For instance forbeman.something, the option would beBEMAN_SOMETHING_INSTALL_CONFIG_FILE_PACKAGE.