diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx index f75361fbab..23083b0146 100644 --- a/Source/cmFindPackageCommand.cxx +++ b/Source/cmFindPackageCommand.cxx @@ -2873,14 +2873,13 @@ bool cmFindPackageCommand::FindConfigFile(std::string const& dir, this->DebugBuffer = cmStrCat(this->DebugBuffer, " ", file, '\n'); } if (cmSystemTools::FileExists(file, true)) { + // Allow resolving symlinks when the config file is found through a link + if (this->UseRealPath) { + file = cmSystemTools::GetRealPath(file); + } else { + file = cmSystemTools::ToNormalizedPathOnDisk(file); + } if (this->CheckVersion(file)) { - // Allow resolving symlinks when the config file is found through a - // link - if (this->UseRealPath) { - file = cmSystemTools::GetRealPath(file); - } else { - file = cmSystemTools::ToNormalizedPathOnDisk(file); - } foundMode = cmFindPackageCommand::FoundMode(config.Type); return true; } diff --git a/Tests/RunCMake/find_package/PackageRootRelative-stdout.txt b/Tests/RunCMake/find_package/PackageRootRelative-stdout.txt new file mode 100644 index 0000000000..e99d37d447 --- /dev/null +++ b/Tests/RunCMake/find_package/PackageRootRelative-stdout.txt @@ -0,0 +1,2 @@ +-- Relative_ROOT='root' +-- Relative_DIR='[^']*/Tests/RunCMake/find_package/PackageRootRelative-build/root' diff --git a/Tests/RunCMake/find_package/PackageRootRelative.cmake b/Tests/RunCMake/find_package/PackageRootRelative.cmake new file mode 100644 index 0000000000..3d63753477 --- /dev/null +++ b/Tests/RunCMake/find_package/PackageRootRelative.cmake @@ -0,0 +1,7 @@ +cmake_policy(SET CMP0074 NEW) +set(Relative_ROOT root) +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/root/RelativeConfig.cmake" "") +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/root/RelativeConfigVersion.cmake" "set(PACKAGE_VERSION 1)") +find_package(Relative) +message(STATUS "Relative_ROOT='${Relative_ROOT}'") +message(STATUS "Relative_DIR='${Relative_DIR}'") diff --git a/Tests/RunCMake/find_package/RunCMakeTest.cmake b/Tests/RunCMake/find_package/RunCMakeTest.cmake index 10f3453514..969d6d7bc1 100644 --- a/Tests/RunCMake/find_package/RunCMakeTest.cmake +++ b/Tests/RunCMake/find_package/RunCMakeTest.cmake @@ -39,6 +39,7 @@ run_cmake_with_options(ModuleModeDebugPkg --debug-find-pkg=Foo,Zot) run_cmake(PackageRoot) run_cmake(PackageRootNestedConfig) run_cmake(PackageRootNestedModule) +run_cmake(PackageRootRelative) run_cmake(PackageVarOverridesOptional) run_cmake(PolicyPush) run_cmake(PolicyPop)