From 58c1c6ee5c986d502b56eb1cc57f1d9444d42031 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 11 Sep 2020 13:41:39 +0200 Subject: CMake: Fix usage of find_dependency() The find_dependency() macro calls return() on failure, meaning any code after it will be ignored, thus checking any XXX_FOUND variables after find_dependency() is pointless. Fix the places where we use find_dependency() and set the "failed" state before the call and the "success" state afterwards. Change-Id: Ia5239c704f02a9bec972210374ffed7808b14055 Reviewed-by: Alexandru Croitor --- cmake/QtModuleDependencies.cmake.in | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) (limited to 'cmake/QtModuleDependencies.cmake.in') diff --git a/cmake/QtModuleDependencies.cmake.in b/cmake/QtModuleDependencies.cmake.in index d598571d64..80c5202c9a 100644 --- a/cmake/QtModuleDependencies.cmake.in +++ b/cmake/QtModuleDependencies.cmake.in @@ -1,11 +1,8 @@ # Make sure @INSTALL_CMAKE_NAMESPACE@ is found before anything else. +set(@INSTALL_CMAKE_NAMESPACE@@target@_FOUND FALSE) find_dependency(@INSTALL_CMAKE_NAMESPACE@ @PROJECT_VERSION@ PATHS "${CMAKE_CURRENT_LIST_DIR}/.." ${QT_EXAMPLES_CMAKE_PREFIX_PATH} NO_DEFAULT_PATH ) -if (NOT @INSTALL_CMAKE_NAMESPACE@_FOUND) - set(@INSTALL_CMAKE_NAMESPACE@@target@_FOUND FALSE) - return() -endif() # note: _third_party_deps example: "ICU\\;1.0\\;i18n uc data;ZLIB\\;\\;" set(_third_party_deps "@third_party_deps@") @@ -25,11 +22,6 @@ foreach(_target_dep ${_third_party_deps}) else() find_dependency(${find_package_args}) endif() - - if (NOT ${pkg}_FOUND) - set(@INSTALL_CMAKE_NAMESPACE@@target@_FOUND FALSE) - return() - endif() endforeach() # Find Qt tool package. @@ -47,10 +39,15 @@ foreach(_target_dep ${_tool_deps}) list(GET _target_dep 0 pkg) list(GET _target_dep 1 version) - find_dependency(${pkg} ${version}) - + unset(find_package_args) + if(${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY) + list(APPEND find_package_args QUIET) + endif() + if(${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED) + list(APPEND find_package_args REQUIRED) + endif() + find_package(${pkg} ${version} ${find_package_args}) if (NOT ${pkg}_FOUND) - set(@INSTALL_CMAKE_NAMESPACE@@target@_FOUND FALSE) if(QT_HOST_PATH) set(CMAKE_PREFIX_PATH ${BACKUP_@target@_CMAKE_PREFIX_PATH}) set(CMAKE_FIND_ROOT_PATH ${BACKUP_@target@_CMAKE_FIND_ROOT_PATH}) @@ -74,12 +71,7 @@ foreach(_target_dep ${_target_deps}) PATHS "${CMAKE_CURRENT_LIST_DIR}/.." ${QT_EXAMPLES_CMAKE_PREFIX_PATH} NO_DEFAULT_PATH ) endif() - - if (NOT ${pkg}_FOUND) - set(@INSTALL_CMAKE_NAMESPACE@@target@_FOUND FALSE) - return() - endif() endforeach() set(_@QT_CMAKE_EXPORT_NAMESPACE@@target@_MODULE_DEPENDENCIES "@qt_module_dependencies@") - +set(@INSTALL_CMAKE_NAMESPACE@@target@_FOUND TRUE) -- cgit v1.2.3