3 ms·
I thought it'd be about modularity within Meson itself, not within projects it builds. Rust's Cargo itself is a primitive build tool, but it has an interesting
by pornel 7y ago
I thought it'd be about modularity within Meson itself, not within projects it builds.
Rust's Cargo itself is a primitive build tool, but it has an interesting feature: build-time dependencies. It can pull in libraries to help with the build (not your project dependencies, but Cargo's build script dependencies). You need to abstract differences between MSVC and GCC? There's a crate for that. You want to find libraries using pkg-config? vcpkg? There are crates for that. You want to generate a perfect hash-table at build time? There's a crate for that.
Going more meta with dependencies is also very helpful with "snowflake" libraries. Did you know that libpng has its own libpng-config that's like pkg-config, but not quite? On some systems it's necessary to use it. Do you use it in your build script? Why would every user have to know that? Does Meson know how to use it? Why would it hardcode quirk of one particular library?