Skip to content
@externpro

externpro

externpro 🧰🔧

BYOS: build your own stack

A CMake build platform and dependency provider with reusable CI (continuous integration) pipelines. Reproducible builds. Reusable dependencies. Consistent CI. Fewer "works on my machine" surprises.

CMake CI Supply%20Chain Containers xpbuild Release License

Why externpro? 🎯

externpro standardizes toolchains, dependencies, and CI workflows across developers, machines, and repositories—so teams ship faster with less drift and duplication.

Main repos 📌

  1. externpro (core) 🧰 CMake build platform + dependency provider model + reusable workflows (xpsync, xpbuild, xptag, xprelease).

  2. buildpro (Linux toolchain images) 🐳 Linux Docker build images used by externpro-enabled repos to keep compilers/tools/system deps consistent.

  3. tutorial (adoption walkthrough) 🎓 Vendor externpro as a .devcontainer submodule, run xpSync, follow xpTag → xpBuild → xpRelease, and consume externpro-produced deps via find_package().

Start here 🚀

  1. Add externpro as a submodule to your project — the tutorial walks through the exact steps
  2. Run the bootstrap script to set up the xpro branch, copy workflow templates, and configure externpro
  3. Verify the setup works locally with cmake --list-presets and cmake --preset=<platform>
  4. Run the xpSync workflow to sync externpro and open a PR that standardizes presets, workflows, and repo wiring
  5. Use other org repos as reference implementations (see the externpro projects table: https://github.com/externpro/externpro/blob/main/cmake/README.md)
  6. Start building and delivering your projects on multiple OSes, architectures, and compilers - creating packages that can be consumed by other projects quickly and consistently!
  7. Read the core overview in externpro
  8. Review the foundational patterns in buildpro

What you get ✅

Capability What it means
🏗️ Build platform A consistent build + toolchain baseline across Linux/macOS/Windows, x86_64/arm64, and multiple compiler toolchains (Linux buildpro containers; macOS/Windows GitHub-hosted runners)
📦 Dependency provider Dependencies are provided to your build as ready-to-use packages/targets, so consuming projects can just find_package() and link (rather than each repo reinventing fetch/build/patch)
🔁 Reusable CI Standardized sync/build/test/tag/release pipelines with supply chain outputs (SBOM/attestation)

Repos in this org 🧪

Most repositories in the organization act as reference implementations—examples of integrating externpro and using the workflow as intended. See the externpro projects table: https://github.com/externpro/externpro/blob/main/cmake/README.md

Pinned Loading

  1. externpro externpro Public

    A CMake build platform and dependency provider with reusable CI (continuous integration) pipelines.

    CMake 3 7

  2. buildpro buildpro Public

    Linux Docker build images for projects that use externpro.

    C++ 2 3

  3. tutorial tutorial Public

    externpro tutorial

    CMake 2

Repositories

Showing 10 of 80 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…