Build system (was Re: Future of KDE Development)

Harri Porten porten at froglogic.com
Sat Feb 19 12:46:51 GMT 2005


On Sat, 19 Feb 2005, Guillaume Laurent wrote:

> So did I :-). Now if scons was written in something like Perl, I wouldn't even
> consider it. But as far as scripting languages go, Python, with its
> space-indented no-fun one-way-to-do-it syntax is the most likely to remain
> easily maintainable.

The issue is not so much about the maintainibility of the code written
with the language. It's about the danger of having too much intelligence
in each single "Makefile" with a lot of cross-dependencies.

But I'm split on this issue. We have written our own build system (very
much like Scons) and it allows all those flexible things everywhere. There
are basically no limits to what you can accomplish. Two examples that show
powerfull features that could have bad side effects if not used carefully:

  // QMessageBox::question is new in Qt 3.2. Use compatible function.
  if ( config.QT_VERSION_STR < "3.2.0" )
      guiDefs.push( "question=information" );

  // CC is having problems compiling this file in release mode
  if ( suncc ) {
      var t = findTarget( "foo.o" );
      t.flags.push( "-g" );
  }

Everything has been going smooth so far but I slightly fear the day when
more people than me will be hacking in the system. The more flexible the
system the more discipline has to be enforced.

Harri.






More information about the kde-core-devel mailing list