Snaipe / Criterion

A cross-platform C and C++ unit testing framework for the 21st century
MIT License
1.94k stars 176 forks source link

Treat debugbreak and klib as external subprojects #489

Closed cprieto closed 1 year ago

cprieto commented 1 year ago

Dealing with Git submodules is a little cumbersome for newcomers trying to compile the source code, at the same time, it provides challenges when integrating with some C++ dependency systems (like Conan).

Instead of depending on git submodules, this PR moves debugbreak and klib as external wraps from the corresponding GitHub revisions and repositories, the source code is unmodified and it uses meson and wrap support for overrides to create a dependency in klib and debugbreak include directories.

This will close https://github.com/Snaipe/Criterion/issues/488

cprieto commented 1 year ago

The reason both Alpine builds (and one Debian build) are failing is because the version for Meson is too old. Notice it passes in Alpine for ARM and Aarch64 (were the version for Meson is 0.64). Updating the image to a recent version will fix this problem, I added the restriction to 0.55, which is the minimum required for the patch to work.

Now, the Windows version is failing because is trying pip and not pip3 or something like that but this version should be fine.