Replacing CMake Wrapper Scripts with Version-Controlled Presets
CMakePresets.json moves configure, build, and test flags out of brittle shell scripts into a version-controlled file shared by local development and CI.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
CMakePresets.json moves configure, build, and test flags out of brittle shell scripts into a version-controlled file shared by local development and CI.
Grunt’s multi‑task target system lets you create dev, prod, and staging builds from a single config. Learn how it works, see a concrete example, and weigh its trade‑offs against modern tooling.
Learn how to use AlmaLinux’s built‑in ABS to produce RHEL‑compatible binaries from source. The guide covers requirements, a minimal design, trust boundaries, operational checks, and failure modes that may force a design change.
Learn how CMake interface libraries eliminate duplicated include paths, definitions, and link flags by centralizing usage requirements in a single target.
Modern CMake replaces global include/definition commands with target‑based properties. Learn how visibility keywords (PRIVATE, PUBLIC, INTERFACE) control propagation, see a concrete header‑only example, and understand trade‑offs like overusing PUBLIC.
Generator expressions let you embed concise, context‑aware logic in CMake target definitions, keeping build scripts readable while enabling per‑configuration or per‑target tweaks. Learn how to use them, avoid pitfalls, and see a worked example.
Learn how to assign tags to Bazel test targets and run only the relevant subset in CI, cutting test time dramatically while keeping full coverage on merges.
Learn how to publish a Python package on PyPI using the modern PEP 517/518 build system. This guide walks you through configuring pyproject.toml, building, validating, and uploading to Test PyPI before the final release.
Declare include paths, compile definitions and transitive links once in a CMake interface library and let linking propagate them. This removes duplication and keeps usage consistent across targets.