summaryrefslogtreecommitdiffstats
path: root/cmake/QtPublicDependencyHelpers.cmake
diff options
context:
space:
mode:
authorAlexey Edelev <alexey.edelev@qt.io>2021-06-17 16:18:59 +0200
committerAlexey Edelev <alexey.edelev@qt.io>2021-06-19 14:04:37 +0200
commitff4244b540e38c31a474ac23dc1b1696f35730ea (patch)
tree6d0ea68b83e5e4b37b3011c325b947cbdbb7a485 /cmake/QtPublicDependencyHelpers.cmake
parentcdbb390c4a9b8d53cfcfd0884e6720423ce5e126 (diff)
Move dependency lookup functionality to the common macro
Dependency lookup mechanism is the same for modules and plugins. It makes sense to wrap it using macro. Pick-to: 6.2 Change-Id: I73727743b0f5f40b2d94624f65ebfcf85e8dcc59 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'cmake/QtPublicDependencyHelpers.cmake')
-rw-r--r--cmake/QtPublicDependencyHelpers.cmake26
1 files changed, 26 insertions, 0 deletions
diff --git a/cmake/QtPublicDependencyHelpers.cmake b/cmake/QtPublicDependencyHelpers.cmake
new file mode 100644
index 0000000000..e5e41b92af
--- /dev/null
+++ b/cmake/QtPublicDependencyHelpers.cmake
@@ -0,0 +1,26 @@
+# Please note the target_dep_list accepts not the actual list values but the list names that
+# contain preformed dependencies. See foreach block for reference.
+# The same applies for find_dependency_path_list.
+macro(_qt_internal_find_dependencies target_dep_list find_dependency_path_list)
+ foreach(target_dep IN LISTS ${target_dep_list})
+ list(GET target_dep 0 pkg)
+ list(GET target_dep 1 version)
+
+ if (NOT ${pkg}_FOUND)
+ set(pkg_names ${pkg})
+ if(pkg MATCHES "(.*)Private$")
+ set(pkg_names "${CMAKE_MATCH_1};${pkg}")
+ endif()
+ find_dependency(${pkg} ${version}
+ NAMES
+ ${pkg_names}
+ PATHS
+ ${${find_dependency_path_list}}
+ ${_qt_additional_packages_prefix_path}
+ ${_qt_additional_packages_prefix_path_env}
+ ${QT_EXAMPLES_CMAKE_PREFIX_PATH}
+ ${__qt_use_no_default_path_for_qt_packages}
+ )
+ endif()
+ endforeach()
+endmacro()