On Wed, Sep 02, 2015 at 03:58:18PM +0300, Shlomi Fish wrote:
Hi Alex,
On Wed, 2 Sep 2015 13:15:50 +0100 Alex Valavanis <valavanisalex@...400...> wrote:
Hi Olof, Shlomi,
autotools builds are the official recommendation for 0.91. CMake still needs some work, and doesn't fully support all options.
Are the options that CMake does not support yet listed somewhere?
I'm not sure if anyone has done a thorough analysis of the old autotools-based system's options. Some months back I generated dists with both systems and compared the file lists. There was still a large discrepancy, including man pages, templates, and a handful of source files.
cxxtest wasn't hooked up in cmake yet, so possibly that still needs looked at. cmake correctly installs all the docs, but some of that stuff is more developer oriented (e.g. doc/NewAppArchitecture) so maybe should be split out separately or something. cmake also installed some files that automake currently ignores, that maybe it should be excluding.
There are also a variety of things in share/extensions which automake didn't install, but I wondered if maybe it should.
Anyway, the steps for testing this are basically to do configures with each build system, run 'make dist', tar -t the generated dist to get file listings, and then sort and diff the lists. Ideally the only differences should be cmake-specific build bits on the one side, and automake-specific junk on the other. Whatever remains needs to be thought out.
I think the consensus at present is that supporting two build systems is unsustainable and we intend to do the following:
- Fix CMake builds for the next release, make this the official build
system and deprecate the autotools builds. 2. Remove the autotools builds in the following release
So far so good.
- Potentially move to the Waf build system in the following release
If Waf is considered to be better for us than CMake, why bother with CMake at all and not move directly to Waf?
Actually, we debated this at the hackfest. It's not totally clear to everyone which of these two is technically better, but cmake is definitely more widely known. We decided to go with cmake since it's already 90% working, and only switch to waf if we ran into some unsolvable problem with cmake.
Any feedback on your experience with CMake would be greatly appreciated!
Well, I had a mostly positive experience in building various open-source projects using CMake and with using it for my own open-source projects. With Inkscape, I often had to fix parts of the CMake-based build system myself, and submitted patches for it.
Yeah, same here. I think it's mainly teething pains since a lot of people haven't switched over to using it yet. So like Alex said, plan is to fix up everything we know of, get it released into the wild, and then remove automake and focus on making the cmake build solid.
Then if enough people want to give waf a stronger shot, we can start experiments with that.
Bryce