Skip to content

Add build2 packaging support#21

Open
gistrec wants to merge 1 commit into
masterfrom
add-build2
Open

Add build2 packaging support#21
gistrec wants to merge 1 commit into
masterfrom
add-build2

Conversation

@gistrec
Copy link
Copy Markdown
Owner

@gistrec gistrec commented May 13, 2026

Summary

  • Add build2 packaging (manifest, root buildfile, build/bootstrap.build, build/root.build, include/buildfile, include/geo/buildfile). The library is published on cppget under the build2 libfoo convention as libgeo-utils; the name geo-utils-cpp is preserved everywhere else (GitHub project, CMake, vcpkg, Conan, xrepo).
  • Declare lib{geo-utils} as a binless target with cxx.export.poptions = "-I$src_root/include" so consumers keep using #include <geo/...> — no API or layout change.
  • README: add a build2 / bpkg / cppget install section that explicitly explains the libgeo-utils vs geo-utils-cpp naming.
  • .gitignore: keep CMake build artifacts under build/ ignored while tracking the new build2 metadata files (build/bootstrap.build, build/root.build).

Closes #18.

Test plan

  • With the build2 toolchain installed, bdep init -C ../build-gcc cc config.cxx=g++ then b succeeds from the repo root.
  • b install config.install.root=/tmp/p lands headers at /tmp/p/include/geo/*.hpp, including /tmp/p/include/geo/detail/math.hpp.
  • A consumer package with depends: libgeo-utils ^1.0.1 and import libs = libgeo-utils%lib{geo-utils} builds and links against the installed library.
  • Existing CMake, vcpkg, and xrepo CI workflows continue to pass (no changes to those paths).

Publish on cppget under the build2 `libfoo` convention as
`libgeo-utils`. The CMake / vcpkg / Conan / xrepo name stays
`geo-utils-cpp`. The header layout, namespace, and `#include
<geo/...>` API are unchanged.

Adds manifest, root and per-directory buildfiles, and the
build/{bootstrap,root}.build scaffolding for a binless lib
target; updates README to explain the dual naming; tweaks
.gitignore so CMake artifacts under build/ stay ignored while
the new build2 metadata files are tracked.

Closes #18
@codecov-commenter
Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.19%. Comparing base (a28bb64) to head (b9ec999).

Additional details and impacted files
@@           Coverage Diff           @@
##           master      #21   +/-   ##
=======================================
  Coverage   98.19%   98.19%           
=======================================
  Files          20       20           
  Lines         499      499           
  Branches       88       88           
=======================================
  Hits          490      490           
  Misses          1        1           
  Partials        8        8           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@gistrec gistrec added the enhancement New feature or request label May 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add build2 package (cppget.org)

2 participants