Documentation
- ๐ Welcome to the CMake RE Documentation
- ๐ Getting started with CMake RE for C++
- ๐ฆ Getting started with CMake RE for Rust (alpha)
- Key Principles and Goals
- ๐ชฉ Developer Machine Digital Twin
- ๐ฉ๐ผโ๐ป cmake-re --help | Command Line Reference
- ๐ฆ L1 Build cache
- ๐ฆ L1 Build Cache Sharing
- ๐ฆ FetchContent() and Package Managers
- ๐ป Environments
- ๐ป Environment Layers Specifications
- ๐ป Self-hosted runners
- Authentication
- Ignore and exclude - Caching and Mirroring
- Accessing hermetic builds folders
- Continuous integration
- Environment variables
- ๐ก๏ธ Data Security and Privacy
- tipi - ๐ฎ EXPERIMENTAL - CMakeLists.txt Generator
- tipi - ๐ฎ EXPERIMENTAL - Getting started with tipi CMakeLists generator
- tipi - Compile options
- tipi - Integrated Package Manager
- tipi - Running tests
- tipi - IDE Integration
๐ชฉ Developer Machine Digital Twin
cmake-re
build hermeticity and remoting is based on the concept of digital twins. When a build is launched the developer-machine workspace pointed to by the source directory of cmake-re is replicated to a fresh instance of the selected Environment: the developer-machine digital twin.
A developer-machine digital twin isn't a full copy of the local developer machine, instead it's a short-lived instance of an hermetic environment provided with the necessary inputs for the build ( i.e. source code, git access tokens... ): A freshly provisioned container or virtual machine started on demand in the user local machine or cloud account.
It is started for the current build session, individual to each user and gets the source code transferred to it directly from client build requests.
Short lived build runner get destroyed at the end of the build session and cleaned up after a configurable timeout.
The developer-pc digital twin remote build runner is made accessible only trough asymetric cryptographics keys for the SSH Protocol generated on each new build session, which means that only the local machine sending the source code and initiating the session has the data to access the short-lived local or remote build virtual environment and the decrypted sources.
Found an error or want to add more info? Write an issue or contribute changes to this documentation at tipi-build/docs on