Build system (was Re: Future of KDE Development)

Guillaume Laurent glaurent at telegraph-road.org
Tue Feb 15 19:55:01 GMT 2005


On Tuesday 15 February 2005 00:34, Alexander Dymo wrote:
> On Tuesday 15 February 2005 00:53, Guillaume Laurent wrote:
> > Why would an IDE need to parse it ? It only needs to generate it.
>
> Not really. If you take a look at all builtool support plugins in KDevelop
> you will found that at least two of them (autotools and qmake)
> _do_ 1) parse 2) modify and 3) write changes back to the project files.
> Makefile.am parser and modifier is actually implemented simpler than the
> one for qmake's .pro files ;)

Well, I still fail to understand why on earth would they do that, except for 
initial project import. Once this is done, the IDE has its own build system 
(MSVC, Eclipse or Idea have that), and may possibly export the project to 
whatever build system it knows. But using makefiles to store current project 
data is insane.

> That doesn't solve the problem of writing changes back to the project file.
> If you changed a list of files in a target withing the IDE, you should
> write it back. Here the troubles with build file syntax, user formatting,
> etc. arise.

So you just recreate the whole thing and move the old files to Makefile.am.bk 
or something.

> autotools approach. But that doesn't solve the problem with IDE
> which won't know about your extensions.

So ? The IDE has to be able to perform the same tasks as your extensions 
anyway, so it can export back something close enough. Although what is often 
possible is to specify some pre/post build tasks which are targets of the old 
build file, but then it's relatively easy enough to move these to a separate 
file or to isolate them somehow.

> > It's called ant or maven and while it's easy to parse, believe me it is
> > NOT easy to modify.
>
> Not easy by hand ;) but _very_ easy by an IDE.

Of course, but generally you still want to change them by hand at some point.

> Btw those tools are java-only afaik.

They're not, though they require java to run, and are mostly tailored for Java 
projects.

-- 
      Guillaume.
      http://www.telegraph-road.org




More information about the kde-core-devel mailing list