Available Resources
This page collects downloadable materials related to the TriBITS framework. These resources are useful for offline reference, team onboarding, and presentations.
Presentation Slides
TriBITS Poster Slides
A high-level overview of the TriBITS framework suitable for conference posters, team presentations, and stakeholder briefings. Covers the core concepts: package model, dependency resolution, test categories, and multi-repository support.
Format: PowerPoint (.pptx) Download: TriBITS_Poster_Slides.pptx
The slides are designed to be self-contained. Each slide covers a single concept with enough context to be useful without a presenter. Use them as a starting point for your own presentations or as a quick reference for the framework's key ideas.
Documentation for Offline Use
The full documentation is available on this site, but if you need offline access, here are the key pages in printable form:
- Developers Guide covers the complete development workflow from project layout through testing.
- Maintainers Guide covers long-term maintenance, CI stability, and release practices.
- Build Reference is the variable and macro lookup table.
Use your browser's print function to save these as PDF. The pages are styled to print cleanly without navigation elements.
Getting the Framework
TriBITS is integrated into projects as a CMake module. The typical way to obtain it is through your project's repository structure. The framework files live alongside your project's build configuration.
Integration Approaches
Git submodule. The most common approach. Add TriBITS as a submodule in your project's repository. This pins the framework to a specific version and lets you update deliberately.
git submodule add <tribits-repo-url> cmake/tribits
git submodule update --init
Direct inclusion. Copy the TriBITS CMake files into your project. This is simpler but makes updates manual. Suitable for projects that do not change their build infrastructure often.
CMake FetchContent. For projects that prefer to pull dependencies at configure time:
include(FetchContent)
FetchContent_Declare(
TriBITS
GIT_REPOSITORY <tribits-repo-url>
GIT_TAG <version-tag>
)
FetchContent_MakeAvailable(TriBITS)
Version Selection
When choosing a TriBITS version, prefer tagged releases over branch tips. The framework evolves, and build system changes can be disruptive. Pin to a version, test, and update deliberately.
Check the Changelog for notes on what changed between versions.
Quick Reference Cards
These are compact summaries designed to fit on a single printed page. Keep them near your terminal.
Package Structure Quick Reference
MyPackage/
CMakeLists.txt # tribits_package() ... tribits_package_postprocess()
cmake/
Dependencies.cmake # tribits_package_define_dependencies()
src/
CMakeLists.txt # tribits_add_library()
test/
CMakeLists.txt # tribits_add_test() / tribits_add_executable_and_test()
Common Configure Commands
# Enable one package with tests
cmake -D Proj_ENABLE_Pkg=ON -D Proj_ENABLE_TESTS=ON -B build
# Enable everything
cmake -D Proj_ENABLE_ALL_PACKAGES=ON -B build
# CI incremental build
cmake -D Proj_ENABLE_Pkg=ON -D Proj_ENABLE_ALL_FORWARD_DEP_PACKAGES=ON \
-D Proj_ENABLE_TESTS=ON -D Proj_TEST_CATEGORIES=BASIC -B build
# Release install
cmake -D CMAKE_BUILD_TYPE=Release -D Proj_ENABLE_ALL_PACKAGES=ON \
-D CMAKE_INSTALL_PREFIX=/opt/proj -B build
cmake --build build -j8
cmake --install build
Dependency Declaration Quick Reference
tribits_package_define_dependencies(
LIB_REQUIRED_PACKAGES # Must be available for library to build
LIB_OPTIONAL_PACKAGES # Extra features if available
TEST_REQUIRED_PACKAGES # Needed for tests to compile
TEST_OPTIONAL_PACKAGES # Extra test features
LIB_REQUIRED_TPLS # External libs required
LIB_OPTIONAL_TPLS # External libs optional
)

Requesting Additional Resources
If you need specific documentation, examples, or reference materials that are not available here, check the Documentation section first. Most topics are covered in the online guides and reference pages. For corrections or suggestions, use the Contact page.
File Formats and Compatibility
All downloadable resources on this page use widely supported file formats. PowerPoint slides are in .pptx format, which opens in Microsoft PowerPoint, LibreOffice Impress, Google Slides, and Apple Keynote. No special software is required beyond a standard office suite.
The documentation pages linked above are standard HTML and print well from any modern browser. For best results when saving as PDF, use the browser's built-in print function with the "Save as PDF" destination. The site's print stylesheet hides navigation elements, adjusts margins, and ensures code blocks wrap properly.
Using Resources in Your Organization
The materials on this page are intended for practical use in your team, organization, or project. Common uses include:
Team onboarding. Share the poster slides with new team members as a first introduction to the TriBITS model before they work through the full documentation. The slides cover the core ideas in a condensed format that works well in a thirty-minute orientation session.
Build system documentation. Include the quick reference cards in your project's internal documentation. Teams often paste the package structure template and common configure commands into their own wikis or README files as a starting point.
Architecture reviews. The poster slides work well in architecture review meetings where you need to explain the build system to stakeholders who are not involved in day-to-day development. They provide enough technical detail to be useful without requiring deep CMake knowledge.
Conference presentations. If you are presenting about your TriBITS-based project, the poster slides provide a ready-made introduction to the framework. Modify them to fit your project's specifics.
Keeping Resources Current
Downloaded resources represent a snapshot at the time of download. The framework and its documentation evolve over time. Check the Changelog periodically for updates to the documentation. If you have printed copies or saved PDFs, compare them against the online versions when starting a new project phase or upgrading the framework version.
The presentation slides are updated less frequently than the documentation pages. The concepts they cover are stable, but specific variable names or macro signatures may change between framework versions. Always verify details against the current Reference page.