diff options
| author | Alexander Neundorf <neundorf@kde.org> | 2006-04-27 19:00:13 +0000 | 
|---|---|---|
| committer | Alexander Neundorf <neundorf@kde.org> | 2006-04-27 19:00:13 +0000 | 
| commit | 34d54dc76ccfe2def67523daf7daf00ebfcfe845 (patch) | |
| tree | 5da6637720261474022b92212446aaa0265f38e2 | |
| parent | 948bdbe90bbf0267f5df916f655d7bdf55326057 (diff) | |
| download | extra-cmake-modules-34d54dc76ccfe2def67523daf7daf00ebfcfe845.tar.gz extra-cmake-modules-34d54dc76ccfe2def67523daf7daf00ebfcfe845.tar.bz2  | |
-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
| -rw-r--r-- | modules/FindQt4.cmake | 49 | 
1 files changed, 33 insertions, 16 deletions
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) +  | 
