[gelöst] cmake und KDevelop
Verfasst: 29. August 2006 10:38
Guten Tag erstmal (erster Post )
Wir sind gerade dabei eine Art Schulungssoftware unseres Profs von Windows nach Linux (Qt) zu portieren (hätte ihm bloß niemand erzählt, dass Linux mittlerweile auch nen Desktop hat><) - sei's drum wir müssen es ausbaden^^.
Wir haben uns als Buildsystem für cmake (wenn KDE/Qt es verwendet wird es für uns wohl auch ausreichend sein) entschieden (auch für eine komfortable Arbeit in KDevelop 4 wenn es denn mal läuft)
Der Qt-Port ist fast abgeschlossen aber wir können unter Linux aus folgendem Grund nicht richtig arbeiten:
Unser Programm verwendet Plugins. Wir haben jetzt erst mal ziemlich straight-forward das ganze Projekt zum kompilieren gebracht und es funktioniert tadellos - nur wir können nicht debuggen und das ist fatal.
Gehen wir mal von einer vereinfachten Projektstruktur aus:
root/hauptprogramm/CMakeLists.txt+Quellcode
root/CMakeLists.xt
root/plugin1/CMakeLists.txt+Quellcode
root/plugin2/CMakeLists.txt+Quellcode
Wenn wir jetzt das Programm kompilieren haben wir in root/hauptprogramm die hauptprogramm.exe (oder halt das Linux-Äquvivalent liegen)
in root/plugin1/ liegt nun plugin1.dll (oder .so) wie ihr wollt
in root/plugin2/ liegt plugin2.dll (oder .so unter Linux)
Damit die hauptprogramm.exe aber ihre Plugins laden kann müssen die alle in root/hauptprogramm liegen.
Unter Visual Studio haben wir das einfach über Projectsettings->Output Directory erledigt.
Wir könnten jetzt natürlich die Files einfach kopieren aber wir befürchten, dass dann KDevelop, oder die zugehörigen Quelltexte nicht finden kann etc.
Wir haben es nun über das INSTALL-Kommando geschafft in die richtigen Verzeichnisse zu bringen ABER: Wenn wir jetzt KDevelop auf das Projekt loslassen führt KDevelop nur make aus und nicht make install und startet dann den debug Vorgang - mit dem resultat dass unser hauptprogramm kein Plugin findet und wir neben einem Eintrag in unserem Logfile ("plugin xyz not found") ein leeres Qt Fenster haben.
Wie könnte man das mit der output directory mit cmake bewerkstelligen? Oder konkreter - welches cmake Kommando kommt dem Visual Studio "Output Directory" gleich?
Cu
Wir sind gerade dabei eine Art Schulungssoftware unseres Profs von Windows nach Linux (Qt) zu portieren (hätte ihm bloß niemand erzählt, dass Linux mittlerweile auch nen Desktop hat><) - sei's drum wir müssen es ausbaden^^.
Wir haben uns als Buildsystem für cmake (wenn KDE/Qt es verwendet wird es für uns wohl auch ausreichend sein) entschieden (auch für eine komfortable Arbeit in KDevelop 4 wenn es denn mal läuft)
Der Qt-Port ist fast abgeschlossen aber wir können unter Linux aus folgendem Grund nicht richtig arbeiten:
Unser Programm verwendet Plugins. Wir haben jetzt erst mal ziemlich straight-forward das ganze Projekt zum kompilieren gebracht und es funktioniert tadellos - nur wir können nicht debuggen und das ist fatal.
Gehen wir mal von einer vereinfachten Projektstruktur aus:
root/hauptprogramm/CMakeLists.txt+Quellcode
root/CMakeLists.xt
root/plugin1/CMakeLists.txt+Quellcode
root/plugin2/CMakeLists.txt+Quellcode
Wenn wir jetzt das Programm kompilieren haben wir in root/hauptprogramm die hauptprogramm.exe (oder halt das Linux-Äquvivalent liegen)
in root/plugin1/ liegt nun plugin1.dll (oder .so) wie ihr wollt
in root/plugin2/ liegt plugin2.dll (oder .so unter Linux)
Damit die hauptprogramm.exe aber ihre Plugins laden kann müssen die alle in root/hauptprogramm liegen.
Unter Visual Studio haben wir das einfach über Projectsettings->Output Directory erledigt.
Wir könnten jetzt natürlich die Files einfach kopieren aber wir befürchten, dass dann KDevelop, oder die zugehörigen Quelltexte nicht finden kann etc.
Wir haben es nun über das INSTALL-Kommando geschafft in die richtigen Verzeichnisse zu bringen ABER: Wenn wir jetzt KDevelop auf das Projekt loslassen führt KDevelop nur make aus und nicht make install und startet dann den debug Vorgang - mit dem resultat dass unser hauptprogramm kein Plugin findet und wir neben einem Eintrag in unserem Logfile ("plugin xyz not found") ein leeres Qt Fenster haben.
Wie könnte man das mit der output directory mit cmake bewerkstelligen? Oder konkreter - welches cmake Kommando kommt dem Visual Studio "Output Directory" gleich?
Cu