Comment 2 for bug 1343281

Revision history for this message
Hans Joachim Desserud (hjd) wrote : Re: Get rid of compile.sh or move it to Ninja

I agree with Jens, this bug sounds like two things:
1. Compile.sh has problems and can be replaced with simpler commands so a user only really have to run "cmake .. && make" and "bzr pull && make". That sounds like a reasonable goal, and something which should be pursued.
2. Switch to ninja. I'm not really opposed to this. (From what I can see it has been built as a drop-in replacement for make, so I don't see any obvious reasons why WL wouldn't work with either similar to how it is buildable with GCC or Clang/LLVM at the present.)

I wasn't really around at the time it was introduced (I think...) but compile.sh always struck me as a way to hide part of the complexity, for instance arguments sent to cmake. My ideal version would be just a few simple straight-forward commands for people to invoke with as few arguments as possible. So I'm not too happy that using cmake would add a new argument for people to deal with. (I don't have full overview over how widespread packaging of ninja is either, see below). This _might_ (and I haven't decided myself) may make a case for keeping make as the default, though document steps for ninja as an alternative.

Then there's also the coice between release and debug build which needs to be specified when calling cmake (unless we set release as the default, though allow people to override it).

Another thing is that compile.sh asks whether translations should be built which happens when invoking `make lang`. So presumable for anyone who wish to play in a different language would need to run that command in addition to the initial "cmake && make".

So we end up with three options or diverging paths; makesystem, build type and with/without translations. I haven't checked but would `make all` include translations as well, or would we need to tweak something to get translations by default.

A quick comment regarding the PPA builds; they are built from scratch each time so won't really gain any benefit from faster upgrades, though presumably the general speed-ups. Furthermore, ninja won't be available on 12.04 (https://launchpad.net/ubuntu/+source/ninja-build. I don't know whether it is/how recently it was packaged on other systems.