Find Qt5 modules automatically in the qt5_use_modules function.
authorStephen Kelly <stephen.kelly@kdab.com>
Sun, 13 May 2012 17:52:13 +0000 (19:52 +0200)
committerQt by Nokia <qt-info@nokia.com>
Mon, 14 May 2012 02:35:01 +0000 (04:35 +0200)
This ensures that we only find Qt5 modules from the same directory
as modules we have already found, not from multiple different
directories which may be incompatible.

Change-Id: I7ad1d81ec41bba2e543130740041338ba44a6c3b
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
src/corelib/Qt5CoreMacros.cmake
tests/auto/cmake/pass1/CMakeLists.txt

index 41748b5..bc4c020 100644 (file)
@@ -214,7 +214,10 @@ if (NOT CMAKE_VERSION VERSION_LESS 2.8.8)
         endif()
         foreach(_module ${modules})
             if (NOT Qt5${_module}_FOUND)
-                message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.")
+                find_package(Qt5${_module} PATHS ${_qt5_corelib_install_prefix} NO_DEFAULT_PATH)
+                if (NOT Qt5${_module}_FOUND)
+                    message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.")
+                endif()
             endif()
             target_link_libraries(${_target} ${link_type} ${Qt5${_module}_LIBRARIES})
             set_property(TARGET ${_target} APPEND PROPERTY INCLUDE_DIRECTORIES ${Qt5${_module}_INCLUDE_DIRS})
index d8efadc..50a3375 100644 (file)
@@ -10,8 +10,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
 add_executable(two two.cpp)
 add_executable(three three.cpp)
 
-find_package(Qt5Test)
-find_package(Qt5Widgets)
+find_package(Qt5Core)
 
 qt5_use_modules(two Test)
 qt5_use_modules(three Widgets Test)