mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-12 17:30:17 -06:00
This makes binaries independent of the build directory by not embedding the build directory via RPATH. The tests are partially based on the existing RuntimePath test, but with the check moved into a POST_BUILD command such that it can be skipped when the platform lacks support. Fixes: #18413
33 lines
1.2 KiB
CMake
33 lines
1.2 KiB
CMake
include(RunCMake)
|
|
|
|
|
|
function(run_SymlinkImplicit)
|
|
# Use a single build tree for a few tests without cleaning.
|
|
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/SymlinkImplicit-build)
|
|
set(RunCMake_TEST_NO_CLEAN 1)
|
|
if(NOT RunCMake_GENERATOR_IS_MULTI_CONFIG)
|
|
set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Debug)
|
|
endif()
|
|
file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
|
|
file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
|
|
run_cmake(SymlinkImplicit)
|
|
run_cmake_command(SymlinkImplicit-build ${CMAKE_COMMAND} --build . --config Debug)
|
|
run_cmake_command(SymlinkImplicitCheck
|
|
${CMAKE_COMMAND} -Ddir=${RunCMake_TEST_BINARY_DIR} -P ${RunCMake_SOURCE_DIR}/SymlinkImplicitCheck.cmake)
|
|
endfunction()
|
|
run_SymlinkImplicit()
|
|
|
|
function(run_Relative)
|
|
# Use a single build tree for a few tests without cleaning.
|
|
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/Relative-build)
|
|
set(RunCMake_TEST_NO_CLEAN 1)
|
|
if(NOT RunCMake_GENERATOR_IS_MULTI_CONFIG)
|
|
set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Debug)
|
|
endif()
|
|
file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
|
|
file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
|
|
run_cmake(Relative)
|
|
run_cmake_command(Relative-build ${CMAKE_COMMAND} --build . --config Debug)
|
|
endfunction()
|
|
run_Relative()
|