Seite 5 von 7

Re: Build-System

Verfasst: Do Jul 21, 2011 7:27 pm
von fat-lobyte
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.

Re: Build-System

Verfasst: Do Jul 21, 2011 7:43 pm
von Bebu
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.

Re: Build-System

Verfasst: Do Jul 21, 2011 7:49 pm
von fat-lobyte
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?

Re: Build-System

Verfasst: Do Jul 21, 2011 8:33 pm
von Bebu
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.

Re: Build-System

Verfasst: Do Jul 21, 2011 9:24 pm
von Bebu
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...

Re: Build-System

Verfasst: Sa Jul 23, 2011 1:14 pm
von fat-lobyte
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 :-)

Änderungen am Build-System

Verfasst: So Jul 24, 2011 4:05 pm
von fat-lobyte
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 :-)

Re: Build-System

Verfasst: Di Jul 26, 2011 11:18 am
von Xin
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 ^^

Re: Build-System

Verfasst: Di Jul 26, 2011 11:33 am
von fat-lobyte
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.

Re: Build-System

Verfasst: Di Jul 26, 2011 11:57 am
von Xin
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.