
On Fri, Sep 20, 2013 at 06:17:41PM +0200, Krzysztof KosiĆski wrote:
2013/9/20 Markus Engel <p637777@...1081...>:
I have just added a patch to this bug. Why are there three different build system for compiling Inkscape actually?
Autotools is what was used since the beginning. btool was added later, because Autotools requires MSYS on Windows (basically a thin POSIX emulation layer), and it seems the great wise coders who wrought the Windows port preferred to write their own build tool rather than use MSYS. CMake was intended to replace both of those, but it doesn't have important features which exist in Autotools and btool, and adding them back requires writing lots of code in a poorly designed and verbose scripting language.
Out of curiousity what was/is missing from cmake?
In December 2010, I tried to create an unified build system using Waf. I succeeded in adding practically all of the features in the Autotools and btool systems, but it required some hacks and modifications to Waf source. Things have changed now and I have far more experience due to using Waf to build software developed at my NMR laboratory - I think I could modify this system to work with a vanilla copy of Waf. The code is here: https://code.launchpad.net/~tweenk/inkscape/waf-build
If there is interest in unifying the build systems before the 0.49 release, I could dust off this code and make it work again with modern trunk.
Not sure how much time there is before 0.49, but in general build system changes can be a bit disruptive (bug fixers have to stop fixing bugs and learn the new system), so the optimal time to land infrastructure changes is right *after* a release. Plus 0.50 is a nice round number, perfect for featuring big codebase improvements like that. :-)
Might also want to think about if the build system is changed to make it more portable, also give consideration to other possible platforms that Inkscape isn't currently on but that someone might conceivably want to port to some day (e.g. mobile devices and whatnot.)
Bryce