Our great sponsors
smaz | meson | |
---|---|---|
3 | 109 | |
1,110 | 5,212 | |
- | 2.1% | |
0.0 | 9.8 | |
over 4 years ago | about 16 hours ago | |
C | Python | |
BSD 3-clause "New" or "Revised" 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.
smaz
-
Advanced MessagePack capabilities
Choose the data compression algorithm based on the specifics of your data. For example, if you are working with lots of short strings, take a look at [*SMAZ](https://github.com/antirez/smaz).*
-
C Deep
smaz - Efficient string compression library. BSD-3-Clause
meson
-
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.
-
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:
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.
-
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.
- Makefile vs Cmake - Objective comparison ?
-
Installer script for CMake, Ninja, and Meson
I thought I would share my custom installer script for the latest GitHub versions of CMake, Ninja, and Meson.
-
I was wrong about rust
Meson is probably the closest we'll ever get to such a thing, it's kinda declarative and has WrapDB as a dependency repository.
-
Building and Running Pidgin and Finch 3
Historically when you're building software you need to install it before you can run it. A while back Meson added support for development environments (aka devenv's). These allow us to run pidgin3 and finch3 from the build directory without installing, which saves a TON of development time!
-
Rendering UTF8 in the bare terminal?
We'll go to meson's github page and download the latest release (opting for the meson-1.1.0.tar.gz file), and extract it somewhere
What are some alternatives?
CMake - Mirror of CMake upstream repository
ninja - a small build system with a focus on speed
SCons
Bazel - a fast, scalable, multi-language and extensible build system
cmake-init - The missing CMake project initializer
BitBake - The official bitbake Git is at https://git.openembedded.org/bitbake/. Do not open issues or file pull requests here.
conan - Conan - The open-source C and C++ package manager
xmake - 🔥 A cross-platform build utility based on Lua
PlatformIO - Your Gateway to Embedded Software Development Excellence :alien:
Vcpkg - C++ Library Manager for Windows, Linux, and MacOS
ccls - C/C++/ObjC language server supporting cross references, hierarchies, completion and semantic highlighting
PyBuilder - Software build automation tool for Python.