I realize this is a more-or-less direct port from the Autotools build system, but is it in the scope of this WIP PR to re-organize it to be more Meson-like, or rather to get rid of Autotools-style/cruft?
A few things that stick out:
* Compiling all the things into helper static libs (Scintilla, Ctags, etc) which are not distributed and only used to build the shared libgeany. These could all be built into a single `shared_library` and delimit the source file (directories) in the arguments list with newlines and/or comments. * Checking for C headers which are guaranteed to exist (ex. C99 headers) * Using the built-in Pkgconfig module to generate .pc file * Different `extra_data` filenames for Windows (could be done in the `geany.nsi` script probably) * If we're going to use subdir(), why not subdir() into the `src` dir as well to move the libgeany/geany into a smaller file? Otherwise, maybe all of the things could be done in the same huge source of truth `meson.build` file in the source root directory? * Use the `/` path operator instead of `join_paths()` as well as for other paths where now they're just regular strings. Not sure what's idiomatic. * Is any explicit `rpath` stuff really needed? I only use Meson for small Vala projects, but in my uses it easily handles installing executables linked to shared libraries using correct paths for the distro.
Maybe we could do like?
1. Merge this sort of direct-port PR once ready 2. Do stuff like listed above to Mesonify in a separate PR(s) afterwards 3. Once Meson build is nice and clean and maintainable, rip out Autotools