Build-System

Proggen.org - Lernprojekt: Duplikatefinder
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:27 pm

Bebu hat geschrieben:läuft die Expressversion von MSVS 2010 unter XP? Dann könnte ich es mal mit einer virtuellen Maschine versuchen.
Sorry, jetzt hab ich meinen oberen Beitrag bearbeitet. Kompilieren läuft Glatt. Naja fast, es gibt selbst auf Warnlevel 1 noch 1 mio Warnungen. Hier die Ausgabedatei
out203.txt
Sorry für die Verwirrung.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
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:43 pm

Ich kann das jetzt nicht alles durchlesen, aber dreiviertel der Meldungen kommen irgenwie aus der Standardlibrary oder aus Boost. Die Warnungen alle zu fixen wird schwierig, wenn es nicht nur im eigenen Code begraben liegt. Außer die Ursache sind einige wenige Fehler im Code.
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 » Do Jul 21, 2011 7:49 pm

Bebu hat geschrieben:Ich kann das jetzt nicht alles durchlesen, aber dreiviertel der Meldungen kommen irgenwie aus der Standardlibrary oder aus Boost. Die Warnungen alle zu fixen wird schwierig,
Ist mir bewusst. Ich habe die Datei auch nur "für Informationszwecke" angehängt. Übrigens, von 33 Fehlern auf 0 Fehler in 2 Tagen ist ne saubere Leistung. Alle Achtung :-)

Das mit den Warnungen ist so ne Geschichte. Ich würde sagen, lassen wirs fürs erste Ruhen. Aber da sollte ne Grundsatzdiskussion geführt werden, wie mit Warnungen umzugehen ist, und als Ergebniß sollte am besten eine Art "Richtline" als Dokument herausschauen.
Herr Projektleiter? Wie ist ihre Meinung?
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 8:33 pm

fat-lobyte hat geschrieben: Ist mir bewusst. Ich habe die Datei auch nur "für Informationszwecke" angehängt. Übrigens, von 33 Fehlern auf 0 Fehler in 2 Tagen ist ne saubere Leistung. Alle Achtung :-)
Vielen Dank für die Blumen. Aber ich denke, das die meisten Fehler aus zwei Gründen aufgetreten sind: Non-Void Funktionen ohne return Anweisung, gerade mitten im Entwickeln bin ich da nicht so genau. Der zweite dürften die fehlerhaften Namespaces gewesen sein, die g++ überraschenderweise ohne jedes mäckeln kompiliert hat, obwohl er hier einen Grund zum meckern gehabt hätte... :shock:
fat-lobyte hat geschrieben: Das mit den Warnungen ist so ne Geschichte. Ich würde sagen, lassen wirs fürs erste Ruhen.
Warten wir mal ab, was der "Bigboss" dazu sagt ;) Ich für meinen Teil habe schon den Ehrgeiz, die Warnungen in den Codeteilen, die ich geschrieben habe zu fixen, zumindest so, das es auf Linux ohne Warnungen kompiliert. Was dann beim MSVC übrig bleibt, muss man sehen.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

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 9:24 pm

So kleines aber feines Update: Die Warnungen sind alle gefixt, bis auf die 12 Stück, die aus der Hashklasse stammen, das ist nicht meine Baustelle ;)

An zwei Stellen hat sich das ganze als übler Hack erwiesen, aber ich glaube, das liegt mit an Fehler in den Klassen, die einfach durch fehlende Tests nicht aufgefallen sind. Darum werde ich mir als nächstes einen Unittest für FileInfo und Filesearch bauen. Es ist ziemlich mies und blöd, auf Klassen aufzubauen, die unzureichend getestet sind und dann nach Fehlern zu suchen, die im Unterbau sitzen, weil man zu faul war ordentliche Test zu schreiben...
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 » Sa Jul 23, 2011 1:14 pm

Yay!!
Dedupe kompiliert mit Clang++!
Grund zum Feiern :-)

Code: Alles auswählen

[alexander@desktop-fedora build]$ cmake -DCMAKE_LIBRARY_PATH=/usr/lib64/ -DCMAKE_BUILD_TYPE=Debug ..
-- The CXX compiler identification is Clang
-- Check for working CXX compiler: /home/alexander/usr/local/bin/clang++
-- Check for working CXX compiler: /home/alexander/usr/local/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Building for architecture: x86_64
-- Warning level is 3
CMake Warning at cmake/SetWarnings.cmake:34 (message):
  SetWarnings.cmake: unknown compiler
Call Stack (most recent call first):
  CMakeLists.txt:28 (include)


-- Boost version: 1.46.0
-- Found the following Boost libraries:
--   filesystem
--   system
-- Found SQLite3: /usr/lib64/libsqlite3.so 
-- Adding -fPIC flag for Linux x86_64 targets
-- Found Curses: /usr/lib64/libcurses.so 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/alexander/dedupe-svn/build

Code: Alles auswählen

[code][alexander@desktop-fedora build]$ make
Scanning dependencies of target dedupe-hash
[  8%] Building CXX object hash/CMakeFiles/dedupe-hash.dir/hash32.cpp.o
[ 16%] Building CXX object hash/CMakeFiles/dedupe-hash.dir/hash64.cpp.o
Linking CXX static library libdedupe-hash.a
[ 16%] Built target dedupe-hash
Scanning dependencies of target dedupe-filesearch
[ 25%] Building CXX object filesearch/CMakeFiles/dedupe-filesearch.dir/searchfiles.cpp.o
[ 33%] Building CXX object filesearch/CMakeFiles/dedupe-filesearch.dir/fileinfo.cpp.o
Linking CXX static library libdedupe-filesearch.a
[ 33%] Built target dedupe-filesearch
Scanning dependencies of target dedupe-dataholding
[ 41%] Building CXX object dataholding/CMakeFiles/dedupe-dataholding.dir/sqlitewrapper.cpp.o
[ 50%] Building CXX object dataholding/CMakeFiles/dedupe-dataholding.dir/dataholding.cpp.o
Linking CXX static library libdedupe-dataholding.a
[ 50%] Built target dedupe-dataholding
Scanning dependencies of target dedupe-kernel
[ 58%] Building CXX object kernel/CMakeFiles/dedupe-kernel.dir/kernel.cpp.o
Linking CXX shared library libdedupe-kernel.so
[ 58%] Built target dedupe-kernel
Scanning dependencies of target dedupe-ncurses
[ 66%] Building CXX object userinterface/gui/ncurses/CMakeFiles/dedupe-ncurses.dir/implementation.cpp.o
In file included from /home/alexander/dedupe-svn/userinterface/gui/ncurses/implementation.cpp:5:
In file included from /home/alexander/dedupe-svn/userinterface/gui/ncurses/implementation.h:8:
/home/alexander/dedupe-svn/userinterface/gui/ncurses/markable.h:56:9: warning: control reaches end of non-void function [-Wreturn-type]
        }
        ^
/home/alexander/dedupe-svn/userinterface/gui/ncurses/implementation.cpp:140:5: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
/home/alexander/dedupe-svn/userinterface/gui/ncurses/implementation.cpp:144:5: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
/home/alexander/dedupe-svn/userinterface/gui/ncurses/implementation.cpp:179:5: warning: control may reach end of non-void function [-Wreturn-type]
    }
    ^
4 warnings generated.
[ 75%] Building CXX object userinterface/gui/ncurses/CMakeFiles/dedupe-ncurses.dir/markable.cpp.o
In file included from /home/alexander/dedupe-svn/userinterface/gui/ncurses/markable.cpp:6:
/home/alexander/dedupe-svn/userinterface/gui/ncurses/markable.h:56:9: warning: control reaches end of non-void function [-Wreturn-type]
        }
        ^
1 warning generated.
[ 83%] Building CXX object userinterface/gui/ncurses/CMakeFiles/dedupe-ncurses.dir/main.cpp.o
In file included from /home/alexander/dedupe-svn/userinterface/gui/ncurses/main.cpp:4:
In file included from /home/alexander/dedupe-svn/userinterface/gui/ncurses/implementation.h:8:
/home/alexander/dedupe-svn/userinterface/gui/ncurses/markable.h:56:9: warning: control reaches end of non-void function [-Wreturn-type]
        }
        ^
1 warning generated.
Linking CXX executable ../../../dedupe-ncurses
[ 83%] Built target dedupe-ncurses
Scanning dependencies of target dedupe
[ 91%] Building CXX object userinterface/cli/CMakeFiles/dedupe.dir/main.cpp.o
[100%] Building CXX object userinterface/cli/CMakeFiles/dedupe.dir/cli.cpp.o
Linking CXX executable ../../dedupe
[100%] Built target dedupe
Sorry, ich freu mich nur, wenn ganz ein Programm einfach mal so mir nichts, dir nichts auf einer neuen Plattform kompiliert.

Edit:
Wow, und linkt sogar mit llvm-ld statt ld aus binutils :-)
Haters gonna hate, potatoes gonna potate.

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

Änderungen am Build-System

Beitrag von fat-lobyte » So Jul 24, 2011 4:05 pm

Hallo!
Ich habe wieder einiges am Build-System verbrochen.

1) (r208):
- Variable WARNING_LEVEL unbenanannt in DEDUPE_WARNING_LEVEL.
Warum? Ich finds hübscher wenn alle unsere Variablen gruppiert sind. (siehe unten).
- C zu Projektsprachen hinzugefügt (von Qt benötigt)

2) (r209): Qt-CMakeLists.txt so verändert, dass es im Projekt veränderbar ist:
- dedupqt -> dedupe-qt
- mit dedupe-kernel gelinkt

3) (r210):
- Neue Optionen eingeführt:
Folgende Variablen können gesetzt werden, je nachdem welche Oberfläche man bauen will:
DEDUPE_BUILD_CLI
DEDUPE_BUILD_NCURSES
DEDUPE_BUILD_QT

Diese Variablen schließen sich gegenseitig NICHT aus, das heißt ihr könnt das bauen was ihr wollt.
- Qt In den Build eingefügt.
Standardmäßig wird Ncures und CLI gebaut, Qt nicht.

Außerdem habe ich gestern beim bauen von CLang das GUI von CMake für mich entdeckt. Hier könnt ihr bequem und gruppiert alle Variablen setzen. Hier ein Screenshot:
Capture-CMake 2.8.4 - -home-alexander-dedupe-svn-build.png

Hübsch, nicht wahr? Einfach anklicksen was ihr braucht, und fertig :-)
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Build-System

Beitrag von Xin » Di Jul 26, 2011 11:18 am

Kann man in einer einfachen Art und Weise Dein Wissen mal übertragen bekommen?

Ein CMake-Tut wäre mir fast schon lieber als ein GIT-Tutorial. GIT löst kein Problem, dass ich habe... CMake schon ^^
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

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 26, 2011 11:33 am

Xin hat geschrieben:Ein CMake-Tut wäre mir fast schon lieber als ein GIT-Tutorial. GIT löst kein Problem, dass ich habe... CMake schon ^^
Das könnte dauern, ich hab in den nächsten 2-3 wochen keine Zeit.
Was ich anbieten kann ist ein kurzes "CMake für User" tutorial, wie man eigentlich baut, wie man CMake seine Wünsche äußert, wie man Compilerflags durchsetzen kann und wie man den Findern beibringt wo die Libs zu finden sind.
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Build-System

Beitrag von Xin » Di Jul 26, 2011 11:57 am

fat-lobyte hat geschrieben:
Xin hat geschrieben:Ein CMake-Tut wäre mir fast schon lieber als ein GIT-Tutorial. GIT löst kein Problem, dass ich habe... CMake schon ^^
Das könnte dauern, ich hab in den nächsten 2-3 wochen keine Zeit.
Was ich anbieten kann ist ein kurzes "CMake für User" tutorial, wie man eigentlich baut, wie man CMake seine Wünsche äußert, wie man Compilerflags durchsetzen kann und wie man den Findern beibringt wo die Libs zu finden sind.
Wäre mehr, als ich zur Zeit kann. Wäre gut.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten