telepathy-qt: Simplify FindQt5.cmake

David Edmundson davidedmundson at kemper.freedesktop.org
Fri Mar 14 09:00:44 PDT 2014


Module: telepathy-qt
Branch: master
Commit: dca59397c00d27f3de0da4269fe53d4dda5520cb
URL:    http://cgit.freedesktop.org/telepathy/telepathy-qt/commit/?id=dca59397c00d27f3de0da4269fe53d4dda5520cb

Author: Uwe Korn <uwelk at xhochy.com>
Date:   Fri Mar 14 16:55:26 2014 +0100

Simplify FindQt5.cmake

Make further use of Qt 5's cmake integration

Reviewed-by: David Edmundson

---

 cmake/modules/FindQt5.cmake |   53 +++++++++++++++++++++++++------------------
 1 file changed, 31 insertions(+), 22 deletions(-)

diff --git a/cmake/modules/FindQt5.cmake b/cmake/modules/FindQt5.cmake
index 922ebc1..957f7b3 100644
--- a/cmake/modules/FindQt5.cmake
+++ b/cmake/modules/FindQt5.cmake
@@ -44,25 +44,31 @@ IF(QT_INCLUDES AND QT_LIBRARIES AND QT_MAJOR_VERSION MATCHES 5)
   RETURN()
 ENDIF(QT_INCLUDES AND QT_LIBRARIES AND QT_MAJOR_VERSION MATCHES 5)
 
-IF(NOT QT_QMAKE_EXECUTABLE)
-  FIND_PROGRAM(QT_QMAKE_EXECUTABLE_FINDQT NAMES qmake 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)
-
-EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_VERSION" OUTPUT_VARIABLE QTVERSION)
-IF(NOT QTVERSION MATCHES "5.*")
-  SET(QT_FOUND FALSE)
-  SET(QT5_FOUND FALSE)
-  IF(Qt5_FIND_REQUIRED)
-    MESSAGE(FATAL_ERROR "CMake was unable to find Qt5, put qmake in your path or set QTDIR/QT_QMAKE_EXECUTABLE.")
-  ENDIF(Qt5_FIND_REQUIRED)
-  RETURN()
-ENDIF(NOT QTVERSION MATCHES "5.*")
-
-FIND_PACKAGE(PkgConfig REQUIRED)
-
-FIND_PACKAGE(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core DBus Gui Network Test Widgets Xml)
+IF(NOT Qt5Core_DIR )
+    IF(NOT QT_QMAKE_EXECUTABLE)
+        FIND_PROGRAM(QT_QMAKE_EXECUTABLE_FINDQT NAMES qmake 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)
+
+    EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_VERSION" OUTPUT_VARIABLE QTVERSION)
+    IF(NOT QTVERSION MATCHES "5.*")
+        SET(QT_FOUND FALSE)
+        SET(QT5_FOUND FALSE)
+        IF(Qt5_FIND_REQUIRED)
+            MESSAGE(FATAL_ERROR "CMake was unable to find Qt5, put qmake in your path or set QTDIR/QT_QMAKE_EXECUTABLE.")
+        ENDIF(Qt5_FIND_REQUIRED)
+        RETURN()
+    ENDIF(NOT QTVERSION MATCHES "5.*")
+ENDIF(NOT Qt5Core_DIR )
+
+find_package(Qt5Core ${REQUIRED_QT_VERSION} REQUIRED)
+find_package(Qt5DBus ${REQUIRED_QT_VERSION} REQUIRED)
+find_package(Qt5Gui ${REQUIRED_QT_VERSION} REQUIRED)
+find_package(Qt5Test ${REQUIRED_QT_VERSION} REQUIRED)
+find_package(Qt5Widgets ${REQUIRED_QT_VERSION} REQUIRED)
+find_package(Qt5Network ${REQUIRED_QT_VERSION} REQUIRED)
+find_package(Qt5Xml ${REQUIRED_QT_VERSION} REQUIRED)
 
 # Copy includes and library names into the same style as pkgconfig used for Qt4
 set(QT_INCLUDES ${Qt5Core_INCLUDE_DIRS} ${Qt5DBus_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS} ${Qt5Network_INCLUDE_DIRS} ${Qt5Test_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS})
@@ -77,9 +83,12 @@ set(QT_QTXML_LIBRARY ${Qt5Xml_LIBRARIES})
 
 set(QT_LIBRARIES ${QT_QTCORE_LIBRARY} ${QT_QTDBUS_LIBRARY} ${QT_QTGUI_LIBRARY} ${QT_QTNETWORK_LIBRARY} ${QT_QTTEST_LIBRARY} ${QT_QTWIDGETS_LIBRARY} ${QT_QTXML_LIBRARY})
 
-STRING(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" QT_VERSION_MAJOR "${QTVERSION}")
-STRING(REGEX REPLACE "^[0-9]+\\.([0-9])+\\.[0-9]+.*" "\\1" QT_VERSION_MINOR "${QTVERSION}")
-STRING(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" QT_VERSION_PATCH "${QTVERSION}")
+SET(QT_VERSION_MAJOR ${Qt5Core_VERSION_MAJOR})
+SET(QT_VERSION_MINOR ${Qt5Core_VERSION_MINOR})
+SET(QT_VERSION_PATCH ${Qt5Core_VERSION_PATCH})
+SET(QT_VERSION ${Qt5Core_VERSION})
+
+GET_PROPERTY(QT_QMAKE_EXECUTABLE TARGET ${Qt5Core_QMAKE_EXECUTABLE} PROPERTY IMPORTED_LOCATION)
 
 IF(NOT QT_INCLUDE_DIR)
   EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_HEADERS" OUTPUT_VARIABLE QTHEADERS)



More information about the telepathy-commits mailing list