Explorar o código

ENH: Allowing finding a relocated Qt installation which contains a qt.conf to override the hardcoded paths in qmake.
Fixes #8532.

Clinton Stimpson %!s(int64=16) %!d(string=hai) anos
pai
achega
2b4a472e81
Modificáronse 1 ficheiros con 14 adicións e 23 borrados
  1. 14 23
      Modules/FindQt4.cmake

+ 14 - 23
Modules/FindQt4.cmake

@@ -798,30 +798,9 @@ IF (QT4_QMAKE_FOUND)
   #######################################
 
 
-  # find moc and uic using qmake
-  QT_QUERY_QMAKE(QT_MOC_EXECUTABLE_INTERNAL "QMAKE_MOC")
-  QT_QUERY_QMAKE(QT_UIC_EXECUTABLE_INTERNAL "QMAKE_UIC")
-
-  # make sure we have / and not \ as qmake gives on windows
-  FILE(TO_CMAKE_PATH 
-    "${QT_MOC_EXECUTABLE_INTERNAL}" QT_MOC_EXECUTABLE_INTERNAL)
-  # make sure we have / and not \ as qmake gives on windows
-  FILE(TO_CMAKE_PATH 
-    "${QT_UIC_EXECUTABLE_INTERNAL}" QT_UIC_EXECUTABLE_INTERNAL)
-
-  IF(QT_QMAKE_CHANGED)
-    SET(QT_MOC_EXECUTABLE 
-      ${QT_MOC_EXECUTABLE_INTERNAL} CACHE FILEPATH "The moc executable" FORCE)
-    SET(QT_UIC_EXECUTABLE 
-      ${QT_UIC_EXECUTABLE_INTERNAL} CACHE FILEPATH "The uic executable" FORCE)
-  ELSE(QT_QMAKE_CHANGED)
-    SET(QT_MOC_EXECUTABLE 
-      ${QT_MOC_EXECUTABLE_INTERNAL} CACHE FILEPATH "The moc executable")
-    SET(QT_UIC_EXECUTABLE 
-      ${QT_UIC_EXECUTABLE_INTERNAL} CACHE FILEPATH "The uic executable")
-  ENDIF(QT_QMAKE_CHANGED)
-
   IF(QT_QMAKE_CHANGED)
+    SET(QT_UIC_EXECUTABLE NOTFOUND)
+    SET(QT_MOC_EXECUTABLE NOTFOUND)
     SET(QT_UIC3_EXECUTABLE NOTFOUND)
     SET(QT_RCC_EXECUTABLE NOTFOUND)
     SET(QT_DBUSCPP2XML_EXECUTABLE NOTFOUND)
@@ -829,6 +808,18 @@ IF (QT4_QMAKE_FOUND)
     SET(QT_LUPDATE_EXECUTABLE NOTFOUND)
     SET(QT_LRELEASE_EXECUTABLE NOTFOUND)
   ENDIF(QT_QMAKE_CHANGED)
+  
+  FIND_PROGRAM(QT_MOC_EXECUTABLE
+    NAMES moc-qt4 moc
+    PATHS ${QT_BINARY_DIR}
+    NO_DEFAULT_PATH
+    )
+
+  FIND_PROGRAM(QT_UIC_EXECUTABLE
+    NAMES uic-qt4 uic
+    PATHS ${QT_BINARY_DIR}
+    NO_DEFAULT_PATH
+    )
 
   FIND_PROGRAM(QT_UIC3_EXECUTABLE
     NAMES uic3