Skip to content

Why generated C++ projects vendor BESA

The Python package is a development tool, not a runtime requirement of generated C++ software. besa cpp generate copies the current CMake implementation into cmake/besa, and the generated project finds that local package explicitly.

This has two useful consequences. First, a source checkout remains buildable on a machine which has CMake and the project's actual dependencies but no Python BESA installation. Second, upgrading the build abstraction is explicit: besa cpp update replaces only the BESA-managed module directory and never rewrites project-owned CMake.

The generated project's installed CMake package also does not depend on BESA. Target instrumentation is build-interface-only and BESA emits normal consumer dependency discovery directly into the project's own <project>Config.cmake.