diff options
-rw-r--r-- | Modules/FindQt4.cmake | 8 | ||||
-rw-r--r-- | Tests/CMakeLists.txt | 12 | ||||
-rw-r--r-- | Tests/Qt4And5Automoc/CMakeLists.txt | 9 |
3 files changed, 27 insertions, 2 deletions
diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake index 2d2feae31e..80ba798256 100644 --- a/Modules/FindQt4.cmake +++ b/Modules/FindQt4.cmake @@ -589,6 +589,14 @@ _qt4_find_qmake("${_QT4_QMAKE_NAMES}" QT_QMAKE_EXECUTABLE QTVERSION) if (QT_QMAKE_EXECUTABLE AND QTVERSION) + if (Qt5Core_FOUND) + # Qt5CoreConfig sets QT_MOC_EXECUTABLE as a non-cache variable to the Qt 5 + # path to moc. Unset that variable when Qt 4 and 5 are used together, so + # that when find_program looks for moc, it is not set to the Qt 5 version. + # If FindQt4 has already put the Qt 4 path in the cache, the unset() + # command 'unhides' the (correct) cache variable. + unset(QT_MOC_EXECUTABLE) + endif() if (QT_QMAKE_EXECUTABLE_LAST) string(COMPARE NOTEQUAL "${QT_QMAKE_EXECUTABLE_LAST}" "${QT_QMAKE_EXECUTABLE}" QT_QMAKE_CHANGED) endif() diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index a79111af53..60dc688690 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1168,6 +1168,18 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ --test-command ${CMAKE_CTEST_COMMAND} -V ) list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Qt4And5Automoc") + add_test(Qt4And5AutomocReverse ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/Qt4And5Automoc" + "${CMake_BINARY_DIR}/Tests/Qt4And5AutomocReverse" + ${build_generator_args} + --build-project Qt4And5Automoc + --build-exe-dir "${CMake_BINARY_DIR}/Tests/Qt4And5AutomocReverse" + --force-new-ctest-process + --build-options ${build_options} -DQT_REVERSE_FIND_ORDER=1 + --test-command ${CMAKE_CTEST_COMMAND} -V + ) + list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Qt4And5AutomocReverse") endif() endif() diff --git a/Tests/Qt4And5Automoc/CMakeLists.txt b/Tests/Qt4And5Automoc/CMakeLists.txt index 61d5743662..ad74961d9f 100644 --- a/Tests/Qt4And5Automoc/CMakeLists.txt +++ b/Tests/Qt4And5Automoc/CMakeLists.txt @@ -2,8 +2,13 @@ cmake_minimum_required(VERSION 2.8.12) project(Qt4And5Automoc) -find_package(Qt4 REQUIRED) -find_package(Qt5Core REQUIRED) +if (QT_REVERSE_FIND_ORDER) + find_package(Qt5Core REQUIRED) + find_package(Qt4 REQUIRED) +else() + find_package(Qt4 REQUIRED) + find_package(Qt5Core REQUIRED) +endif() set(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) |