Hi, I have published a boilerplate setup for isolated builds of C/C++ on gitlab:
https://gitlab.com/gokuldasb/cpp-boilerplate
This is my solution for C++ build problems that I raised before with FSUG. The issue is that C and C++ presently doesn't have good package management solutions. The dependencies (libraries, headers etc) are often taken from the system environment.
The dependencies in the system environment very often don't match the project requirements. This is especially bad when multiple projects need different versions of the same dependency. Another issue is of undocumented dependency, which can happen when it is already present in the developer's system.
The solution is to use an isolated build environment. Each project has its own build environment with specific dependency versions. System environment doesn't affect the build. The solution uses Guix (package manager), Meson (build configuration), pkg-config (dependency location and flags) and Ninja (build tool).
Feel free to try, use and ask any questions.
Regards, Gokul Das B