1
0
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:
Cristian Adam
2019-08-05 23:46:54 +02:00
committed by Brad King
parent f43a7d76c7
commit 8ed868606d
2 changed files with 9 additions and 1 deletions

View File

@@ -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 {

View File

@@ -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)