mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-15 20:46:37 +08:00
find_package: Fix prefer-config mode to not fail on missing optional package
When `CMAKE_FIND_PACKAGE_PREFER_CONFIG` mode was set to `ON`, failure to find a package was fatal even if it was not `REQUIRED`. Fix this and add a test case. Fixes: #19557
This commit is contained in:
@@ -507,7 +507,9 @@ bool cmFindPackageCommand::InitialPass(std::vector<std::string> const& args,
|
||||
loadedPackage = true;
|
||||
} else {
|
||||
// The package was not loaded. Report errors.
|
||||
HandlePackageMode(HandlePackageModeType::Module);
|
||||
if (HandlePackageMode(HandlePackageModeType::Module)) {
|
||||
loadedPackage = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@@ -625,3 +625,9 @@ find_package(ACME NO_MODULE)
|
||||
if(ACME_FOUND)
|
||||
message(SEND_ERROR "Should not find ACME package")
|
||||
endif()
|
||||
|
||||
############################################################################
|
||||
##Test find_package CMAKE_FIND_PACKAGE_PREFER_CONFIG with unknown package
|
||||
|
||||
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)
|
||||
find_package(DoesNotExist)
|
||||
|
Reference in New Issue
Block a user