Re: ein neues buildsystem --> autotools endlich abloesen
* Daniel Leidert <daniel.leidert.spam@gmx.net> schrieb:
<snip>
> > Tja, es gibt aber durchaus Build-Systeme abseits der autotools. KDE wird
> > wohl fuers naechste Major auf CMake umsteigen (scons/bksys hat nicht
> > genug Unterstuetzung).
> >
> > Ansonsten sollte man vllt. mal ueberlegen: Wenn schon XML-Beschreibungen
> > wieso nicht ant nutzen? Oder maven?...
>
> Igitt (IMHO). Hast du schon einmal die build.xml eines größeren
> Projektes gesehen? Weißt du, wie viele Verrenkungen man für eine
> einfache 'for i in ...'-Schleife machen muss, damit ant das hinkriegt?
for-Schleife ? Wozu das ?
<snip>
> Die autotools sind kryptisch, aber ant-build-Dateien sind einfach nur
> schlecht, unübersichtlich und aufgrund XML mit einem sehr großen
> Schreibaufwand verbunden (und da waren noch mehr Gründe, warum ich sie
> nicht mag ;))
Man kann ja auch für bestimmte kleinere Aufgaben eine schmalere
Notation wählen, aus der dann der Baum abgeleitet wird. So dürfte
zB. für eine einfach C-Library in eine "flache" Text-DB ausreichen:
library: foo
version: 1.0
source: a.c b.c c.d
public-header: foo.h
private-header: internal.h
import: zlib pcre
Damit hatte ich auch erst angefangen, aber für eine generelle
Modellierung wäre das viel zu kurz gegriffen (man denke da nur
an conditionals/features, etc) - als komprimierte Notation für
bestimmte Fall-Klassen sicherlich sinnvoll.
<snip>
> Einfaches Beispiel aus dem Anhang des OP
>
> [..]
> <source name="Attrib.c" />
> <source name="CrBufFrI.c" />
> <source name="CrBufFrP.c" />
> <source name="CrDatFrI.c" />
> <source name="CrDatFrP.c" />
> <source name="CrIFrBuf.c" />
> [..]
>
> Jedes Element wird einzeln beschrieben. Gegenüber
Das ist auch nicht ganz ohne Absicht so. Es können noch durchaus
Situationen kommen, wo die source-nodes weitere Parameter brauchen.
(zB. Sprache, Compiler-Hints, Precompiler, etc)
>
> SOURCES = Attrib.c ....
Siehe oben.
<snip>
> wirkt das viel zu umständlich. Einfacher wäre evtl. ein Element
> <sources> dass so aussehen kann:
>
> <sources separator=",">Attrib.c, CrBufFrI.c, ...</sources>
> <sources separator=" ">Attrib.c CrBufFrI.c ...</sources>
Okay, sowas könnte man durchaus in den Parser setzen, damit dieser
dann automatisch aus der Liste die einzelnen source-nodes erstellt.
> Aber da XML eben jedes Element beschreibt, kommt viel mehr
> Schreibaufwand als in der Makro-Sprache, die für die autotools
> benutzt wird, heraus (IMHO).
Also an dem bissl. Schreibaufwand sollte eine saubere Modellierung
nicht scheitern - im Vergleich zum Programmcode ist das doch
ohnehin schon verschwindend ...
cu
--
---------------------------------------------------------------------
Enrico Weigelt == metux IT service
phone: +49 36207 519931 www: http://www.metux.de/
fax: +49 36207 519932 email: contact@metux.de
cellphone: +49 174 7066481
---------------------------------------------------------------------
-- DSL ab 0 Euro. -- statische IP -- UUCP -- Hosting -- Webshops --
---------------------------------------------------------------------
Reply to: