summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUwe Korn <uwelk@xhochy.com>2014-03-14 16:56:36 +0100
committerDavid Edmundson <kde@davidedmundson.co.uk>2014-03-14 16:56:36 +0100
commit7feb7ee8d2eb1986b5a1314bb064b39a79718c68 (patch)
tree8e2fcc82c73f04ac1cb00a12c68435fd2d381a05
parentdca59397c00d27f3de0da4269fe53d4dda5520cb (diff)
Allow compilation when only qmake-qt4 is in the path
If Qt5 is found via cmake we do not need to find the qmake executable. This fixes builds when only qmake4 is available in the path. Reviewed-by: David Edmundson
-rw-r--r--cmake/modules/FindQt.cmake41
1 files changed, 26 insertions, 15 deletions
diff --git a/cmake/modules/FindQt.cmake b/cmake/modules/FindQt.cmake
index 8cf0f254..5cb2836b 100644
--- a/cmake/modules/FindQt.cmake
+++ b/cmake/modules/FindQt.cmake
@@ -7,22 +7,33 @@
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-IF(NOT QT_QMAKE_EXECUTABLE)
- FIND_PROGRAM(QT_QMAKE_EXECUTABLE_FINDQT NAMES qmake qmake4 qmake-qt4 qmake5 qmake-qt5
- PATHS "${QT_SEARCH_PATH}/bin" "$ENV{QTDIR}/bin")
- SET(QT_QMAKE_EXECUTABLE ${QT_QMAKE_EXECUTABLE_FINDQT} CACHE PATH "Qt qmake program.")
-ENDIF(NOT QT_QMAKE_EXECUTABLE)
+IF(DESIRED_QT_VERSION MATCHES 5)
+ # Qt5 was explicitly requested, so use its CMakeConfig instead of qmake which may not be at a global location
+ find_package(Qt5Core QUIET)
+ IF( Qt5Core_DIR )
+ SET(QT5_INSTALLED TRUE)
+ ENDIF( Qt5Core_DIR )
+ENDIF(DESIRED_QT_VERSION MATCHES 5)
+
+#Otherwise search for installed qmakes
+IF(NOT QT5_INSTALLED)
+ IF(NOT QT_QMAKE_EXECUTABLE)
+ FIND_PROGRAM(QT_QMAKE_EXECUTABLE_FINDQT NAMES qmake qmake4 qmake-qt4 qmake5 qmake-qt5
+ PATHS "${QT_SEARCH_PATH}/bin" "$ENV{QTDIR}/bin")
+ SET(QT_QMAKE_EXECUTABLE ${QT_QMAKE_EXECUTABLE_FINDQT} CACHE PATH "Qt qmake program.")
+ ENDIF(NOT QT_QMAKE_EXECUTABLE)
-# now find qmake
-IF(QT_QMAKE_EXECUTABLE)
- EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_VERSION" OUTPUT_VARIABLE QTVERSION)
- IF(QTVERSION MATCHES "4.*")
- SET(QT4_INSTALLED TRUE)
- ENDIF(QTVERSION MATCHES "4.*")
- IF(QTVERSION MATCHES "5.*")
- SET(QT5_INSTALLED TRUE)
- ENDIF(QTVERSION MATCHES "5.*")
-ENDIF(QT_QMAKE_EXECUTABLE)
+ # now find qmake
+ IF(QT_QMAKE_EXECUTABLE)
+ EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_VERSION" OUTPUT_VARIABLE QTVERSION)
+ IF(QTVERSION MATCHES "4.*")
+ SET(QT4_INSTALLED TRUE)
+ ENDIF(QTVERSION MATCHES "4.*")
+ IF(QTVERSION MATCHES "5.*")
+ SET(QT5_INSTALLED TRUE)
+ ENDIF(QTVERSION MATCHES "5.*")
+ ENDIF(QT_QMAKE_EXECUTABLE)
+ENDIF(NOT QT5_INSTALLED)
IF(NOT DESIRED_QT_VERSION)
IF(QT4_INSTALLED)