cargo-c
meson
cargo-c | meson | |
---|---|---|
2 | 112 | |
463 | 5,648 | |
- | 1.0% | |
8.3 | 9.8 | |
5 days ago | 7 days ago | |
Rust | Python | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cargo-c
-
cargo-c common questions
I'm writing this to explain some of the problems cargo-c solves and hopefully give few pointers since the README containing all the documentation maybe grew to be fairly big.
-
AOM AV1 encoder/decoder in Debian needs update to enable AVIF saving
Beside rav1e there is need also for cargo-c, so that rav1e can provide C-compatible library.
meson
-
cargo-c common questions
With cargo-c I try to use the best practices to support as many platform as possible, trying to stay in sync with what meson does. Sadly what is conceptually trivial, installing a package, has lots of details that are platform-specific.
- Ask HN: How to handle user file uploads?
-
Which Build Tool for a Bootstrappable Project?
[1]: https://github.com/mesonbuild/meson/issues/8153
- Building Waybar fails
-
How to find a list of all gcc errors/warnings?
As it happens, I recently landed a PR in meson to add a clang-like Weverything mode that includes all of that, so you can get a minimal list of more or less all GCC warnings, organized by version, from the meson source here: https://github.com/mesonbuild/meson/blob/710a753c78077220b13a9f7e999dcdb61339efb1/mesonbuild/compilers/mixins/gnu.py
-
Makefile Tutorial
Came here to post the same. The answer for How to build software? is Meson[1] for C and C++ and also other languages. Works well on Windows and Mac, too.
I’ve written a small Makefile to learn the basic and backgrounds. Make is fine. But the next high-level would have been Autotools, which is an intimidating and weird set of tools. Most new stuff written in C/C++ use now Meson and it feels sane.
[1] https://mesonbuild.com
-
CMake x make?
If you are very fortunate, you'll be able to choose something else. I like meson myself: it looks a bit like python, it's popular, small, simple, well-documented, easy to install and update, and it works well everywhere.
-
C++ Papercuts
I suggest changing the build tool. Meson improved C and C++ a lot:
https://mesonbuild.com/
The dependency declaration and auto-detection is nice. But the hidden extra is WrapDB, built-in package management (if wanted):
https://mesonbuild.com/Wrap-dependency-system-manual.html
-
A Modern C Development Environment
> C's only REAL problem (in my opinion) which is the lack of dependency management. Most everything else can be done with a makefile and a half decent editor.
Care to hear about our lord and saviour Meson?
Both of your quoted problems are mutually incompatible: dependency management isn't the job of the compiler, it's a job for the build or host system. If you want to keep writing makefiles, be prepared to write your own `wget` and `git` invocations to download subprojects.
Meanwhile, Meson solves the dependency management problem in a way that makes both developers and system integrators/distributions happy. It forces you to make a project that doesn't have broken inter-file or header dependency chains and cleans up all the clutter and cruft of a makefile written for any non-trivial project, while making it trivial to integrate other meson projects into your build, let other people integrate your project into theirs, and provides all of the toggles and environment variables distribution developers need to package your library properly. You can really have your cake and eat it too.
https://mesonbuild.com/
-
cgen: another declarative CMake configuration generator
Other people going down this route seem to end up writing cmake replacements instead. I'm thinking of something like meson here except that meson never intended to transpile to cmake.
What are some alternatives?
qt-avif-image-plugin - Qt plug-in to allow Qt and KDE based applications to read/write AVIF images.
CMake - Mirror of CMake upstream repository
cargo-release - Cargo subcommand `release`: everything about releasing a rust crate.
ninja - a small build system with a focus on speed
rav1e - The fastest and safest AV1 encoder.
SCons
cargo-changelog - Changelog management tool for the CLI
Bazel - a fast, scalable, multi-language and extensible build system
gentoo - Official Gentoo ebuild repository
cmake-init - The missing CMake project initializer
cargo-make - Rust task runner and build tool.
BitBake - The official bitbake Git is at https://git.openembedded.org/bitbake/. Do not open issues or file pull requests here.