Files
CMake/Tests/RunCMake/GNUInstallDirs/RunCMakeTest.cmake
T
Cristian Le 2e88a3efc2 GNUInstallDirs: Fix regression on -DCMAKE_INSTALL_<dir>=<default> in /usr
Fix commit 9789f7d05e (GNUInstallDirs: Add internal helper to compute
specific defaults, 2025-03-28, v4.1.0-rc1~384^2~3) to avoid updating
explicitly-specified cache entries on the first run.  Do not reset the
default value until at least the second run, during which we have
`_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX` already defined.

Fixes: #27211
2025-09-10 16:03:43 -04:00

55 lines
1.1 KiB
CMake

include(RunCMake)
if(SYSTEM_NAME STREQUAL "FreeBSD")
set(variant "-FreeBSD")
elseif(SYSTEM_NAME MATCHES "^(([^k].*)?BSD|DragonFly)$")
set(variant "-BSD")
elseif(EXISTS "/etc/debian_version")
set(variant "-Debian")
else()
set(variant "")
endif()
foreach(case
Opt
Root
Usr
UsrLocal
)
set(RunCMake-stderr-file ${case}${variant}-stderr.txt)
run_cmake(${case})
unset(RunCMake-stderr-file)
endforeach()
block()
set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/Reconfigure-build")
set(RunCMake-stderr-file UsrLocal${variant}-stderr.txt)
run_cmake_with_options(Reconfigure)
set(RunCMake_TEST_NO_CLEAN 1)
foreach(case
Opt
Root
Usr
UsrLocal
)
set(RunCMake-stderr-file ${case}${variant}-stderr.txt)
run_cmake_with_options(Reconfigure -Dcase=${case})
endforeach()
endblock()
run_cmake(GetAbs)
run_cmake(NoSystem)
foreach(case
Opt
Root
Usr
UsrLocal
)
run_cmake_with_options(ExplicitDefaults-${case}
-DCMAKE_INSTALL_BINDIR=bin
-DCMAKE_INSTALL_INCLUDEDIR=include
-DCMAKE_INSTALL_LIBDIR=lib
)
endforeach()