Bläddra i källkod

ENH: Improve Qt5 CMake configuration supporting passing of Qt5_DIR

This is the preferred and recommended way.
See https://blog.kitware.com/cmake-finding-qt5-the-right-way/
Jean-Christophe Fillion-Robin 8 år sedan
förälder
incheckning
93d3c9d2fc

+ 1 - 1
CMake/ctkMacroBuildPlugin.cmake

@@ -150,7 +150,7 @@ macro(ctkMacroBuildPlugin)
     # Add Qt include dirs and defines
     include(${QT_USE_FILE})
   else()
-    find_package(Qt5LinguistTools REQUIRED)
+    find_package(Qt5 COMPONENTS LinguistTools REQUIRED)
   endif()
 
   # Add the library directories from the external project

+ 1 - 1
CMake/ctkMacroBuildQtPlugin.cmake

@@ -187,7 +187,7 @@ endmacro()
 
 macro(ctkMacroBuildQtDesignerPlugin)
   if(CTK_QT_VERSION VERSION_GREATER "4")
-    find_package(Qt5Designer REQUIRED)
+    find_package(Qt5 COMPONENTS Designer REQUIRED)
     add_definitions(${Qt5Designer_DEFINITIONS})
     include_directories(${Qt5Designer_INCLUDE_DIRS})
   endif()

+ 3 - 2
CMake/ctkMacroSetupQt.cmake

@@ -43,6 +43,8 @@ macro(ctkMacroSetupQt)
       list(APPEND CTK_QT5_COMPONENTS Script)
     endif()
     find_package(Qt5 COMPONENTS ${CTK_QT5_COMPONENTS} REQUIRED)
+
+    mark_as_superbuild(Qt5_DIR) # Qt 5
   else()
     set(minimum_required_qt_version "4.6")
 
@@ -69,12 +71,11 @@ macro(ctkMacroSetupQt)
         get_filename_component(QT_INSTALLED_LIBRARY_DIR ${QT_QMAKE_EXECUTABLE} PATH)
       endif()
 
+      mark_as_superbuild(QT_QMAKE_EXECUTABLE) # Qt 4
     else()
       message(FATAL_ERROR "error: Qt4 was not found on your system. You probably need to set the QT_QMAKE_EXECUTABLE variable")
     endif()
   endif()
 
   mark_as_superbuild(CTK_QT_VERSION)
-  mark_as_superbuild(QT_QMAKE_EXECUTABLE) # Qt 4
-
 endmacro()

+ 12 - 1
CMakeExternals/Log4Qt.cmake

@@ -40,6 +40,17 @@ if(NOT DEFINED Log4Qt_DIR)
                       GIT_TAG ${revision_tag})
   endif()
 
+  set(ep_cache_args)
+  if(CTK_QT_VERSION VERSION_LESS "5")
+    list(APPEND ep_cache_args
+      -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
+      )
+  else()
+    list(APPEND ep_cache_args
+      -DQt5_DIR:PATH=${Qt5_DIR}
+      )
+  endif()
+
   ExternalProject_Add(${proj}
     ${${proj}_EXTERNAL_PROJECT_ARGS}
     SOURCE_DIR ${CMAKE_BINARY_DIR}/${proj}
@@ -49,7 +60,7 @@ if(NOT DEFINED Log4Qt_DIR)
     INSTALL_COMMAND ""
     CMAKE_CACHE_ARGS
       ${ep_common_cache_args}
-      -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
+      ${ep_cache_args}
     DEPENDS
       ${${proj}_DEPENDENCIES}
     )

+ 4 - 1
CMakeExternals/PythonQt.cmake

@@ -34,6 +34,9 @@ if(NOT DEFINED PYTHONQT_INSTALL_DIR)
   # Enable Qt libraries PythonQt wrapping if required
   if (CTK_QT_VERSION VERSION_GREATER "4")
     set(qtlibs Core Gui Widgets Network OpenGL PrintSupport Sql Svg UiTools WebKit WebKitWidgets Xml)
+    list(APPEND ep_PythonQt_args
+      -DQt5_DIR:PATH=${Qt5_DIR}
+      )
   else()
     list(APPEND ep_PythonQt_args
       -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
@@ -88,7 +91,7 @@ if(NOT DEFINED PYTHONQT_INSTALL_DIR)
     BUILD_COMMAND ""
     CMAKE_CACHE_ARGS
       ${ep_common_cache_args}
-      -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
+      -DPythonQt_QT_VERSION:STRING=${CTK_QT_VERSION}
       -DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR}
       -DPYTHON_INCLUDE_DIR2:PATH=${PYTHON_INCLUDE_DIR2}
       -DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY}

+ 12 - 1
CMakeExternals/QtSOAP.cmake

@@ -40,6 +40,17 @@ if(NOT DEFINED QtSOAP_DIR)
                       GIT_TAG ${revision_tag})
   endif()
 
+  set(ep_cache_args)
+  if(CTK_QT_VERSION VERSION_LESS "5")
+    list(APPEND ep_cache_args
+      -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
+      )
+  else()
+    list(APPEND ep_cache_args
+      -DQt5_DIR:PATH=${Qt5_DIR}
+      )
+  endif()
+
   ExternalProject_Add(${proj}
     ${${proj}_EXTERNAL_PROJECT_ARGS}
     SOURCE_DIR ${CMAKE_BINARY_DIR}/${proj}
@@ -51,7 +62,7 @@ if(NOT DEFINED QtSOAP_DIR)
       ${ep_common_cache_args}
       -DCMAKE_RUNTIME_OUTPUT_DIRECTORY:STRING=${CTK_CMAKE_RUNTIME_OUTPUT_DIRECTORY}
       -DQtSOAP_QT_VERSION:STRING=${CTK_QT_VERSION}
-      -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
+      ${ep_cache_args}
     DEPENDS
       ${${proj}_DEPENDENCIES}
     )

+ 6 - 6
CMakeExternals/QtTesting.cmake

@@ -49,15 +49,15 @@ if(NOT DEFINED QtTesting_DIR)
       -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET})
   endif()
 
-  set(proj_qt_args
-	  -DQtTesting_QT_VERSION:STRING=${CTK_QT_VERSION})
+  set(ep_cache_args
+    -DQtTesting_QT_VERSION:STRING=${CTK_QT_VERSION})
   if(CTK_QT_VERSION VERSION_LESS "5")
-    list(APPEND proj_qt_args
+    list(APPEND ep_cache_args
       -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
     )
   else()
-    list(APPEND proj_qt_args
-      -DCMAKE_PREFIX_PATH:FILEPATH=${CMAKE_PREFIX_PATH}
+    list(APPEND ep_cache_args
+      -DQt5_DIR:PATH=${Qt5_DIR}
     )
   endif()
   message(STATUS "Adding project:${proj}")
@@ -69,7 +69,7 @@ if(NOT DEFINED QtTesting_DIR)
     ${location_args}
     CMAKE_CACHE_ARGS
       ${ep_common_cache_args}
-	  ${proj_qt_args}
+      ${ep_cache_args}
       -DBUILD_SHARED_LIBS:BOOL=ON
     DEPENDS
       ${${proj}_DEPENDENCIES}

+ 2 - 2
CMakeExternals/VTK.cmake

@@ -58,12 +58,13 @@ if(NOT DEFINED VTK_DIR AND NOT ${CMAKE_PROJECT_NAME}_USE_SYSTEM_${proj})
     list(APPEND additional_vtk_cmakevars
       -DVTK_QT_VERSION:STRING=4
       -DDESIRED_QT_VERSION:STRING=4
+      -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
       )
   else()
     list(APPEND additional_vtk_cmakevars
       -DVTK_QT_VERSION:STRING=5
       -DDESIRED_QT_VERSION:STRING=5
-      -DCMAKE_PREFIX_PATH:STRING=${CMAKE_PREFIX_PATH}
+      -DQt5_DIR:PATH=${Qt5_DIR}
       )
   endif()
 
@@ -87,7 +88,6 @@ if(NOT DEFINED VTK_DIR AND NOT ${CMAKE_PROJECT_NAME}_USE_SYSTEM_${proj})
       -DVTK_USE_QT:BOOL=ON # VTK 5
       -DVTK_Group_Qt:BOOL=ON # VTK 6
       -DVTK_LEGACY_REMOVE:BOOL=ON
-      -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
     DEPENDS
       ${${proj}_DEPENDENCIES}
     )

+ 12 - 1
CMakeExternals/qRestAPI.cmake

@@ -40,6 +40,17 @@ if(NOT DEFINED ${proj}_DIR)
                       GIT_TAG ${revision_tag})
   endif()
 
+  set(ep_cache_args)
+  if(CTK_QT_VERSION VERSION_LESS "5")
+    list(APPEND ep_cache_args
+      -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
+      )
+  else()
+    list(APPEND ep_cache_args
+      -DQt5_DIR:PATH=${Qt5_DIR}
+      )
+  endif()
+
   ExternalProject_Add(${proj}
     ${${proj}_EXTERNAL_PROJECT_ARGS}
     SOURCE_DIR ${CMAKE_BINARY_DIR}/${proj}
@@ -50,7 +61,7 @@ if(NOT DEFINED ${proj}_DIR)
     CMAKE_CACHE_ARGS
       ${ep_common_cache_args}
       -DqRestAPI_QT_VERSION:STRING=${CTK_QT_VERSION}
-      -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
+      ${ep_cache_args}
     DEPENDS
       ${${proj}_DEPENDENCIES}
     )

+ 12 - 1
CMakeExternals/qxmlrpc.cmake

@@ -42,6 +42,17 @@ if(NOT DEFINED qxmlrpc_DIR)
                       GIT_TAG ${revision_tag})
   endif()
 
+  set(ep_cache_args)
+  if(CTK_QT_VERSION VERSION_LESS "5")
+    list(APPEND ep_cache_args
+      -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
+      )
+  else()
+    list(APPEND ep_cache_args
+      -DQt5_DIR:PATH=${Qt5_DIR}
+      )
+  endif()
+
   ExternalProject_Add(${proj}
     ${${proj}_EXTERNAL_PROJECT_ARGS}
     SOURCE_DIR ${CMAKE_BINARY_DIR}/${proj}
@@ -51,7 +62,7 @@ if(NOT DEFINED qxmlrpc_DIR)
     INSTALL_COMMAND ""
     CMAKE_CACHE_ARGS
       ${ep_common_cache_args}
-      -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
+      ${ep_cache_args}
     DEPENDS
       ${${proj}_DEPENDENCIES}
     )