diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx index cd1938e526..a47e9c3428 100644 --- a/Source/cmFindPackageCommand.cxx +++ b/Source/cmFindPackageCommand.cxx @@ -2718,7 +2718,10 @@ bool cmFindPackageCommand::CheckVersion(std::string const& config_file) cmPackageInfoReader::Read(config_file); if (reader && reader->GetName() == this->Name) { cm::optional cpsVersion = reader->GetVersion(); - if (cpsVersion) { + bool const hasVersion = cpsVersion.has_value(); + + if (hasVersion) { + version = std::move(*cpsVersion); // TODO: Implement version check for CPS result = true; } else { @@ -2752,8 +2755,8 @@ bool cmFindPackageCommand::CheckVersion(std::string const& config_file) result = false; } - if (result && cpsVersion) { - this->VersionFound = (version = std::move(*cpsVersion)); + if (result && hasVersion) { + this->VersionFound = version; std::vector const& versionParts = reader->ParseVersion(); this->VersionFoundCount = static_cast(versionParts.size()); diff --git a/Tests/RunCMake/find_package-CPS/MissingComponent-stderr.txt b/Tests/RunCMake/find_package-CPS/MissingComponent-stderr.txt index d617cfda0c..14f1f0af14 100644 --- a/Tests/RunCMake/find_package-CPS/MissingComponent-stderr.txt +++ b/Tests/RunCMake/find_package-CPS/MissingComponent-stderr.txt @@ -5,7 +5,7 @@ CMake Error at MissingComponent.cmake:[0-9]+ \(find_package\): The following configuration files were considered but not accepted: ( [^ -]*/Tests/RunCMake/find_package-CPS/cps/[Cc]omponent[Tt]est\.cps, version: unknown)+ +]*/Tests/RunCMake/find_package-CPS/cps/[Cc]omponent[Tt]est\.cps, version: 1\.0)+ Call Stack \(most recent call first\): CMakeLists\.txt:[0-9]+ \(include\) diff --git a/Tests/RunCMake/find_package-CPS/MissingTransitiveComponent-stderr.txt b/Tests/RunCMake/find_package-CPS/MissingTransitiveComponent-stderr.txt index c102911757..50c4afe19b 100644 --- a/Tests/RunCMake/find_package-CPS/MissingTransitiveComponent-stderr.txt +++ b/Tests/RunCMake/find_package-CPS/MissingTransitiveComponent-stderr.txt @@ -5,7 +5,7 @@ CMake Error in cps/[Tt]ransitive[Mm]issing\.cps: The following configuration files were considered but not accepted: ( [^ -]*/Tests/RunCMake/find_package-CPS/cps/[Cc]omponent[Tt]est\.cps, version: unknown)+ +]*/Tests/RunCMake/find_package-CPS/cps/[Cc]omponent[Tt]est\.cps, version: 1\.0)+ Call Stack \(most recent call first\): MissingTransitiveComponent\.cmake:[0-9]+ \(find_package\) diff --git a/Tests/RunCMake/find_package-CPS/cps/componenttest.cps b/Tests/RunCMake/find_package-CPS/cps/componenttest.cps index ef49af4366..dbbe0956b3 100644 --- a/Tests/RunCMake/find_package-CPS/cps/componenttest.cps +++ b/Tests/RunCMake/find_package-CPS/cps/componenttest.cps @@ -1,6 +1,7 @@ { "cps_version": "0.13", "name": "ComponentTest", + "version": "1.0", "cps_path": "@prefix@/cps", "components": {} }