Seite 1 von 1
Qt mit CMake kompilieren
Verfasst: Di Apr 12, 2011 1:33 pm
von nufan
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.
Re: Qt mit CMake kompilieren
Verfasst: Di Apr 12, 2011 6:09 pm
von Kerli
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()
Re: Qt mit CMake kompilieren
Verfasst: Mi Apr 13, 2011 5:09 am
von Jside
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})
Re: Qt mit CMake kompilieren
Verfasst: Mi Apr 13, 2011 9:11 am
von Xin
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 ^^
Re: Qt mit CMake kompilieren
Verfasst: Do Apr 14, 2011 9:42 pm
von Kerli
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

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^^