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:
@@ -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);
|
||||
}
|
||||
|
@@ -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")
|
||||
|
@@ -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()
|
||||
|
Reference in New Issue
Block a user