summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarmen Stoppels <me@harmenstoppels.nl>2024-06-24 15:17:19 (GMT)
committerBrad King <brad.king@kitware.com>2024-06-24 15:32:20 (GMT)
commitccbbf645522f87b38ddcaa68058f621a892e8b9f (patch)
tree288533be4c3a41d4015be55854f7d8eff772563a
parent66b5b5e326b6c64ccf12ab2634ebd1f03663d6c9 (diff)
downloadCMake-ccbbf645522f87b38ddcaa68058f621a892e8b9f.zip
CMake-ccbbf645522f87b38ddcaa68058f621a892e8b9f.tar.gz
CMake-ccbbf645522f87b38ddcaa68058f621a892e8b9f.tar.bz2
Tests/RunCMake/file-RPATH: Prepare to cover statically linked binaries
-rw-r--r--Tests/RunCMake/file-RPATH/Common.cmake19
-rw-r--r--Tests/RunCMake/file-RPATH/ELF.cmake2
-rw-r--r--Tests/RunCMake/file-RPATH/XCOFF.cmake2
3 files changed, 16 insertions, 7 deletions
diff --git a/Tests/RunCMake/file-RPATH/Common.cmake b/Tests/RunCMake/file-RPATH/Common.cmake
index 7034aad..d6d3eeb 100644
--- a/Tests/RunCMake/file-RPATH/Common.cmake
+++ b/Tests/RunCMake/file-RPATH/Common.cmake
@@ -1,12 +1,16 @@
# Prepare binaries on which to operate.
set(in "${CMAKE_CURRENT_LIST_DIR}/${format}")
set(out "${CMAKE_CURRENT_BINARY_DIR}")
-foreach(f ${names})
+foreach(f ${dynamic})
file(COPY ${in}/${f} DESTINATION ${out} NO_SOURCE_PERMISSIONS)
- list(APPEND files "${out}/${f}")
+ list(APPEND dynamic_files "${out}/${f}")
+endforeach()
+foreach(f ${static})
+ file(COPY ${in}/${f} DESTINATION ${out} NO_SOURCE_PERMISSIONS)
+ list(APPEND static_files "${out}/${f}")
endforeach()
-foreach(f ${files})
+foreach(f ${dynamic_files})
# Check for the initial RPATH.
file(RPATH_CHECK FILE "${f}" RPATH "/sample/rpath")
if(NOT EXISTS "${f}")
@@ -65,11 +69,11 @@ endforeach()
# TODO Implement RPATH_SET in XCOFF.
if(format STREQUAL "ELF")
- foreach(f ${names})
+ foreach(f ${dynamic})
file(COPY ${in}/${f} DESTINATION ${out} NO_SOURCE_PERMISSIONS)
endforeach()
- foreach(f ${files})
+ foreach(f ${dynamic_files})
# Set the RPATH.
file(RPATH_SET FILE "${f}"
NEW_RPATH "/new/rpath")
@@ -99,3 +103,8 @@ if(format STREQUAL "ELF")
endif()
endforeach()
endif()
+
+# Verify that modifying rpaths on a static library is a no-op
+foreach(f ${static_files})
+ file(RPATH_CHANGE FILE "${f}" OLD_RPATH "/rpath/foo" NEW_RPATH "/rpath/bar")
+endforeach()
diff --git a/Tests/RunCMake/file-RPATH/ELF.cmake b/Tests/RunCMake/file-RPATH/ELF.cmake
index 558b2e2..0f445e8 100644
--- a/Tests/RunCMake/file-RPATH/ELF.cmake
+++ b/Tests/RunCMake/file-RPATH/ELF.cmake
@@ -1,4 +1,4 @@
-set(names
+set(dynamic
elf32lsb.bin
elf32msb.bin
elf64lsb.bin
diff --git a/Tests/RunCMake/file-RPATH/XCOFF.cmake b/Tests/RunCMake/file-RPATH/XCOFF.cmake
index b570920..f7464c2 100644
--- a/Tests/RunCMake/file-RPATH/XCOFF.cmake
+++ b/Tests/RunCMake/file-RPATH/XCOFF.cmake
@@ -1,4 +1,4 @@
-set(names
+set(dynamic
xcoff32.bin
xcoff64.bin
)