diff options
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/RunCMake/install/RunCMakeTest.cmake | 4 | ||||
-rw-r--r-- | Tests/RunCMake/install/TARGETS-NAMELINK-No-Tweak.cmake | 20 |
2 files changed, 24 insertions, 0 deletions
diff --git a/Tests/RunCMake/install/RunCMakeTest.cmake b/Tests/RunCMake/install/RunCMakeTest.cmake index e5a0413..efafdd1 100644 --- a/Tests/RunCMake/install/RunCMakeTest.cmake +++ b/Tests/RunCMake/install/RunCMakeTest.cmake @@ -121,6 +121,10 @@ run_install_test(FILES-OPTIONAL) run_install_test(DIRECTORY-OPTIONAL) run_install_test(TARGETS-Defaults) +if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + run_install_test(TARGETS-NAMELINK-No-Tweak) +endif() + set(RunCMake_TEST_OPTIONS "-DCMAKE_INSTALL_BINDIR:PATH=mybin" "-DCMAKE_INSTALL_LIBDIR:PATH=mylib" diff --git a/Tests/RunCMake/install/TARGETS-NAMELINK-No-Tweak.cmake b/Tests/RunCMake/install/TARGETS-NAMELINK-No-Tweak.cmake new file mode 100644 index 0000000..879f4b8 --- /dev/null +++ b/Tests/RunCMake/install/TARGETS-NAMELINK-No-Tweak.cmake @@ -0,0 +1,20 @@ +enable_language(C) + +add_library(foo SHARED obj1.c) +set_target_properties(foo PROPERTIES + VERSION 1.0 + SOVERSION 1 + INSTALL_RPATH "$ORIGIN" + ) +install(TARGETS foo DESTINATION lib) + +# Replace the .so "namelink" symlink with a linker script. +# It is no longer a symlink, so any install tweaks would break. +# This verifies that no install tweaks are added for the namelink. +set(linker_script "INPUT($<TARGET_SONAME_FILE_NAME:foo>)") +add_custom_command(TARGET foo POST_BUILD + COMMAND "${CMAKE_COMMAND}" -E remove "$<TARGET_LINKER_FILE:foo>" + COMMAND "${CMAKE_COMMAND}" -E echo "${linker_script}" > "$<TARGET_LINKER_FILE:foo>" + COMMENT "Generating linker script: '${linker_script}' as file $<TARGET_LINKER_FILE:foo>" + VERBATIM + ) |