cmake moc dateien erzeugen

Alles rund um die Programmierung mit Qt
Antworten
Nash
Beiträge: 118
Registriert: 27. April 2007 14:49

cmake moc dateien erzeugen

Beitrag von Nash »

Hi,

ich suche nach einer cmake funktion mit der man für header Dateien die das Q_OBJECT Macro beinhalten eine MOC datei erzeugt.

Ich hatte mir sowas überlegt wie, ich gebe einer Funktion all meine Header die das Q_OBJECT Macro eventuell beinhalten
und CMake erstellt dann die moc dateien für mich.

Gibt es da schon was?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

http://cmake.org/cmake/help/cmake-2-8-docs.html
QT4_AUTOMOC
QT4_WRAP_CPP
Und die Doku dazu lesen!
Nash
Beiträge: 118
Registriert: 27. April 2007 14:49

Beitrag von Nash »

ok erstmal danke für die Stichwörter.

Also das QT4_AUTOMOC scheint mir keine option zu sein.
Da man extra noch ein #include "foo.moc" einfügen muss.
Richtig funktioniert hat es auch nicht.

Das macro QT4_WRAP_CPP funktioniert recht gut.

Nur übergebe ich dem macro alle header dateien die ich habe, auch welche die nicht das Q_OBJECT macro haben. Wie könnte ich diese vorher noch rausfiltern?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Nash hat geschrieben:Nur übergebe ich dem macro alle header dateien die ich habe, auch welche die nicht das Q_OBJECT macro haben. Wie könnte ich diese vorher noch rausfiltern?
Warum denn das?!? Machst du das mit nem GLOB?
Trag doch nur die header ein, die ein Q_OBJECT haben.
Ansonsten passiert auch nix böses, du bekommst vom moc ne Meldung "keine relevanten Klassen gefunden".

Zu dem QT4_AUTOMOC: Wie verwendest du das denn? Eigentlich braucht es da keine Optionen.
Nash
Beiträge: 118
Registriert: 27. April 2007 14:49

Beitrag von Nash »

Bei QT4_AUTOMOC habe ich einfach die src dateien übergeben, mit dem relativen pfad und die dateien hatten halt dieses include #include "MySrcFile.moc"

er hat dann zwar ne regel erstellt, aber er hat keine moc datei generiert und ins projekt eingefügt.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Machst du ein out-of-source-build? Da werden die generierten Dateien nicht im Source-dir abgelegt, sondern im builddir..
Hast du dafür ein

Code: Alles auswählen

include_directories(${CMAKE_CURRENT_BINARY_DIR})
im CMakeLists.txt stehen?
Wenn die Src-files in einem anderen Verzeichnis liegen als das CMakeLists.txt, musst du schauen, wo die mocs abgelegt werden, und im sourcefile das include anpassen. Einfach mit den Pfaden spielen ;)

Aber du hast ja gelesen, dass QT4_AUTOMOC experimentell ist.
Nash
Beiträge: 118
Registriert: 27. April 2007 14:49

Beitrag von Nash »

also was ich nicht so optimal an CMake finde, ist die Doku.

z.B. suche ich Informationen zu regulären ausdrücken nach welchen regeln man die erstellt und schöne Beispiele die einem das Konzept dahinter verdeutlichen.
Hab aber nix gefunden.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Warum sollte Dir CMake die Verwendung von Regulären Ausdrücken beibringen wollen??
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Nash
Beiträge: 118
Registriert: 27. April 2007 14:49

Beitrag von Nash »

Weil Sie diese Option anbieten?

Ich hab doch keine Ahnung nach was für einer Syntax das funktioniert.
MichaelS
Beiträge: 240
Registriert: 27. Dezember 2005 12:49

Beitrag von MichaelS »

Zu regulären Ausdrücken gibt es Dokumentationen im Überfluss.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Gut das Dir die Qt-Doku nicht C++ Grundlagen beibringen muss...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten