Tests/RunCMake/find_package: test ConfigureLog behaviors (version requests)

This commit is contained in:
Ben Boeckel
2025-05-07 14:47:57 +02:00
parent 3b01fdb761
commit 632661795d
5 changed files with 170 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
set("${CMAKE_FIND_PACKAGE_NAME}_VERSION" "1.2")
if (${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION_EXACT AND
NOT ${CMAKE_FIND_PACKAGE_NAME}_VERSION VERSION_EQUAL ${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION)
set("${CMAKE_FIND_PACKAGE_NAME}_FOUND" 0)
set("${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE"
"Not an EXACT version match")
elseif (DEFINED ${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION_RANGE AND
(${CMAKE_FIND_PACKAGE_NAME}_VERSION VERSION_LESS ${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION_MIN OR
(${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND
${CMAKE_FIND_PACKAGE_NAME}_VERSION VERSION_GREATER_EQUAL ${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION_MAX) OR
(${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND
${CMAKE_FIND_PACKAGE_NAME}_VERSION VERSION_GREATER ${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION_MAX)))
set("${CMAKE_FIND_PACKAGE_NAME}_FOUND" 0)
set("${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE"
"Out-of-range version request")
elseif (DEFINED ${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION AND
${CMAKE_FIND_PACKAGE_NAME}_VERSION VERSION_LESS ${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION)
set("${CMAKE_FIND_PACKAGE_NAME}_FOUND" 0)
set("${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE"
"Insufficient version")
else ()
set("${CMAKE_FIND_PACKAGE_NAME}_FOUND" 1)
endif ()

View File

@@ -0,0 +1,109 @@
^
---
events:
-
kind: "message-v1"
backtrace:(
- "[^"]+")+
message: \|(
+ [^
]*)*
-
kind: "find_package-v1"
backtrace:(
- "[^"]+")+
name: "ParameterCheck"
version_request:
version: "1.0"
version_complete: "1.0"
exact: true
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"
candidates:
-
path: ".*/Tests/RunCMake/find_package/ConfigureLog/cmake/FindParameterCheck.cmake"
mode: "module"
reason: "not_found"
message: "Not an EXACT version match"
found: null
-
kind: "find_package-v1"
backtrace:(
- "[^"]+")+
name: "ParameterCheck"
version_request:
version: "1.0"
version_complete: "1.0...1.5"
min: "INCLUDE"
max: "INCLUDE"
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/FindParameterCheck.cmake"
mode: "module"
version: "1.2"
-
kind: "find_package-v1"
backtrace:(
- "[^"]+")+
name: "ParameterCheck"
version_request:
version: "1.2"
version_complete: "1.2"
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/FindParameterCheck.cmake"
mode: "module"
version: "1.2"
\.\.\.$

View File

@@ -0,0 +1,25 @@
^CMake Debug Log at ConfigureLogParameters.cmake:[0-9]+ \(find_package\):
find_package considered the following paths for FindParameterCheck.cmake:
.*/Modules/FindParameterCheck.cmake
The file was found at
.*/Tests/RunCMake/find_package/ConfigureLog/cmake/FindParameterCheck.cmake
The module is considered not found due to ParameterCheck_FOUND being FALSE.
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\)(
CMake Debug Log at ConfigureLogParameters.cmake:[0-9]+ \(find_package\):
find_package considered the following paths for FindParameterCheck.cmake:
.*/Modules/FindParameterCheck.cmake
The file was found at
.*/Tests/RunCMake/find_package/ConfigureLog/cmake/FindParameterCheck.cmake
Call Stack \(most recent call first\):
CMakeLists.txt:[0-9]+ \(include\))+$

View File

@@ -0,0 +1,11 @@
list(INSERT CMAKE_MODULE_PATH 0
"${CMAKE_CURRENT_LIST_DIR}/ConfigureLog/cmake")
list(INSERT CMAKE_PREFIX_PATH 0
"${CMAKE_CURRENT_LIST_DIR}/ConfigureLog")
set(CMAKE_FIND_DEBUG_MODE 1)
# Parameter testing
find_package(ParameterCheck 1.0 EXACT)
find_package(ParameterCheck 1.0...1.5)
find_package(ParameterCheck 1.2)

View File

@@ -5,6 +5,7 @@ run_cmake(CMP0074-OLD)
run_cmake(ComponentRecursion)
run_cmake(ComponentRequiredAndOptional)
run_cmake(ConfigureLog)
run_cmake(ConfigureLogParameters)
run_cmake(EmptyRoots)
run_cmake(FromPATHEnv)
run_cmake_with_options(FromPATHEnvDebugPkg --debug-find-pkg=Resolved)