summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)