summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorAlexander Akulich <akulichalexander@gmail.com>2019-11-07 02:21:29 +0300
committerAlexander Akulich <akulichalexander@gmail.com>2019-11-08 02:03:54 +0300
commit025639ec6ad994d8b22a73fb4dca257803dd5cb5 (patch)
tree0a6e01276d765f3bde58a2c7d5ea4e2cea340adf /cmake
parentc709c19887ec8af3fcbe63e4a18f6cc713d01565 (diff)
CMake: Drop custom FindQt5 module, rebase on Qt5 targets
Diffstat (limited to 'cmake')
-rw-r--r--cmake/modules/Doxygen.cmake2
-rw-r--r--cmake/modules/FindQt.cmake104
-rw-r--r--cmake/modules/FindQt5.cmake133
-rw-r--r--cmake/modules/QtMacros.cmake11
4 files changed, 12 insertions, 238 deletions
diff --git a/cmake/modules/Doxygen.cmake b/cmake/modules/Doxygen.cmake
index ae040ebd..661ea8c4 100644
--- a/cmake/modules/Doxygen.cmake
+++ b/cmake/modules/Doxygen.cmake
@@ -14,7 +14,7 @@ if(DOXYGEN_FOUND)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(QHELPGENERATOR DEFAULT_MSG QHELPGENERATOR_EXECUTABLE)
- set(QT_TAGS_FILE ${QT_DOC_DIR}/html/qt.tags)
+ set(QT_TAGS_FILE ${QT_DOC_DIR}/qtcore/qtcore.tags)
if(EXISTS ${QT_TAGS_FILE})
find_package(Perl QUIET)
diff --git a/cmake/modules/FindQt.cmake b/cmake/modules/FindQt.cmake
deleted file mode 100644
index f1f5245f..00000000
--- a/cmake/modules/FindQt.cmake
+++ /dev/null
@@ -1,104 +0,0 @@
-# - Searches for Qt4 or Qt5.
-
-# Copyright (C) 2001-2009 Kitware, Inc.
-# Copyright (C) 2011 Collabora Ltd. <http://www.collabora.co.uk/>
-# Copyright (C) 2011 Nokia Corporation
-#
-# Redistribution and use is allowed according to the terms of the BSD license.
-# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-
-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()
-ENDIF()
-
-#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()
-
- # 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()
- IF(QTVERSION MATCHES "^5.*")
- SET(QT5_INSTALLED TRUE)
- ENDIF()
- ENDIF()
-ENDIF()
-
-IF(NOT DESIRED_QT_VERSION)
- IF(QT4_INSTALLED)
- SET(DESIRED_QT_VERSION 4 CACHE STRING "Pick a version of Qt to use: 4 or 5")
- ENDIF()
- IF(QT5_INSTALLED)
- SET(DESIRED_QT_VERSION 5 CACHE STRING "Pick a version of Qt to use: 4 or 5")
- ENDIF()
-ENDIF()
-
-IF(DESIRED_QT_VERSION MATCHES 4)
- SET(Qt4_FIND_REQUIRED ${Qt_FIND_REQUIRED})
- SET(Qt4_FIND_QUIETLY ${Qt_FIND_QUIETLY})
- SET(QT_MIN_VERSION ${QT4_MIN_VERSION})
- SET(QT_MAX_VERSION ${QT4_MAX_VERSION})
- INCLUDE(FindQt4)
-ENDIF()
-IF(DESIRED_QT_VERSION MATCHES 5)
- SET(Qt5_FIND_REQUIRED ${Qt_FIND_REQUIRED})
- SET(Qt5_FIND_QUIETLY ${Qt_FIND_QUIETLY})
- SET(QT_MIN_VERSION ${QT5_MIN_VERSION})
- SET(QT_MAX_VERSION ${QT5_MAX_VERSION})
- INCLUDE(FindQt5)
-ENDIF()
-
-IF(NOT QT4_INSTALLED AND NOT QT5_INSTALLED)
- IF(Qt_FIND_REQUIRED)
- MESSAGE(SEND_ERROR "CMake was unable to find any Qt versions, put qmake in your path, or set QTDIR/QT_QMAKE_EXECUTABLE.")
- ENDIF()
-ELSE()
- IF(NOT QT_FOUND)
- IF(Qt_FIND_REQUIRED)
- MESSAGE(FATAL_ERROR "CMake was unable to find Qt version: ${DESIRED_QT_VERSION}, put qmake in your path or set QTDIR/QT_QMAKE_EXECUTABLE.")
- ELSE()
- MESSAGE("CMake was unable to find Qt version: ${DESIRED_QT_VERSION}, put qmake in your path or set QTDIR/QT_QMAKE_EXECUTABLE.")
- ENDIF()
- ENDIF()
-ENDIF()
-
-MACRO(QT_GET_MOC_FLAGS moc_flags)
- IF(QT_VERSION_MAJOR MATCHES 4)
- QT4_GET_MOC_FLAGS(${moc_flags})
- ELSE()
- IF(QT_VERSION_MAJOR MATCHES 5)
- QT5_GET_MOC_FLAGS(${moc_flags})
- ENDIF()
- ENDIF()
-ENDMACRO()
-
-MACRO(QT_CREATE_MOC_COMMAND infile outfile moc_flags moc_options)
- IF(QT_VERSION_MAJOR MATCHES 4)
- IF(CMAKE_VERSION VERSION_GREATER 2.8.11.20130607)
- QT4_CREATE_MOC_COMMAND(${infile} ${outfile} "${moc_flags}" "${moc_options}" "")
- ELSE()
- QT4_CREATE_MOC_COMMAND(${infile} ${outfile} "${moc_flags}" "${moc_options}")
- ENDIF()
- ELSE()
- IF(QT_VERSION_MAJOR MATCHES 5)
- IF(QTVERSION VERSION_GREATER 5.1.99)
- QT5_CREATE_MOC_COMMAND(${infile} ${outfile} "${moc_flags}" "${moc_options}" "")
- ELSE()
- QT5_CREATE_MOC_COMMAND(${infile} ${outfile} "${moc_flags}" "${moc_options}")
- ENDIF()
- ENDIF()
- ENDIF()
-ENDMACRO()
-
-MARK_AS_ADVANCED(QT_QMAKE_EXECUTABLE_FINDQT)
diff --git a/cmake/modules/FindQt5.cmake b/cmake/modules/FindQt5.cmake
deleted file mode 100644
index ffd5dd38..00000000
--- a/cmake/modules/FindQt5.cmake
+++ /dev/null
@@ -1,133 +0,0 @@
-# - Find Qt5
-# This module can be used to find Qt5.
-# The most important issues are that Qt5 pkgconfig files are installed with PKG_CONFIG_PATH properly
-# set, and that Qt5 qmake is available via the system path.
-# This module defines a number of key variables and macros.
-#
-# Below is a detailed list of variables that FindQt5.cmake sets.
-# QT_FOUND If false, don't try to use Qt.
-# QT5_FOUND If false, don't try to use Qt5.
-#
-# QT_VERSION_MAJOR The major version of Qt found.
-# QT_VERSION_MINOR The minor version of Qt found.
-# QT_VERSION_PATCH The patch version of Qt found.
-#
-# QT_BINARY_DIR Path to "bin" of Qt5
-# QT_DOC_DIR Path to "doc" of Qt5
-#
-# QT_INCLUDES List of paths to all include directories of Qt5.
-#
-# QT_LIBRARIES List of paths to all libraries of Qt5.
-# QT_QTCORE_LIBRARY The QtCore library
-# QT_QTDBUS_LIBRARY The QtDBus library
-# QT_QTGUI_LIBRARY The QtGui library
-# QT_QTNETWORK_LIBRARY The QtNetwork library
-# QT_QTTEST_LIBRARY The QtTest library
-# QT_QTWIDGETS_LIBRARY The QtWidgets library
-# QT_QTXML_LIBRARY The QtXml library
-#
-# also defined, but NOT for general use are
-# QT_MOC_EXECUTABLE Where to find the moc tool
-# QT_CONFIG_FLAGS Flags used when building Qt
-
-# Copyright (C) 2001-2009 Kitware, Inc.
-# Copyright (C) 2011 Collabora Ltd. <http://www.collabora.co.uk/>
-# Copyright (C) 2011 Nokia Corporation
-#
-# Redistribution and use is allowed according to the terms of the BSD license.
-# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-
-IF(QT_INCLUDES AND QT_LIBRARIES AND QT_MAJOR_VERSION MATCHES 5)
- # Already in cache, be silent
- SET(QT_FOUND TRUE)
- SET(QT5_FOUND TRUE)
- RETURN()
-ENDIF()
-
-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()
-
- 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()
- RETURN()
- ENDIF()
-ENDIF()
-
-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})
-
-set(QT_QTCORE_LIBRARY ${Qt5Core_LIBRARIES})
-set(QT_QTDBUS_LIBRARY ${Qt5DBus_LIBRARIES})
-set(QT_QTGUI_LIBRARY ${Qt5Gui_LIBRARIES})
-set(QT_QTNETWORK_LIBRARY ${Qt5Network_LIBRARIES})
-set(QT_QTTEST_LIBRARY ${Qt5Test_LIBRARIES})
-set(QT_QTWIDGETS_LIBRARY ${Qt5Widgets_LIBRARIES})
-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})
-
-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)
- SET(QT_INCLUDE_DIR ${QTHEADERS} CACHE INTERNAL "" FORCE)
-ENDIF()
-
-IF(NOT QT_LIBRARY_DIR)
- EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_LIBS" OUTPUT_VARIABLE QTLIBS)
- SET(QT_LIBRARY_DIR ${QTLIBS} CACHE INTERNAL "" FORCE)
-ENDIF()
-
-IF(NOT QT_BINARY_DIR)
- EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_BINS" OUTPUT_VARIABLE QTBINS)
- SET(QT_BINARY_DIR ${QTBINS} CACHE INTERNAL "" FORCE)
-ENDIF()
-
-IF(NOT QT_DOC_DIR)
- EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_DOCS" OUTPUT_VARIABLE QTDOCS)
- SET(QT_DOC_DIR ${QTDOCS} CACHE INTERNAL "" FORCE)
-ENDIF()
-
-IF(NOT QT_MOC_EXECUTABLE)
- FIND_PROGRAM(QT_MOC_EXECUTABLE NAMES moc moc5 moc-qt5 PATHS ${QT_BINARY_DIR}
- NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
-ENDIF()
-
-MARK_AS_ADVANCED(QT_INCLUDES QT_INCLUDE_DIR
- QT_LIBRARIES QT_LIBRARY_DIR
- QT_BINARY_DIR
- QT_DOC_DIR
- QT_QMAKE_EXECUTABLE_FINDQT QT_QMAKE_EXECUTABLE QT_MOC_EXECUTABLE)
-
-# Invokes pkgconfig, cleans up the result and sets variables
-EXECUTE_PROCESS(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable qt_config Qt5Core
- OUTPUT_VARIABLE _pkgconfig_flags
- RESULT_VARIABLE _pkgconfig_failed)
-STRING(REPLACE " " ";" QT_CONFIG_FLAGS "${_pkgconfig_flags}")
-
-INCLUDE(Qt5Macros)
-
-SET(QT_FOUND TRUE)
-SET(QT5_FOUND TRUE)
diff --git a/cmake/modules/QtMacros.cmake b/cmake/modules/QtMacros.cmake
new file mode 100644
index 00000000..ab514372
--- /dev/null
+++ b/cmake/modules/QtMacros.cmake
@@ -0,0 +1,11 @@
+macro(qt_get_moc_flags moc_flags)
+ if(QT_VERSION_MAJOR MATCHES 5)
+ qt5_get_moc_flags(${moc_flags})
+ endif()
+endmacro()
+
+macro(qt_create_moc_command infile outfile moc_flags moc_options)
+ if(QT_VERSION_MAJOR MATCHES 5)
+ qt5_create_moc_command(${infile} ${outfile} "${moc_flags}" "${moc_options}" "" "")
+ endif()
+endmacro()