aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2006-04-04 20:46:27 +0000
committerAlexander Neundorf <neundorf@kde.org>2006-04-04 20:46:27 +0000
commit79a8b2a2abd4b2957b3b7ad72368f967d660fd71 (patch)
treead8dd81cb8d9dd25925d6b3fdb6f8f37fac3c598
parentd7562bace6216eadb0d1549cde3453ac4c3b796a (diff)
downloadextra-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.cmake39
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)