Tests/RunCMake/file-RPATH: Prepare to cover statically linked binaries

This commit is contained in:
Harmen Stoppels
2024-06-24 17:17:19 +02:00
committed by Brad King
parent 66b5b5e326
commit ccbbf64552
3 changed files with 16 additions and 7 deletions

View File

@@ -1,12 +1,16 @@
# Prepare binaries on which to operate. # Prepare binaries on which to operate.
set(in "${CMAKE_CURRENT_LIST_DIR}/${format}") set(in "${CMAKE_CURRENT_LIST_DIR}/${format}")
set(out "${CMAKE_CURRENT_BINARY_DIR}") set(out "${CMAKE_CURRENT_BINARY_DIR}")
foreach(f ${names}) foreach(f ${dynamic})
file(COPY ${in}/${f} DESTINATION ${out} NO_SOURCE_PERMISSIONS) 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() endforeach()
foreach(f ${files}) foreach(f ${dynamic_files})
# Check for the initial RPATH. # Check for the initial RPATH.
file(RPATH_CHECK FILE "${f}" RPATH "/sample/rpath") file(RPATH_CHECK FILE "${f}" RPATH "/sample/rpath")
if(NOT EXISTS "${f}") if(NOT EXISTS "${f}")
@@ -65,11 +69,11 @@ endforeach()
# TODO Implement RPATH_SET in XCOFF. # TODO Implement RPATH_SET in XCOFF.
if(format STREQUAL "ELF") if(format STREQUAL "ELF")
foreach(f ${names}) foreach(f ${dynamic})
file(COPY ${in}/${f} DESTINATION ${out} NO_SOURCE_PERMISSIONS) file(COPY ${in}/${f} DESTINATION ${out} NO_SOURCE_PERMISSIONS)
endforeach() endforeach()
foreach(f ${files}) foreach(f ${dynamic_files})
# Set the RPATH. # Set the RPATH.
file(RPATH_SET FILE "${f}" file(RPATH_SET FILE "${f}"
NEW_RPATH "/new/rpath") NEW_RPATH "/new/rpath")
@@ -99,3 +103,8 @@ if(format STREQUAL "ELF")
endif() endif()
endforeach() endforeach()
endif() 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()

View File

@@ -1,4 +1,4 @@
set(names set(dynamic
elf32lsb.bin elf32lsb.bin
elf32msb.bin elf32msb.bin
elf64lsb.bin elf64lsb.bin

View File

@@ -1,4 +1,4 @@
set(names set(dynamic
xcoff32.bin xcoff32.bin
xcoff64.bin xcoff64.bin
) )