diff options
author | Alexey Edelev <alexey.edelev@qt.io> | 2021-06-17 16:18:59 +0200 |
---|---|---|
committer | Alexey Edelev <alexey.edelev@qt.io> | 2021-06-19 14:04:37 +0200 |
commit | ff4244b540e38c31a474ac23dc1b1696f35730ea (patch) | |
tree | 6d0ea68b83e5e4b37b3011c325b947cbdbb7a485 /cmake/QtPublicDependencyHelpers.cmake | |
parent | cdbb390c4a9b8d53cfcfd0884e6720423ce5e126 (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.cmake | 26 |
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() |