Tests/RunCMake/find_package: test ConfigureLog behaviors (nested config)

Test behavior with `Find` module packages which chain to config modules.
This emulates CMake's shipped modules which support config packages
provided by modern upstreams.
This commit is contained in:
Ben Boeckel
2025-05-07 14:47:57 +02:00
parent e594ea8dfb
commit 63a90f13c2
6 changed files with 198 additions and 0 deletions

View File

@@ -100,4 +100,96 @@ events:
path: ".*/Tests/RunCMake/find_package/ConfigureLog/cmake/FindViaModule.cmake"
mode: "module"
version: "1.0"
-
kind: "find_package-v1"
backtrace:(
- "[^"]+")+
name: "Inner"
configs:
-
filename: "InnerConfig.cmake"
kind: "cmake"
-
filename: "inner-config.cmake"
kind: "cmake"
version_request:
exact: false
settings:
required: "optional"
quiet: false
global: false
policy_scope: true
bypass_provider: false
names:
- "Inner"
path_suffixes:
- ""
paths:
CMAKE_FIND_USE_CMAKE_PATH: true
CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true
CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true
CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true
CMAKE_FIND_USE_INSTALL_PREFIX: true
CMAKE_FIND_USE_PACKAGE_ROOT_PATH: true
CMAKE_FIND_USE_CMAKE_PACKAGE_REGISTRY: true
CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY: true
CMAKE_FIND_ROOT_PATH_MODE: "BOTH"
candidates:
-
path: ".*/CMakeFiles/pkgRedirects/InnerConfig.cmake"
mode: "config"
reason: "no_exist"
-
path: ".*/CMakeFiles/pkgRedirects/inner-config.cmake"
mode: "config"
reason: "no_exist"
-
path: ".*/Tests/RunCMake/find_package/ConfigureLog/InnerConfig.cmake"
mode: "config"
reason: "no_exist"
-
path: ".*/Tests/RunCMake/find_package/ConfigureLog/inner-config.cmake"
mode: "config"
reason: "no_exist"
-
path: ".*/Tests/RunCMake/find_package/ConfigureLog/cmake/InnerConfig.cmake"
mode: "config"
reason: "no_exist"
-
path: ".*/Tests/RunCMake/find_package/ConfigureLog/cmake/inner-config.cmake"
mode: "config"
reason: "no_exist"
found:
path: ".*/Tests/RunCMake/find_package/ConfigureLog/lib/cmake/Inner/InnerConfig.cmake"
mode: "config"
version: "1.1"
-
kind: "find_package-v1"
backtrace:(
- "[^"]+")+
name: "WithInner"
version_request:
exact: false
settings:
required: "optional"
quiet: false
global: false
policy_scope: true
bypass_provider: false
path_suffixes:
- ""
paths:
CMAKE_FIND_USE_CMAKE_PATH: true
CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true
CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true
CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true
CMAKE_FIND_USE_INSTALL_PREFIX: true
CMAKE_FIND_USE_PACKAGE_ROOT_PATH: true
CMAKE_FIND_USE_CMAKE_PACKAGE_REGISTRY: true
CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY: true
CMAKE_FIND_ROOT_PATH_MODE: "BOTH"
found:
path: ".*/Tests/RunCMake/find_package/ConfigureLog/cmake/FindWithInner.cmake"
mode: "module"
version: "1.1"
\.\.\.$

View File

@@ -93,5 +93,103 @@ CMake Debug Log at ConfigureLog.cmake:[0-9]+ \(find_package\):
.*/Tests/RunCMake/find_package/ConfigureLog/cmake/FindViaModule.cmake
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)
CMake Debug Log at ConfigureLog/cmake/FindWithInner.cmake:[0-9]+ \(find_package\):
find_package considered the following paths for FindInner.cmake:
.*/Tests/RunCMake/find_package/ConfigureLog/cmake/FindInner.cmake
.*/Modules/FindInner.cmake
The file was not found.
The internally managed CMAKE_FIND_PACKAGE_REDIRECTS_DIR.
.*/CMakeFiles/pkgRedirects
<PackageName>_ROOT CMake variable \[CMAKE_FIND_USE_PACKAGE_ROOT_PATH\].
none
CMAKE_PREFIX_PATH variable \[CMAKE_FIND_USE_CMAKE_PATH\].
.*/Tests/RunCMake/find_package/ConfigureLog
CMAKE_FRAMEWORK_PATH and CMAKE_APPBUNDLE_PATH variables
\[CMAKE_FIND_USE_CMAKE_PATH\].
Env variable Inner_DIR \[CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH\].
none
CMAKE_PREFIX_PATH env variable \[CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH\].
( [^
]*
)*
CMAKE_FRAMEWORK_PATH and CMAKE_APPBUNDLE_PATH env variables
\[CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH\].
(
none
)?
Paths specified by the find_package HINTS option.
none
Standard system environment variables
\[CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH\].
( [^
]*
)*
CMake User Package Registry \[CMAKE_FIND_USE_PACKAGE_REGISTRY\].
none
CMake variables defined in the Platform file
\[CMAKE_FIND_USE_CMAKE_SYSTEM_PATH\].
( [^
]*
)*
CMake System Package Registry
\[CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY\].
none
Paths specified by the find_package PATHS option.
none
find_package considered the following locations for Inner's Config module:
.*/CMakeFiles/pkgRedirects/InnerConfig.cmake
.*/CMakeFiles/pkgRedirects/inner-config.cmake
.*/Tests/RunCMake/find_package/ConfigureLog/InnerConfig.cmake
.*/Tests/RunCMake/find_package/ConfigureLog/inner-config.cmake
.*/Tests/RunCMake/find_package/ConfigureLog/cmake/InnerConfig.cmake
.*/Tests/RunCMake/find_package/ConfigureLog/cmake/inner-config.cmake
.*/Tests/RunCMake/find_package/ConfigureLog/lib/cmake/Inner/InnerConfig.cmake
The file was found at
.*/Tests/RunCMake/find_package/ConfigureLog/lib/cmake/Inner/InnerConfig.cmake
Call Stack \(most recent call first\):
ConfigureLog.cmake:[0-9]+ \(find_package\)
CMakeLists.txt:[0-9]+ \(include\)
CMake Debug Log at ConfigureLog.cmake:[0-9]+ \(find_package\):
find_package considered the following paths for FindWithInner.cmake:
.*/Modules/FindWithInner.cmake
The file was found at
.*/Tests/RunCMake/find_package/ConfigureLog/cmake/FindWithInner.cmake
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)$

View File

@@ -19,3 +19,6 @@ find_package(ViaConfig)
# Find a module
find_package(ViaModule)
# Find a module that chains to a config package
find_package(WithInner)

View File

@@ -0,0 +1,3 @@
find_package(Inner)
set("${CMAKE_FIND_PACKAGE_NAME}_FOUND" "${Inner_FOUND}")
set("${CMAKE_FIND_PACKAGE_NAME}_VERSION" "${Inner_VERSION}")

View File

@@ -0,0 +1 @@
set("${CMAKE_FIND_PACKAGE_NAME}_FOUND" 1)

View File

@@ -0,0 +1 @@
set(PACKAGE_VERSION "1.1")