diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-04-29 14:36:25 +0200 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-05-02 07:30:55 +0000 |
commit | bcfc3dca5d9f3e329fbbcf114145cf8b348c2c81 (patch) | |
tree | 9c07e6dac499c51e9b208ae90206fa3d562cb76d /cmake/QtModuleDependencies.cmake.in | |
parent | 9b0b464e82071338134700edfa190bf998846e4e (diff) |
Make module package depend on its own tool package
Also make the tool package depend on all tool packages that correspond
to the qt module dependencies.
So find_package(Qt5Widgets) implicitly calls find_package(Qt5WidgetTools).
And find_package(Qt5WidgetsTools) will call find_package for
Qt5GuiTools, and Qt5CoreTools.
This enhances the user experience, so that in modules like qtsvg, you
don't have to specify both find_package(Qt5Widgets) and
find_package(Qt5WidgetsTools), but only the former.
Or when cross building, you only need to specify Qt5WidgetTools, to get
both Core and Gui tools.
Change-Id: Ib1c5173a5b97584a52e144c22e38e90a712f727a
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Diffstat (limited to 'cmake/QtModuleDependencies.cmake.in')
-rw-r--r-- | cmake/QtModuleDependencies.cmake.in | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/cmake/QtModuleDependencies.cmake.in b/cmake/QtModuleDependencies.cmake.in index 7ff02df894..2190460b71 100644 --- a/cmake/QtModuleDependencies.cmake.in +++ b/cmake/QtModuleDependencies.cmake.in @@ -32,3 +32,20 @@ endforeach() # Restore old module path. set(CMAKE_MODULE_PATH "${old_CMAKE_MODULE_PATH}") + +# Find Qt tool package. +set(_tool_deps "@main_module_tool_deps@") +foreach(_target_dep ${_tool_deps}) + list(GET _target_dep 0 pkg) + list(GET _target_dep 1 version) + + if (NOT ${pkg}_FOUND) + find_dependency(${pkg} ${version}) + endif() + + if (NOT ${pkg}_FOUND) + set(@INSTALL_CMAKE_NAMESPACE@@target@_FOUND FALSE) + return() + endif() +endforeach() + |