Qt mit CMake kompilieren

Qt Programmierung, QML, Qt-Plattformen
Antworten
nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Qt mit CMake kompilieren

Beitrag von nufan » Di Apr 12, 2011 1:33 pm

Tag :)
Hat jemand von euch schon mal Qt-Programme mit CMake kompiliert? Kann mir vielleicht jemand ein kurzes Beispiel geben auf das ich aufbauen könnte? Hier gehts ums Qt-GUI für Dedupe.

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: Qt mit CMake kompilieren

Beitrag von Kerli » Di Apr 12, 2011 6:09 pm

Kompiliert schon, aber nicht selber erstellt. Dort hat das in etwa so ausgeschaut:

Code: Alles auswählen

find_package(Qt4 COMPONENTS QtCore QtGui QtOpenGL QtScript REQUIRED)
include(${QT_USE_FILE})

if(QT4_FOUND)
  set(FOO_MOC_IN_FILES foo.hpp bla.hpp)
  qt4_wrap_cpp(FOO_MOC_OUTFILES ${FOO_MOC_IN_FILES})

  add_library (foo SHARED ${FOO_SOURCE_FILES} ${FOO_MOC_OUTFILES})
endif()
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Benutzeravatar
Jside
Beiträge: 377
Registriert: Di Nov 11, 2008 12:56 am

Re: Qt mit CMake kompilieren

Beitrag von Jside » Mi Apr 13, 2011 5:09 am

Bei Kerli's Beispiel muss ich noch sagen, das sich das wiederspricht, da ist ein:
find_package(Qt4 COMPONENTS QtCore QtGui QtOpenGL QtScript REQUIRED)
und ein
if(QT4_FOUND)
Wegen dem REQUIRED wuerde CMake aber garnicht ueber die Konfiguration hinaus kommen, wenn Qt nicht installiert waehre. D.h. ist entweder das REQUIRED or die if clause zu viel/unnoetig^^

Ich hab auchnoch ein Beispiel aus einem Projekt von mir(mit globbing; davon ausgehend das alle Header in ../../include/foo/ eine Klasse mit einem Q_OBJECT Makro haben):

Code: Alles auswählen

# In der Haupt CMakeLists.txt (Top-Level)
FIND_PACKAGE(Qt4 REQUIRED)

# In der CMakeLists.txt fuers GUI/QT
INCLUDE(${QT_USE_FILE})

FILE(GLOB C_FILES   "*.cpp")
FILE(GLOB H_FILES "../../include/foo/*.h")

# [..]

QT4_WRAP_CPP(HEADER_MOC ${H_FILES})

# [..]

ADD_LIBRARY(foo SHARED ${C_FILES} ${HEADER_MOC})
TARGET_LINK_LIBRARIES(foo ${QT_LIBRARIES})

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

Re: Qt mit CMake kompilieren

Beitrag von Xin » Mi Apr 13, 2011 9:11 am

Ich habe gerade mal ins CMake-Tutorial geschaut.

Könnte man die Informationen aus diesem Thread übertragen? Bisher ist der Thread nämlich informativer als das Tutorial ^^
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
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: Qt mit CMake kompilieren

Beitrag von Kerli » Do Apr 14, 2011 9:42 pm

Jside hat geschrieben:Bei Kerli's Beispiel muss ich noch sagen, das sich das wiederspricht, da ist ein:
Es widerspricht sich nicht. Es ist nur redundant :P Der Code ist wie gesagt nicht von mir. Ich habe ihn nur zusammen gekürzt...
Xin hat geschrieben:Ich habe gerade mal ins CMake-Tutorial geschaut.

Könnte man die Informationen aus diesem Thread übertragen? Bisher ist der Thread nämlich informativer als das Tutorial ^^
Jetzt steht dort etwas mehr. Ich hab bis jetzt aber wirklich noch nicht viel mehr gemacht, als das was hier war zu übertragen^^
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Antworten