summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2020-09-14 09:06:58 +0200
committerJoerg Bornemann <joerg.bornemann@qt.io>2020-09-14 15:03:13 +0200
commitb9c493728aa9f73b6876c6bef0ebd9f07824f553 (patch)
treee0ffb8557d5650159b3d45b223acdf2a799c6371
parent721116de309f1933fad788fe4272c0d5c12b9909 (diff)
Revert "Revert "CMake: Fix usage of find_dependency()""
...and fix the build errors the original change caused. This reverts commit 127fb8bb5587db52216d0ac934f3111170a7cbe3. Change-Id: I4006b32734a51c5d101dd73c957f81d2a0f84ba1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
-rw-r--r--cmake/QtConfig.cmake.in12
-rw-r--r--cmake/QtConfigDependencies.cmake.in30
-rw-r--r--cmake/QtModuleConfig.cmake.in7
-rw-r--r--cmake/QtModuleDependencies.cmake.in28
-rw-r--r--cmake/QtModuleToolsDependencies.cmake.in7
-rw-r--r--cmake/QtPluginDependencies.cmake.in24
6 files changed, 48 insertions, 60 deletions
diff --git a/cmake/QtConfig.cmake.in b/cmake/QtConfig.cmake.in
index 46a5d11ff7..95fc581993 100644
--- a/cmake/QtConfig.cmake.in
+++ b/cmake/QtConfig.cmake.in
@@ -51,15 +51,13 @@ endif()
# Find required dependencies, if any.
include(CMakeFindDependencyMacro)
-set(@INSTALL_CMAKE_NAMESPACE@_DEPENDENCIES_FOUND TRUE)
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@Dependencies.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@Dependencies.cmake")
-endif()
-if(NOT @INSTALL_CMAKE_NAMESPACE@_DEPENDENCIES_FOUND)
- set(@INSTALL_CMAKE_NAMESPACE@_FOUND False)
- message(FATAL_ERROR
- "Failed to find Qt Platform dependency:
- ${@INSTALL_CMAKE_NAMESPACE@_DEPENDENCY_NOT_FOUND_MESSAGE}")
+ if(NOT @INSTALL_CMAKE_NAMESPACE@_DEPENDENCIES_FOUND)
+ set(@INSTALL_CMAKE_NAMESPACE@_FOUND FALSE)
+ message(FATAL_ERROR "Failed to find Qt Platform dependency: "
+ "${@INSTALL_CMAKE_NAMESPACE@_DEPENDENCY_NOT_FOUND_MESSAGE}")
+ endif()
endif()
foreach(module ${@INSTALL_CMAKE_NAMESPACE@_FIND_COMPONENTS})
diff --git a/cmake/QtConfigDependencies.cmake.in b/cmake/QtConfigDependencies.cmake.in
index 301d808d8c..b2e59469a3 100644
--- a/cmake/QtConfigDependencies.cmake.in
+++ b/cmake/QtConfigDependencies.cmake.in
@@ -1,3 +1,5 @@
+set(@INSTALL_CMAKE_NAMESPACE@_DEPENDENCIES_FOUND FALSE)
+
# note: _third_party_deps example: "ICU\\;1.0\\;i18n uc data;ZLIB\\;\\;"
set(_third_party_deps "@third_party_deps@")
@@ -12,24 +14,24 @@ foreach(_target_dep ${_third_party_deps})
list(APPEND find_package_args "${version}")
endif()
+ # Already build an error message, because find_dependency calls return() on failure.
+ set(__@INSTALL_CMAKE_NAMESPACE@_message "\nPackage: ${pkg}")
+ if(version)
+ string(APPEND __@INSTALL_CMAKE_NAMESPACE@_message "\nVersion: ${version}")
+ endif()
+ if(components)
+ string(APPEND __@INSTALL_CMAKE_NAMESPACE@_message "\nComponents: ${components}")
+ endif()
+ set(@INSTALL_CMAKE_NAMESPACE@_DEPENDENCY_NOT_FOUND_MESSAGE
+ "${__@INSTALL_CMAKE_NAMESPACE@_message}")
+
if(components)
string(REPLACE " " ";" components "${components}")
find_dependency(${find_package_args} COMPONENTS ${components})
else()
find_dependency(${find_package_args})
endif()
-
- if (NOT ${pkg}_FOUND)
- set(@INSTALL_CMAKE_NAMESPACE@_DEPENDENCIES_FOUND FALSE)
- set(__@INSTALL_CMAKE_NAMESPACE@_message "\nPackage: ${pkg}")
- if(version)
- string(APPEND __@INSTALL_CMAKE_NAMESPACE@_message "\nVersion: ${version}")
- endif()
- if(components)
- string(APPEND __@INSTALL_CMAKE_NAMESPACE@_message "\nComponents: ${components}")
- endif()
- set(@INSTALL_CMAKE_NAMESPACE@_DEPENDENCY_NOT_FOUND_MESSAGE
- "${__@INSTALL_CMAKE_NAMESPACE@_message}")
- return()
- endif()
endforeach()
+
+set(@INSTALL_CMAKE_NAMESPACE@_DEPENDENCIES_FOUND TRUE)
+unset(@INSTALL_CMAKE_NAMESPACE@_DEPENDENCY_NOT_FOUND_MESSAGE)
diff --git a/cmake/QtModuleConfig.cmake.in b/cmake/QtModuleConfig.cmake.in
index 37527d1da6..f34bafb948 100644
--- a/cmake/QtModuleConfig.cmake.in
+++ b/cmake/QtModuleConfig.cmake.in
@@ -14,6 +14,12 @@ if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@@target@Dependenci
include("${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@@target@Dependencies.cmake")
endif()
+# If *ConfigDependencies.cmake exists, the variable value will be defined there.
+# Don't override it in that case.
+if(NOT DEFINED "@INSTALL_CMAKE_NAMESPACE@@target@_FOUND")
+ set("@INSTALL_CMAKE_NAMESPACE@@target@_FOUND" TRUE)
+endif()
+
if (NOT QT_NO_CREATE_TARGETS)
include("${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@@target@Targets.cmake")
if(NOT QT_NO_CREATE_VERSIONLESS_TARGETS)
@@ -85,7 +91,6 @@ include(${_qt_@PROJECT_VERSION_MAJOR@_config_cmake_dir}/QtFeature.cmake)
qt_make_features_available(@QT_CMAKE_EXPORT_NAMESPACE@::@target@)
-set("@INSTALL_CMAKE_NAMESPACE@@target@_FOUND" TRUE)
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@@target@Plugins.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/@INSTALL_CMAKE_NAMESPACE@@target@Plugins.cmake")
endif()
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)
diff --git a/cmake/QtModuleToolsDependencies.cmake.in b/cmake/QtModuleToolsDependencies.cmake.in
index 46c60b8484..d9ff04b6f9 100644
--- a/cmake/QtModuleToolsDependencies.cmake.in
+++ b/cmake/QtModuleToolsDependencies.cmake.in
@@ -1,4 +1,5 @@
# Find "ModuleTools" dependencies, which are other ModuleTools packages.
+set(@INSTALL_CMAKE_NAMESPACE@@target@_FOUND FALSE)
set(_tool_deps "@package_deps@")
foreach(_target_dep ${_tool_deps})
list(GET _target_dep 0 pkg)
@@ -7,10 +8,6 @@ foreach(_target_dep ${_tool_deps})
if (NOT ${pkg}_FOUND)
find_dependency(${pkg} ${version})
endif()
-
- if (NOT ${pkg}_FOUND)
- set(@INSTALL_CMAKE_NAMESPACE@@target@_FOUND FALSE)
- return()
- endif()
endforeach()
+set(@INSTALL_CMAKE_NAMESPACE@@target@_FOUND TRUE)
diff --git a/cmake/QtPluginDependencies.cmake.in b/cmake/QtPluginDependencies.cmake.in
index eb1d9c3433..ce64b096bb 100644
--- a/cmake/QtPluginDependencies.cmake.in
+++ b/cmake/QtPluginDependencies.cmake.in
@@ -1,3 +1,5 @@
+set(@target@_FOUND FALSE)
+
# note: _third_party_deps example: "ICU\\;1.0\\;i18n uc data;ZLIB\\;\\;"
set(_third_party_deps "@third_party_deps@")
@@ -10,16 +12,11 @@ foreach(_target_dep ${_third_party_deps})
list(APPEND find_package_args "${version}")
endif()
- if(components)
- string(REPLACE " " ";" components "${components}")
- find_dependency(${find_package_args} COMPONENTS ${components})
- else()
- find_dependency(${find_package_args})
- endif()
-
- if (NOT ${pkg}_FOUND)
- set(@target@_FOUND FALSE)
- return()
+ if(components)
+ string(REPLACE " " ";" components "${components}")
+ find_dependency(${find_package_args} COMPONENTS ${components})
+ else()
+ find_dependency(${find_package_args})
endif()
endforeach()
@@ -34,9 +31,6 @@ foreach(_target_dep ${_target_deps})
PATHS @find_dependency_paths@ ${QT_EXAMPLES_CMAKE_PREFIX_PATH} NO_DEFAULT_PATH
)
endif()
-
- if (NOT ${pkg}_FOUND)
- set(@target@_FOUND FALSE)
- return()
- endif()
endforeach()
+
+set(@target@_FOUND TRUE)