Tests: Add cases for CMAKE_PARENT_LIST_FILE with include() and find_package()

Issue: #25026
Co-authored-by: Brad King <brad.king@kitware.com>
This commit is contained in:
Benjamin Buch
2025-03-22 19:46:51 +01:00
committed by Brad King
parent 002979e145
commit 0b85f8f137
20 changed files with 65 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
-- ParentVariable\.cmake: '[^']*/Tests/RunCMake/find_package/CMakeLists\.txt'
-- ParentVariable/PrimaryConfig\.cmake: '[^']*/Tests/RunCMake/find_package/ParentVariable\.cmake'
-- ParentVariable/SecondaryConfig\.cmake: '[^']*/Tests/RunCMake/find_package/ParentVariable/PrimaryConfig\.cmake'
-- ParentVariable/PrimaryConfig\.cmake: '[^']*/Tests/RunCMake/find_package/ParentVariable/PrimaryConfig\.cmake'
-- ParentVariable\.cmake: '[^']*/Tests/RunCMake/find_package/ParentVariable\.cmake'

View File

@@ -0,0 +1,4 @@
message(STATUS "ParentVariable\.cmake: '${CMAKE_PARENT_LIST_FILE}'")
set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_SOURCE_DIR}/ParentVariable)
find_package(Primary QUIET CONFIG REQUIRED)
message(STATUS "ParentVariable\.cmake: '${CMAKE_PARENT_LIST_FILE}'")

View File

@@ -0,0 +1,3 @@
message(STATUS "ParentVariable/PrimaryConfig\.cmake: '${CMAKE_PARENT_LIST_FILE}'")
find_package(Secondary QUIET CONFIG REQUIRED)
message(STATUS "ParentVariable/PrimaryConfig\.cmake: '${CMAKE_PARENT_LIST_FILE}'")

View File

@@ -0,0 +1 @@
message(STATUS "ParentVariable/SecondaryConfig\.cmake: '${CMAKE_PARENT_LIST_FILE}'")

View File

@@ -87,6 +87,7 @@ run_cmake(REGISTRY_VIEW-no-view)
run_cmake(REGISTRY_VIEW-wrong-view)
run_cmake(REGISTRY_VIEW-propagated)
run_cmake(DebugRoot)
run_cmake(ParentVariable)
if(CMAKE_HOST_WIN32 AND MINGW)
run_cmake(MSYSTEM_PREFIX)

View File

@@ -1,3 +1,9 @@
cmake_minimum_required(VERSION 3.10)
project(${RunCMake_TEST} NONE)
if(RunCMake_TEST STREQUAL "ParentVariableRoot")
message(STATUS "CMakeLists.txt: '${CMAKE_PARENT_LIST_FILE}'")
include(ParentVariableRoot/include1.cmake)
message(STATUS "CMakeLists.txt: '${CMAKE_PARENT_LIST_FILE}'")
return()
endif()
include(${RunCMake_TEST}.cmake)

View File

@@ -0,0 +1,5 @@
-- CMakeLists\.txt: '[^']*/Tests/RunCMake/include/CMakeLists\.txt'
-- ParentVariableRoot/include1\.cmake: '[^']*/Tests/RunCMake/include/CMakeLists\.txt'
-- ParentVariableRoot/include2\.cmake: '[^']*/Tests/RunCMake/include/ParentVariableRoot/include1\.cmake'
-- ParentVariableRoot/include1\.cmake: '[^']*/Tests/RunCMake/include/ParentVariableRoot/include1\.cmake'
-- CMakeLists\.txt: '[^']*/Tests/RunCMake/include/CMakeLists\.txt'

View File

@@ -0,0 +1,3 @@
message(STATUS "ParentVariableRoot/include1.cmake: '${CMAKE_PARENT_LIST_FILE}'")
include(ParentVariableRoot/include2.cmake)
message(STATUS "ParentVariableRoot/include1.cmake: '${CMAKE_PARENT_LIST_FILE}'")

View File

@@ -0,0 +1 @@
message(STATUS "ParentVariableRoot/include2.cmake: '${CMAKE_PARENT_LIST_FILE}'")

View File

@@ -0,0 +1,5 @@
-- ParentVariableScript\.cmake: ''
-- ParentVariableScript/include1\.cmake: '[^']*/Tests/RunCMake/include/ParentVariableScript\.cmake'
-- ParentVariableScript/include2\.cmake: '[^']*/Tests/RunCMake/include/ParentVariableScript/include1\.cmake'
-- ParentVariableScript/include1\.cmake: '[^']*/Tests/RunCMake/include/ParentVariableScript/include1\.cmake'
-- ParentVariableScript\.cmake: '[^']*/Tests/RunCMake/include/ParentVariableScript\.cmake'

View File

@@ -0,0 +1,6 @@
if(DEFINED CMAKE_PARENT_LIST_FILE)
message(SEND_ERROR "`CMAKE_PARENT_LIST_FILE` is not expected to be set here")
endif()
message(STATUS "ParentVariableScript.cmake: '${CMAKE_PARENT_LIST_FILE}'")
include("${CMAKE_CURRENT_LIST_DIR}/ParentVariableScript/include1.cmake")
message(STATUS "ParentVariableScript.cmake: '${CMAKE_PARENT_LIST_FILE}'")

View File

@@ -0,0 +1,3 @@
message(STATUS "ParentVariableScript/include1\.cmake: '${CMAKE_PARENT_LIST_FILE}'")
include("${CMAKE_CURRENT_LIST_DIR}/include2.cmake")
message(STATUS "ParentVariableScript/include1\.cmake: '${CMAKE_PARENT_LIST_FILE}'")

View File

@@ -0,0 +1 @@
message(STATUS "ParentVariableScript/include2.cmake: '${CMAKE_PARENT_LIST_FILE}'")

View File

@@ -0,0 +1,7 @@
-- ParentVariableSubDir/CMakeLists\.txt: '[^']*/Tests/RunCMake/include/ParentVariableSubDir/CMakeLists\.txt'
-- ParentVariableSubDir/include1\.cmake: '[^']*/Tests/RunCMake/include/ParentVariableSubDir/CMakeLists\.txt'
-- ParentVariableSubDir/Inc/include2.cmake: '[^']*/Tests/RunCMake/include/ParentVariableSubDir/include1\.cmake'
-- ParentVariableSubDir/include1\.cmake: '[^']*/Tests/RunCMake/include/ParentVariableSubDir/include1\.cmake'
-- ParentVariableSubDir/Inc/CMakeLists\.txt: '[^']*/Tests/RunCMake/include/ParentVariableSubDir/include1\.cmake'
-- ParentVariableSubDir/include1\.cmake: '[^']*/Tests/RunCMake/include/ParentVariableSubDir/include1\.cmake'
-- ParentVariableSubDir/CMakeLists\.txt: '[^']*/Tests/RunCMake/include/ParentVariableSubDir/CMakeLists\.txt'

View File

@@ -0,0 +1 @@
add_subdirectory(ParentVariableSubDir)

View File

@@ -0,0 +1,3 @@
message(STATUS "ParentVariableSubDir/CMakeLists.txt: '${CMAKE_PARENT_LIST_FILE}'")
include("include1.cmake")
message(STATUS "ParentVariableSubDir/CMakeLists.txt: '${CMAKE_PARENT_LIST_FILE}'")

View File

@@ -0,0 +1 @@
message(STATUS "ParentVariableSubDir/Inc/CMakeLists.txt: '${CMAKE_PARENT_LIST_FILE}'")

View File

@@ -0,0 +1 @@
message(STATUS "ParentVariableSubDir/Inc/include2.cmake: '${CMAKE_PARENT_LIST_FILE}'")

View File

@@ -0,0 +1,5 @@
message(STATUS "ParentVariableSubDir/include1.cmake: '${CMAKE_PARENT_LIST_FILE}'")
include("Inc/include2.cmake")
message(STATUS "ParentVariableSubDir/include1.cmake: '${CMAKE_PARENT_LIST_FILE}'")
include("Inc/CMakeLists.txt")
message(STATUS "ParentVariableSubDir/include1.cmake: '${CMAKE_PARENT_LIST_FILE}'")

View File

@@ -6,6 +6,9 @@ run_cmake(CMP0024-NEW)
run_cmake(ExportExportInclude)
run_cmake(IncludeIsDirectory)
run_cmake(IncludeMalformed)
run_cmake(ParentVariableRoot)
run_cmake(ParentVariableSubDir)
run_cmake_script(ParentVariableScript)
run_cmake(CMP0146-OLD)
run_cmake(CMP0146-WARN)