Practicalities of Co-locating Tests with Source Code

This article describes a shift in my development habits. I used to default to mirrored source and test trees, and now I tend to co-locate tests. Below, I cover the structure and the practicalities of organizing a build system to support this choice. Table of Contents: Mirrored Trees Co-location Build System Structure Summary Mirrored Trees …

Meson Pattern: Monorepo that Supports Individual Subproject Builds

As mentioned in the article, Develop in a Monorepo and Distribute to Standalone Repositories Develop in a Monorepo and Distribute to Standalone Repositories, we've merged many of our repos into a monorepo setup, but we're going to continue to distribute changes to the existing standalone repositories. To support this model, we have the following requirements …

How to Incorporate Linker Scripts in Meson Cross-Compilation Files

Meson has a concept of machine files which can be used to define a cross-compilation environment or a build machine environment. The idea is that the primary meson.build files describe how the project is built, while the machine files can supply the specific toolchain binaries and compilation flags necessary for a particular environment. Following this …