|
|
@@ -499,50 +499,61 @@ bool cmFindPackageCommand::InitialPass(std::vector<std::string> const& args,
|
|
|
|
|
|
// See if there is a Find<PackageName>.cmake module.
|
|
|
bool loadedPackage = false;
|
|
|
- if (this->UseFindModules && this->FindPackageUsingModuleMode()) {
|
|
|
- loadedPackage = true;
|
|
|
- } else {
|
|
|
- // Handle CMAKE_FIND_PACKAGE_WARN_NO_MODULE (warn when CONFIG mode is
|
|
|
- // implicitly assumed)
|
|
|
- if (this->UseFindModules && this->UseConfigFiles &&
|
|
|
- this->Makefile->IsOn("CMAKE_FIND_PACKAGE_WARN_NO_MODULE")) {
|
|
|
- std::ostringstream aw;
|
|
|
- if (this->RequiredCMakeVersion >= CMake_VERSION_ENCODE(2, 8, 8)) {
|
|
|
- aw << "find_package called without either MODULE or CONFIG option and "
|
|
|
- "no Find"
|
|
|
- << this->Name
|
|
|
- << ".cmake module is in CMAKE_MODULE_PATH. "
|
|
|
- "Add MODULE to exclusively request Module mode and fail if "
|
|
|
- "Find"
|
|
|
- << this->Name
|
|
|
- << ".cmake is missing. "
|
|
|
- "Add CONFIG to exclusively request Config mode and search for a "
|
|
|
- "package configuration file provided by "
|
|
|
- << this->Name << " (" << this->Name << "Config.cmake or "
|
|
|
- << cmSystemTools::LowerCase(this->Name) << "-config.cmake). ";
|
|
|
- } else {
|
|
|
- aw << "find_package called without NO_MODULE option and no "
|
|
|
- "Find"
|
|
|
- << this->Name
|
|
|
- << ".cmake module is in CMAKE_MODULE_PATH. "
|
|
|
- "Add NO_MODULE to exclusively request Config mode and search "
|
|
|
- "for a "
|
|
|
- "package configuration file provided by "
|
|
|
- << this->Name << " (" << this->Name << "Config.cmake or "
|
|
|
- << cmSystemTools::LowerCase(this->Name)
|
|
|
- << "-config.cmake). "
|
|
|
- "Otherwise make Find"
|
|
|
- << this->Name
|
|
|
- << ".cmake available in "
|
|
|
- "CMAKE_MODULE_PATH.";
|
|
|
- }
|
|
|
- aw << "\n"
|
|
|
- "(Variable CMAKE_FIND_PACKAGE_WARN_NO_MODULE enabled this "
|
|
|
- "warning.)";
|
|
|
- this->Makefile->IssueMessage(MessageType::AUTHOR_WARNING, aw.str());
|
|
|
+ if (this->Makefile->IsOn("CMAKE_FIND_PACKAGE_PREFER_CONFIG")) {
|
|
|
+ if (this->UseConfigFiles && this->FindPackageUsingConfigMode()) {
|
|
|
+ loadedPackage = true;
|
|
|
+ } else if (this->FindPackageUsingModuleMode()) {
|
|
|
+ loadedPackage = true;
|
|
|
}
|
|
|
- if (this->FindPackageUsingConfigMode()) {
|
|
|
+ } else {
|
|
|
+ if (this->UseFindModules && this->FindPackageUsingModuleMode()) {
|
|
|
loadedPackage = true;
|
|
|
+ } else {
|
|
|
+ // Handle CMAKE_FIND_PACKAGE_WARN_NO_MODULE (warn when CONFIG mode is
|
|
|
+ // implicitly assumed)
|
|
|
+ if (this->UseFindModules && this->UseConfigFiles &&
|
|
|
+ this->Makefile->IsOn("CMAKE_FIND_PACKAGE_WARN_NO_MODULE")) {
|
|
|
+ std::ostringstream aw;
|
|
|
+ if (this->RequiredCMakeVersion >= CMake_VERSION_ENCODE(2, 8, 8)) {
|
|
|
+ aw << "find_package called without either MODULE or CONFIG option "
|
|
|
+ "and "
|
|
|
+ "no Find"
|
|
|
+ << this->Name
|
|
|
+ << ".cmake module is in CMAKE_MODULE_PATH. "
|
|
|
+ "Add MODULE to exclusively request Module mode and fail if "
|
|
|
+ "Find"
|
|
|
+ << this->Name
|
|
|
+ << ".cmake is missing. "
|
|
|
+ "Add CONFIG to exclusively request Config mode and search for "
|
|
|
+ "a "
|
|
|
+ "package configuration file provided by "
|
|
|
+ << this->Name << " (" << this->Name << "Config.cmake or "
|
|
|
+ << cmSystemTools::LowerCase(this->Name) << "-config.cmake). ";
|
|
|
+ } else {
|
|
|
+ aw << "find_package called without NO_MODULE option and no "
|
|
|
+ "Find"
|
|
|
+ << this->Name
|
|
|
+ << ".cmake module is in CMAKE_MODULE_PATH. "
|
|
|
+ "Add NO_MODULE to exclusively request Config mode and search "
|
|
|
+ "for a "
|
|
|
+ "package configuration file provided by "
|
|
|
+ << this->Name << " (" << this->Name << "Config.cmake or "
|
|
|
+ << cmSystemTools::LowerCase(this->Name)
|
|
|
+ << "-config.cmake). "
|
|
|
+ "Otherwise make Find"
|
|
|
+ << this->Name
|
|
|
+ << ".cmake available in "
|
|
|
+ "CMAKE_MODULE_PATH.";
|
|
|
+ }
|
|
|
+ aw << "\n"
|
|
|
+ "(Variable CMAKE_FIND_PACKAGE_WARN_NO_MODULE enabled this "
|
|
|
+ "warning.)";
|
|
|
+ this->Makefile->IssueMessage(MessageType::AUTHOR_WARNING, aw.str());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (this->FindPackageUsingConfigMode()) {
|
|
|
+ loadedPackage = true;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|