summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2014-01-29 15:57:09 (GMT)
committerStephen Kelly <steveire@gmail.com>2014-01-29 16:02:43 (GMT)
commit1fc9ecfae63447f9109475c1b1ffb6a2974458d9 (patch)
tree32444c6c60e89313a9af07e8e4ca3ce8c9f9bda9 /Modules
parentf7ae1d8ad6d0db2b6656ed77f7de12189badf05c (diff)
downloadCMake-1fc9ecfae63447f9109475c1b1ffb6a2974458d9.zip
CMake-1fc9ecfae63447f9109475c1b1ffb6a2974458d9.tar.gz
CMake-1fc9ecfae63447f9109475c1b1ffb6a2974458d9.tar.bz2
FindQt4: Make AUTOMOC work regardless which order Qt 4/5 is found.
Commit 321e348e (QtAutogen: Use Qt 4 IMPORTED targets to find executable locations., 2014-01-24) attempted to fix this problem, but only solved it for a particular ordering of find_package for Qt 4 and Qt 5. Add a test to ensure that it works with both orderings.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/FindQt4.cmake8
1 files changed, 8 insertions, 0 deletions
diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake
index 2d2feae..80ba798 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()