From 34d54dc76ccfe2def67523daf7daf00ebfcfe845 Mon Sep 17 00:00:00 2001 From: Alexander Neundorf Date: Thu, 27 Apr 2006 19:00:13 +0000 Subject: -use qmake to tell us which uic and moc we should use -apply patches from Clinton Stimpson and Kenneth Moreland, fixing some QtMain issues on windows Alex svn path=/trunk/KDE/kdelibs/; revision=534767 --- modules/FindQt4.cmake | 49 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 16 deletions(-) (limited to 'modules') diff --git a/modules/FindQt4.cmake b/modules/FindQt4.cmake index 70f6911a..25e99068 100644 --- a/modules/FindQt4.cmake +++ b/modules/FindQt4.cmake @@ -13,6 +13,7 @@ # QT_USE_QTASSISTANT # QT_USE_QTDESIGNER # QT_USE_QTMOTIF +# QT_USE_QTMAIN # QT_USE_QTNETWORK # QT_USE_QTNSPLUGIN # QT_USE_QTOPENGL @@ -125,11 +126,15 @@ # QT_QTSVG_LIBRARY_RELEASE # QT_QTSVG_LIBRARY_DEBUG # -#The QtTest library: QT_QTTEST_LIBRARY +# The QtTest library: QT_QTTEST_LIBRARY # QT_QTTEST_LIBRARY_RELEASE # QT_QTTEST_LIBRARY_DEBUG # -#The QtUiTools library: QT_QTUITOOLS_LIBRARY +# The qtmain library for Windows QT_QTMAIN_LIBRARY +# QT_QTMAIN_LIBRARY_RELEASE +# QT_QTMAIN_LIBRARY_DEBUG +# +#The QtUiTools library: QT_QTUITOOLS_LIBRARY # QT_QTUITOOLS_LIBRARY_RELEASE # QT_QTUITOOLS_LIBRARY_DEBUG # @@ -154,7 +159,6 @@ # These variables are set to "" Because Qt structure changed # (They make no sense in Qt4) # QT_QT_LIBRARY Qt-Library is now split -# QT_QTMAIN_LIBRARY Qt-Library is now split INCLUDE(CheckSymbolExists) @@ -543,7 +547,7 @@ IF (QT4_QMAKE_FOUND) FIND_LIBRARY(QT_QTSVG_LIBRARY_RELEASE NAMES QtSvg QtSvg4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) FIND_LIBRARY(QT_QTSVG_LIBRARY_DEBUG NAMES QtSvg_debug QtSvgd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) - # Set QT_QTSVG_LIBRARY + # Set QT_QTUITOOLS_LIBRARY FIND_LIBRARY(QT_QTUITOOLS_LIBRARY_RELEASE NAMES QtUiTools QtUiTools4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) FIND_LIBRARY(QT_QTUITOOLS_LIBRARY_DEBUG NAMES QtUiTools_debug QtUiToolsd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) @@ -562,7 +566,7 @@ IF (QT4_QMAKE_FOUND) # Set QT_QTDESIGNER_LIBRARY FIND_LIBRARY(QT_QTDESIGNER_LIBRARY_RELEASE NAMES QtDesigner QtDesigner4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) FIND_LIBRARY(QT_QTDESIGNER_LIBRARY_DEBUG NAMES QtDesigner_debug QtDesignerd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) - + ############################################ # # Check the existence of the libraries. @@ -605,6 +609,11 @@ IF (QT4_QMAKE_FOUND) MARK_AS_ADVANCED(QT_${basename}_LIBRARY QT_${basename}_LIBRARY_RELEASE QT_${basename}_LIBRARY_DEBUG QT_${basename}_INCLUDE_DIR) ENDMACRO (_QT4_ADJUST_LIB_VARS) + IF(WIN32) + _QT4_ADJUST_LIB_VARS(QTMAIN) + ENDIF(WIN32) + + _QT4_ADJUST_LIB_VARS(QTCORE) _QT4_ADJUST_LIB_VARS(QTGUI) _QT4_ADJUST_LIB_VARS(QT3SUPPORT) @@ -630,17 +639,25 @@ IF (QT4_QMAKE_FOUND) ####################################### - FIND_PROGRAM(QT_MOC_EXECUTABLE - NAMES moc moc-qt4 - PATHS ${QT_BINARY_DIR} - NO_DEFAULT_PATH - ) + # find moc and uic using qmake + FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/CMakeTmpQmake/tmp.pro + "message("MOC <$$QMAKE_MOC>") + message("UIC <$$QMAKE_UIC>") + ") + + EXECUTE_PROCESS(COMMAND ${QT_QMAKE_EXECUTABLE} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/CMakeTmpQmake + OUTPUT_VARIABLE _moc_OUTPUT + ERROR_VARIABLE _moc_OUTPUT ) + + FILE(REMOVE_RECURSE "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/CMakeTmpQmake") + + STRING(REGEX REPLACE ".*MOC<([^>]+).*" "\\1" QT_MOC_EXECUTABLE "${_moc_OUTPUT}" ) + STRING(REGEX REPLACE ".*UIC<([^>]+).*" "\\1" QT_UIC_EXECUTABLE "${_moc_OUTPUT}" ) + + SET(QT_MOC_EXECUTABLE ${QT_MOC_EXECUTABLE} CACHE FILEPATH "The moc executable") + SET(QT_UIC_EXECUTABLE ${QT_UIC_EXECUTABLE} CACHE FILEPATH "The uic executable") - FIND_PROGRAM(QT_UIC_EXECUTABLE - NAMES uic uic-qt4 - PATHS ${QT_BINARY_DIR} - NO_DEFAULT_PATH - ) FIND_PROGRAM(QT_UIC3_EXECUTABLE NAMES uic3 @@ -858,7 +875,6 @@ IF (QT4_QMAKE_FOUND) SET (QT_UIC_EXE ${QT_UIC_EXECUTABLE} ) SET( QT_QT_LIBRARY "") - SET( QT_QTMAIN_LIBRARY "") ELSE(QT4_QMAKE_FOUND) @@ -875,3 +891,4 @@ ELSE(QT4_QMAKE_FOUND) ENDIF(Qt4_FIND_REQUIRED) ENDIF (QT4_QMAKE_FOUND) + -- cgit v1.2.1