cmake: Fehlgeschlagenen build erkennen?
-
Ich rufe cmake innerhalb einer *.sh-Datei so auf:
cmake -DCMAKE_BUILD_TYPE=Debug
Was mir fehlt ist sowas wie ein Rückgabewert oder ein Flag, das von cmake gesetzt wird, falls der Build fehlschlägt (Syntaxerror, Bibliotheken fehlen whatever). So dass ich dann in der *.sh darauf reagieren kann, z.B. so:
if(cmakeResult == FAIL) exit 1 else exit 0
-
Also ich ruf cmake regelmaessig auf mit
cmake %SOURCEDIR% -G "Visual Studio 2010" -D(NE Ganze Menge CMake flags ...)
und wenn was ned funzt, gibt er ungleich 0 zurueck (ERRORLEVEL wird gesetzt).
bauen geht dann auch mitcmake ./ --build --Target Release
cmake ./ --build --Target Debugunter windows funzt es scheinbar einwandfrei ... keine ahnung warum bei dir auf *nix ned ... Glaub kaum das sie die WIndows befehlzeile besser unterstützen als die *nix Shell ^^
ciao ...
-
Was genau fehlt dir denn? Der Exitstatus selbst kanns jedenfalls nicht sein und Cmake benutzt ihn auch sinnvoll. Fehlt dir das Wissen, wie du ihn in einem Shellskript überprüfst?
Nun, du könntest deinem Shellskript ein 'set -e' verpassen. Dies führt dazu, dass es beim ersten fehlschlagenden Command abbricht. Für eine Buildumgebung ist das meist das gewünschte.
Ansonsten:
cmake blah && echo success cmake blah || echo fail if cmake blah; then echo success fi if ! cmake blah; then echo fail fi cmake blah if [ $? -eq 0 ]; then echo success fi cmake blah /bin/true # $? ist der Exitcode von /bin/true, nicht von cmake
Alles natürlich für Bourne-kompatible Shells.