diff options
author | Alexander Neundorf <neundorf@kde.org> | 2006-04-04 20:46:27 +0000 |
---|---|---|
committer | Alexander Neundorf <neundorf@kde.org> | 2006-04-04 20:46:27 +0000 |
commit | 79a8b2a2abd4b2957b3b7ad72368f967d660fd71 (patch) | |
tree | ad8dd81cb8d9dd25925d6b3fdb6f8f37fac3c598 | |
parent | d7562bace6216eadb0d1549cde3453ac4c3b796a (diff) | |
download | extra-cmake-modules-79a8b2a2abd4b2957b3b7ad72368f967d660fd71.tar.gz extra-cmake-modules-79a8b2a2abd4b2957b3b7ad72368f967d660fd71.tar.bz2 |
-fix detection of Qt4 qmake
Alex
svn path=/trunk/KDE/kdelibs/; revision=526524
-rw-r--r-- | modules/FindQt4.cmake | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/modules/FindQt4.cmake b/modules/FindQt4.cmake index d137c1d8..b4622f9f 100644 --- a/modules/FindQt4.cmake +++ b/modules/FindQt4.cmake @@ -168,47 +168,52 @@ FIND_PROGRAM(QT_QMAKE_EXECUTABLE NAMES qmake qmake-qt4 PATHS ) IF (QT_QMAKE_EXECUTABLE) + + SET(QT4_QMAKE_FOUND FALSE) + EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_VERSION" OUTPUT_VARIABLE QTVERSION) - # we need at least version 4.0.0 - IF (NOT QT_MIN_VERSION) - SET(QT_MIN_VERSION "4.0.0") - ENDIF (NOT QT_MIN_VERSION) + # check that we found the Qt4 qmake, Qt3 qmake output won't match here + STRING(REGEX MATCH "^[0-9]+\\.[0-9]+\\.[0-9]+$" qt_version_tmp "${QTVERSION}") + IF (qt_version_tmp) - SET(QT4_QMAKE_FOUND TRUE) - IF (QT_MIN_VERSION) + # we need at least version 4.0.0 + IF (NOT QT_MIN_VERSION) + SET(QT_MIN_VERSION "4.0.0") + ENDIF (NOT QT_MIN_VERSION) + #now parse the parts of the user given version string into variables STRING(REGEX MATCH "^[0-9]+\\.[0-9]+\\.[0-9]+$" req_qt_major_vers "${QT_MIN_VERSION}") IF (NOT req_qt_major_vers) - MESSAGE( FATAL_ERROR "Invalid Qt version string given: \"${QT_MIN_VERSION}\", expected e.g. \"4.0.1\"") + MESSAGE( FATAL_ERROR "Invalid Qt version string given: \"${QT_MIN_VERSION}\", expected e.g. \"4.0.1\"") ENDIF (NOT req_qt_major_vers) - - + # now parse the parts of the user given version string into variables STRING(REGEX REPLACE "([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" req_qt_major_vers "${QT_MIN_VERSION}") STRING(REGEX REPLACE "[0-9]+\\.([0-9])+\\.[0-9]+" "\\1" req_qt_minor_vers "${QT_MIN_VERSION}") STRING(REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" req_qt_patch_vers "${QT_MIN_VERSION}") - + IF (NOT req_qt_major_vers EQUAL 4) - MESSAGE( FATAL_ERROR "Invalid Qt version string given: \"${QT_MIN_VERSION}\", major version 4 is required, e.g. \"4.0.1\"") + MESSAGE( FATAL_ERROR "Invalid Qt version string given: \"${QT_MIN_VERSION}\", major version 4 is required, e.g. \"4.0.1\"") ENDIF (NOT req_qt_major_vers EQUAL 4) - + # and now the version string given by qmake STRING(REGEX REPLACE "([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" found_qt_major_vers "${QTVERSION}") STRING(REGEX REPLACE "[0-9]+\\.([0-9])+\\.[0-9]+" "\\1" found_qt_minor_vers "${QTVERSION}") STRING(REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" found_qt_patch_vers "${QTVERSION}") - + # compute an overall version number which can be compared at once MATH(EXPR req_vers "${req_qt_major_vers}*10000 + ${req_qt_minor_vers}*100 + ${req_qt_patch_vers}") MATH(EXPR found_vers "${found_qt_major_vers}*10000 + ${found_qt_minor_vers}*100 + ${found_qt_patch_vers}") - + IF (found_vers LESS req_vers) - SET(Qt4_QMAKE_FOUND NO) + SET(QT4_QMAKE_FOUND FALSE) ELSE (found_vers LESS req_vers) - SET(Qt4_QMAKE_FOUND YES) + SET(QT4_QMAKE_FOUND TRUE) ENDIF (found_vers LESS req_vers) - ENDIF (QT_MIN_VERSION) + ENDIF (qt_version_tmp) + ENDIF (QT_QMAKE_EXECUTABLE) IF (QT4_QMAKE_FOUND) |