Open Collective
Open Collective
Loading
Crow gets overhauled support systems
Published on October 5, 2021 by Farook Al-Sammarraie

For the last couple of months, work on Crow has been hyper focused on getting a new install system, and thanks to the hard work of our newest member, Luca Schlecker, this system is finally here.

Pull Request #228, which was merged this afternoon, while containing very few changes to the actual code, overhauls the way Crow is installed, set up, and even how releases are made.

The primary change is a completely new CMake configuration, making it possible for projects using CMake to find and link Crow directly rather than linking Crow's dependencies.
It also makes it so that Crow's own tests and examples do not build if it being used as a submodule.
In addition to that, it allows for the developer to enable parts of Crow such as SSL or Compression from CMake itself.
This change also affected how examples and tests are built, making the process much more modular such that tests and examples will now compile and run without external dependencies (with Boost being the only exception).

Another noteworthy change is that installing Crow (whether it's through CMake or a package manager) will now use the multiple headers instead of crow_all.h.

Other changes that won't affect the developer's experience much is how the release workflow was changed, with an overhauled release script. 
Making a Crow release is now a lot more automated, the script will make the necessary changes, generate and configure packages for different package managers, and provide instructions on how to proceed once the work is done.
The last 2 changes will not be felt until the next Crow release (v0.4 or possibly v1.0)
❤️  1