3 ms·
The example provided is insufficient to state c++ package managers are easy. Firstly the meson.build file has a few libs mentioned 1)fmt and 2)sdl2. Let's go
by omac777 4y ago
The example provided is insufficient to state c++ package managers are easy.
Firstly the meson.build file has a few libs mentioned 1)fmt and 2)sdl2. Let's go with that. Usually all libs have version tags associated:
https://github.com/fmtlib/fmt/releases/tag/9.1.0 https://github.com/fmtlib/fmt/releases/tag/9.1.0
https://github.com/libsdl-org/SDL/releases/tag/release-2.24.0 https://github.com/libsdl-org/SDL/releases/tag/release-2.24....
Rust Cargo.toml files help you to specify the version number or place * for the latest version. It is well documented it fetches the crate from crates.io or it will specify elsewhere explicitly. I see nothing of that within meson.build in your example.
meson.build documentation states you may specify a version, but there is nothing there stating by default it gets the latest version.
https://mesonbuild.com/Reference-manual_functions.html#dependency https://mesonbuild.com/Reference-manual_functions.html#depen...
I see nothing mentioning the latest version of each package is fetched within meson.build in your example.
Next you mentioned a number of steps to follow to deliver a C++ binary:
mkdir subprojects
meson wrap install fmt
meson wrap install sdl2
meson build
ninja -C build
build\deptest
For Rust, that would be
one line to build: cargo build --release
one line to test: cargo test --release
I wouldn't say C++ package managers are hard, but they are certainly not as eloquent as Rust.