Port build system from AutoTools to Meson
Motivation
The main reason for this port is that I don't think it's feasible to modify the build system in it's current state. Most of the work is being done in src/Makefile.in. I'm not too familiar with auto-tools, but I believe this file was generated and that whatever was used to create it (E.g Makefile.am) is not part of this repository. Either way, it's 12kloc of Make that's not ergonomic to edit by hand.
Beyond that, there are two additional pain points that would be nice to eliminate.
- The cache doesn't work well. If you run
./configure && make
, and then runmake
again without changing any files, it will still recompile a lot of the project.make -j12
: 22.775s vsmeson compile
: 0.243s - Builds in general are slow (
make -j12
: 1m9s vsmeson compile
: 12.895s)
State
- Builds libosiris (Tested using mide and seems to work fine)
- Builds
moc
anduic
applications - Installs headers to /opt/osisis/include
TODO
-
Build designer application -
Figure out how qt.pro plays into the build system. ./configure && make
doesn't triggertmake qt.pro
. Is that offered as an alternative build to Make? -
Do we still need the license menu in the build system? -
Can support for Qt Commercial license be removed? There is some minor build logic that runs if you have a license -
Does "-KDE" option need to be preserved from the configure script? I don't think this works with the current setup but would have to confirm -
Audit meson.options to make sure they match the behavior of the configure script. -
Remove TODO comments in meson.build, I see how the contents of include/ is populated now so that resolves that issue -
Add license to meson script -
Remove Nas sound option from build -
Remove Netscape header installation from build -
Add option for multi-threaded build support -
Generate moc files as part of build -
Generate source files from UI files -
Generate single and multi-threaded builds of osiris -
Remove previous build -
Build examples directory -
Build tutorials
Edited by Keith Chambers