1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-14 10:47:59 +08:00

install(EXPORT): Drop REQUIRED from exported find_dependency calls

In commit c6e6861e63 (install(EXPORT): Export find_dependency() calls,
2023-11-07, v3.29.0-rc1~439^2~1) we made the calls `REQUIRED`.  However,
a dependency is only required if the dependent package is required.
`find_dependency` already forwards the `REQUIRED` mark, and also already
marks the dependent package as not found if the dependency is missing.

Fixes: #25756
This commit is contained in:
Brad King
2024-03-11 11:57:41 -04:00
parent 04d8bc6bb9
commit b1c4806914
3 changed files with 6 additions and 6 deletions

View File

@@ -1260,7 +1260,7 @@ void cmExportFileGenerator::GenerateFindDependencyCalls(std::ostream& os)
for (auto const& it : packageDependenciesSorted) {
if (it.second.Enabled == cmExportSet::PackageDependencyExportEnabled::On) {
os << "find_dependency(" << it.first << " REQUIRED";
os << "find_dependency(" << it.first;
for (auto const& arg : it.second.ExtraArguments) {
os << " " << cmOutputConverter::EscapeForCMake(arg);
}

View File

@@ -2,19 +2,19 @@ file(READ "${RunCMake_TEST_BINARY_DIR}/mytargets.cmake" mytargets)
if("${mytargets}" MATCHES "find_dependency\\(P1")
string(APPEND RunCMake_TEST_FAILED "P1 dependency should not be exported but it is\n")
endif()
if(NOT "${mytargets}" MATCHES "find_dependency\\(P2 REQUIRED \"VERSION\" \"1\\.0\"\\)")
if(NOT "${mytargets}" MATCHES "find_dependency\\(P2 \"VERSION\" \"1\\.0\"\\)")
string(APPEND RunCMake_TEST_FAILED "P2 dependency should be exported but it is not\n")
endif()
if(NOT "${mytargets}" MATCHES "find_dependency\\(P3 REQUIRED\\)")
if(NOT "${mytargets}" MATCHES "find_dependency\\(P3\\)")
string(APPEND RunCMake_TEST_FAILED "P3 dependency should be exported but it is not\n")
endif()
if(NOT "${mytargets}" MATCHES "find_dependency\\(P4 REQUIRED\\)")
if(NOT "${mytargets}" MATCHES "find_dependency\\(P4\\)")
string(APPEND RunCMake_TEST_FAILED "P4 dependency should be exported but it is not\n")
endif()
if("${mytargets}" MATCHES "find_dependency\\(P5")
string(APPEND RunCMake_TEST_FAILED "P5 dependency should not be exported but it is\n")
endif()
if(NOT "${mytargets}" MATCHES "find_dependency\\(P6 REQUIRED\\)")
if(NOT "${mytargets}" MATCHES "find_dependency\\(P6\\)")
string(APPEND RunCMake_TEST_FAILED "P6 dependency should be exported but it is not\n")
endif()
if("${mytargets}" MATCHES "find_dependency\\(P7")

View File

@@ -1,4 +1,4 @@
file(READ "${RunCMake_TEST_BINARY_DIR}/root-all/lib/cmake/mylib/mylib-targets.cmake" contents)
if(NOT contents MATCHES "include\\(CMakeFindDependencyMacro\\)\nfind_dependency\\(P2 REQUIRED\\)\nfind_dependency\\(P1 REQUIRED\\)\n")
if(NOT contents MATCHES "include\\(CMakeFindDependencyMacro\\)\nfind_dependency\\(P2\\)\nfind_dependency\\(P1\\)\n")
set(RunCMake_TEST_FAILED "Dependencies were not properly exported")
endif()