CMake oder Scons?



  • Hallo,

    für ein Hobby-Projekt, suche ich ein Platform-übergreifendes Build System.
    Bis jetzt wird nur auf Windows, mit VC++ Projektdateien compiliert.
    Der Code ist aber im Prinzip schon platformunabhängig.
    Deshalb würde ich gerne auch mal einen Linux-Build aufsetzen.
    Als Buildsysteme haben mir die Beschreibungen von CMake und Scons ganz gut gefallen.
    Bin aber erst am Anfang des Vergleichens.
    Gibt es hier in der Community Meinungen dazu?
    Haben die ein oder anderen eins der Systeme ausprobiert oder im Einsatz?
    Ideal wäre es natürlich mit jemandem zu reden der beide Systeme kennt.

    Bei Scons gefällt mir die Tatsache dass die Buildscripts Python sind, denn gute Python Kenntnisse sind vorhanden.



  • Ich hab zumindest noch nie von Scons gehört. So wirklich verbreitet kanns also wohl nicht sein, außer das ist in den letzten 2-3 Jahren massiv bekannter geworden. Ganz neu ist es anscheinend auch nicht, also wirds wohl keine so tollen Vorteile gegenüber cmake bieten. Dann würde ich eher zu cmake tendieren, das kennen zumindest die meisten und es bringt dir eher was, wenn du dich damit auskennst.



  • Naja, SCons ist bei gängigen Buildtool-Vergleichen eigentlich immer mit dabei.

    Eine kleine Recherche meinerseits hat aber ergeben dass Scons Im direkten Vergleich zu CMake allerdings wohl schlechter bewertet wird. Z.B. soll KDE explizit von SCons auf CMake umgestiegen sein, weil es Probleme mit Performance und Support gab (http://lwn.net/Articles/188693/). hier noch ein bercith von einem Umsteiger: http://undefinedvalue.com/2008/02/19/good-bye-scons-hello-cmake

    Also werd ich wohl zuerst mal CMake anschauen.
    Was mich dort aber am meisten ärgert ist das nochmal eine neue Syntax gelernt werden muss.
    Wie es der Autor des zweiten Blogs treffend ausdrückt:
    "Please, people, stop inventing your own application-specific scripting languages! Especially if you are going to invent one that sucks."



  • Wenn du Python nicht kennst, dann CMake. Falls du dich in Python auskennst, sind Scons-Configurationsdateien viel angehmer zu schreiben als CMakeLists.txt, vor allem wenn es etwas komplizierter wird.

    Andererseits ist CMake bekannter und die Builds sind um einiges schneller. SCons ist langsam, vielleicht schneller als der Ruf, aber selbst das SCons-Wiki behauptet nicht, dass SCons sonderlich schnell wäre. Für CMake hingegen existieren Tools, um den Build-Prozess noch stark zu beschläunigen (z.B. ninja).

    Für Ein-Mann-Projekte spricht mMn nichts gegen SCons.



  • scrontch schrieb:

    Naja, SCons ist bei gängigen Buildtool-Vergleichen eigentlich immer mit dabei.

    Hab ich nie gelesen. Aber ziemlich viel mit Linux gearbeitet, privat und beruflich, und es ist mir in der Praxis kein einziges mal untergekommen. Kann natürlich sein, dass ich nicht immer drauf geachtet wurde, was verwendet wird, wenn build scripte dabei waren. Nur bewußt wahrgenommen hab ich den Namen noch nie.


Anmelden zum Antworten