Build-System

Proggen.org - Lernprojekt: Duplikatefinder
Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Build-System

Beitrag von Bebu » Di Jul 19, 2011 11:26 am

Ich habe eine Request, wegen der Compileroptionen für CMake. Es wäre sehr praktisch, wenn der Wall Flag gesetzt werden kann, damit alle Warnungen ausgegeben werden. Wenn ich auf Code::Blocks entwickle, ohne CMake zu nutzen, bekomme ich bei Debugbuilds standardmäßig mehr Warnungen angegeben, als jetzt zum Beispiel bei Dedupe, wo ich so gut wie nie Warnungen erhalte. Entweder baue ich Dedupe aus Versehen immer als Release, oder der Warnungsflag fehlt.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Build-System

Beitrag von fat-lobyte » Di Jul 19, 2011 11:29 am

Bebu hat geschrieben:Ich habe eine Request, wegen der Compileroptionen für CMake. Es wäre sehr praktisch, wenn der Wall Flag gesetzt werden kann, damit alle Warnungen ausgegeben werden. Wenn ich auf Code::Blocks entwickle, ohne CMake zu nutzen, bekomme ich bei Debugbuilds standardmäßig mehr Warnungen angegeben, als jetzt zum Beispiel bei Dedupe, wo ich so gut wie nie Warnungen erhalte. Entweder baue ich Dedupe aus Versehen immer als Release, oder der Warnungsflag fehlt.
Ist folgendes verhalten erwünscht: Wenn CMAKE_BUILD_TYPE auf Debug gesetzt ist, dann werden die Warn-flags hinzugefügt, sonst nicht?

Bis ichs geändert habe kannst du -DCMAKE_CXX_FLAGS="-Wall -pedantic -ansi" setzen, und mit "make VERBOSE=1" kompilieren.
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Build-System

Beitrag von Bebu » Di Jul 19, 2011 6:03 pm

fat-lobyte hat geschrieben: Ist folgendes verhalten erwünscht: Wenn CMAKE_BUILD_TYPE auf Debug gesetzt ist, dann werden die Warn-flags hinzugefügt, sonst nicht?
Ich würde sagen, Warnungen sollte auch in Release nicht ganz abgeschaltet werden, wenn man auch darüber nachdenken kann, die Warnstufe herunterzusetzen.
fat-lobyte hat geschrieben: Bis ichs geändert habe kannst du -DCMAKE_CXX_FLAGS="-Wall -pedantic -ansi" setzen, und mit "make VERBOSE=1" kompilieren.
Vielen Dank für den anderen Tipp, werde ich testen.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Build-System

Beitrag von fat-lobyte » Di Jul 19, 2011 10:19 pm

1) Sieht so aus als würde Kerli das Warnungen-Thema übernehmen. Ich freue mich, weitere Wünsche bitte bei ihm äußern.
2) Ich habs selber vorher ausprobiert, anscheinend ist VERBOSE=1 nichtmal notwendig (sondern eher störend). Du kannst auch ohne, da die GCC Warnungen auf stderr gehen, und die nicht von CMake gefiltert werden.
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Build-System

Beitrag von Bebu » Mi Jul 20, 2011 6:54 am

Ich habe auch den -pedantic flag weggelassen. Ich weiß auch ohne 7 Warnungen, das long long int nicht in jedem C++ Standard enthalten ist ;) Das ganze lässt sich sogar mit Codeblocks kombinieren. Ich benutze jetzt diese Zeile um das Projekt von Cmake erstellen zu lassen und jetzt werden mir alle Warnungen angezeigt, die ich brauche:

Code: Alles auswählen

cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-Wall  -ansi" -G "CodeBlocks - Unix Makefiles" /Pfad/zum/Sourchcode
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Build-System

Beitrag von fat-lobyte » Mi Jul 20, 2011 8:36 am

Bebu hat geschrieben:Das ganze lässt sich sogar mit Codeblocks kombinieren. Ich benutze jetzt diese Zeile um das Projekt von Cmake erstellen zu lassen und jetzt werden mir alle Warnungen angezeigt, die ich brauche:
Juhu, einer ders verstanden hat :-)

Ich hoffe nur du kannst jetzt mit den Warn-Flags die Code-Qualität etwas anhaben, das Ding hat mit Visual Studio nämlich nicht kompiliert. Das waren allerdings nicht Fälle wie "verdammtes M$VC, was willst du von mir?" sondern eher "Aha. Das macht Sinn. Warum hat mir das GCC nicht schon gesagt?"
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Build-System

Beitrag von Bebu » Mi Jul 20, 2011 11:04 am

Er hätte es schon sagen können^^ Bisher hat ihm nur niemand ausgerichtet, dass er gefälligst den Mund aufmachen soll ;) Da kann man ihm keinen Vorwurf machen. Du kennst doch den alten Programmiererwitz: Chef zum Angestellten Programmierer: "Und hast du das Problem beim Kunden gefunden?" Programmierer: "Ja, es saß genau 30 cm vor dem Bildschirm"
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: Build-System

Beitrag von Kerli » Mi Jul 20, 2011 11:44 am

So, ich hab jetzt einmal ein paar Warnflags hinzugefügt. In der Debugkonfiguration sind es ein paar mehr, vor allem -Weffc++. Falls das zu viel kritisiert bitte sagen :) Für Visual Studio gibt es auch Warnflags. Da ich es zurzeit nicht verwende wäre es super wenn wer berichten könnte wie das funktioniert.
Bebu hat geschrieben:Ich habe auch den -pedantic flag weggelassen. Ich weiß auch ohne 7 Warnungen, das long long int nicht in jedem C++ Standard enthalten ist ;)
Ich hab es aber trotzdem eingebaut :P Die long long Warnung habe ich aber deaktiviert...

Edit:
In Revision 201 gibt es jetzt eine neue Option zum Setzen eines Warnungs Level. Schließlich muss man nicht immer mit -Wextra und -Weffc++ kompilieren ;) Das Warnungs Level ist übrigens unabhängig von Release oder Debug Build, da es ja damit eigentlich nichts zu tun hat.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Build-System

Beitrag von fat-lobyte » Do Jul 21, 2011 7:04 pm

So. Hab gerade die neuesten Änderungen eingecheckt, das Build-System sollte jetzt einigermaßen Stabil sein.
Der SQLite finder sollte auch auf Windows ganz gut funktionieren.
Das Build-System wäre jetzt auch bereit sinnvolle Executables auch auf Windows zu produzieren, ich habe auch schon die ersten Funktionierenden Builds mit MinGW und Visual Studio 2010 erstellt.
Ganz Glatt läufts noch nicht, ein paar Probleme gibts noch zu beseitigen, aber immerhin!
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Build-System

Beitrag von Bebu » Do Jul 21, 2011 7:22 pm

läuft die Expressversion von MSVS 2010 unter XP? Dann könnte ich es mal mit einer virtuellen Maschine versuchen.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Antworten