Da hat jemand CMake nicht so ganz verstandenBebu hat geschrieben:Ich bin dafür, dass der BIN und der SOURCE Baum streng voneinander getrennt sind. Dadurch ist die Übersicht besser und man kann ganz einfach neu bauen, indem man BIN löscht.
Also alles, von der Executable bis zu den Makefiles getrennt von der Source

Das kannst du ganz unabhängig davon machen, wie das Build System aufgebaut ist. Mach irgendwo einen Ordner: dedupe_build
Code: Alles auswählen
mkdir /irgendwo/dedupe_build
cd /irgendwo/dedupe_build
cmake /wo/der/source/liegt/dedupe
make
Die Frage ist: WO in /irgendwo/dedupe_build wollt ihr die Executables haben? in /irgendwo/dedupe_build/bin? oder in /irgendwo/dedupe_build?
Das soll heißen, alle Dateien die zurzeit in $PROJECT_ROOT liegen, kommen nach $PROJECT_ROOT/src?Xin hat geschrieben:Mein Vorschlag wäre dem zu entsprechen: src, obj, bin.
$PROJECT_ROOT/bin wäre in Ordnung, allerdings bin ich gegen $PROJECT_ROOT/obj, aus dem einfachen Grund dass jeder selbst entscheiden kann wo er sein Projekt bauen will. CMake erlaubt out-of-source builds, und diese sind auch zu bevorzugen. Ich mach immer das:
Code: Alles auswählen
mkdir $PROJECT_ROOT/build
cd $PROJECT_ROOT/build
cmake ..
make
Ich glaube das ist für den Fall, dass man Bibliotheken programmiert. Da kommen dann die Header in den include/ Ordner, allerdings nur diejenigen, die "exportiert", also von Benutzern der Bibliothek gebraucht werden. Interne Header bleiben in src/. (So will es der Brauch, glaube ichXin hat geschrieben:Theoretisch kann man noch Header und Src trennen, dafür konnte ich mich bisher allerdings nicht begeistern.
