diff options
author | Brad King <brad.king@kitware.com> | 2024-03-11 15:57:41 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2024-03-11 16:07:32 (GMT) |
commit | b1c48069149fcd9ff128286cb059138b1df96c8f (patch) | |
tree | de7e7ebc622f49d7b7fe6ecb2be7992cfdf1adb6 | |
parent | 04d8bc6bb9727b667b8a0d339c7803befce337f2 (diff) | |
download | CMake-b1c48069149fcd9ff128286cb059138b1df96c8f.zip CMake-b1c48069149fcd9ff128286cb059138b1df96c8f.tar.gz CMake-b1c48069149fcd9ff128286cb059138b1df96c8f.tar.bz2 |
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
-rw-r--r-- | Source/cmExportFileGenerator.cxx | 2 | ||||
-rw-r--r-- | Tests/RunCMake/export/FindDependencyExport-check.cmake | 8 | ||||
-rw-r--r-- | Tests/RunCMake/install/EXPORT-FindDependencyExport-all-check.cmake | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index 37af5f0..f60a17e 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx @@ -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); } diff --git a/Tests/RunCMake/export/FindDependencyExport-check.cmake b/Tests/RunCMake/export/FindDependencyExport-check.cmake index 0cbb195..6917c26 100644 --- a/Tests/RunCMake/export/FindDependencyExport-check.cmake +++ b/Tests/RunCMake/export/FindDependencyExport-check.cmake @@ -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") diff --git a/Tests/RunCMake/install/EXPORT-FindDependencyExport-all-check.cmake b/Tests/RunCMake/install/EXPORT-FindDependencyExport-all-check.cmake index 6a8b2e5..9b41436 100644 --- a/Tests/RunCMake/install/EXPORT-FindDependencyExport-all-check.cmake +++ b/Tests/RunCMake/install/EXPORT-FindDependencyExport-all-check.cmake @@ -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() |