Browse Source

Merge topic 'swift-install-names'

8669176576 Swift: Fix INSTALL_NAME_DIR under CMP0157 NEW behavior

Acked-by: Kitware Robot <[email protected]>
Tested-by: buildbot <[email protected]>
Merge-request: !9692
Brad King 1 year ago
parent
commit
618c60367f

+ 1 - 1
Modules/CMakeSwiftInformation.cmake

@@ -125,7 +125,7 @@ if(CMAKE_Swift_COMPILATION_MODE_DEFAULT)
   endif()
 
   if(NOT CMAKE_Swift_CREATE_SHARED_LIBRARY)
-    set(CMAKE_Swift_CREATE_SHARED_LIBRARY "<CMAKE_Swift_COMPILER> ${CMAKE_Swift_PARALLEL_FLAGS} -emit-library <CMAKE_SHARED_LIBRARY_Swift_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> ${CMAKE_Swift_IMPLIB_LINKER_FLAGS} <SONAME_FLAG> <TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
+    set(CMAKE_Swift_CREATE_SHARED_LIBRARY "<CMAKE_Swift_COMPILER> ${CMAKE_Swift_PARALLEL_FLAGS} -emit-library <CMAKE_SHARED_LIBRARY_Swift_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> ${CMAKE_Swift_IMPLIB_LINKER_FLAGS} <SONAME_FLAG> <TARGET_INSTALLNAME_DIR><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
   endif()
 
   if(NOT CMAKE_Swift_CREATE_SHARED_MODULE)

+ 13 - 0
Tests/RunCMake/Swift/SwiftLibraryModuleCommand-check-stdout-darwin.txt

@@ -0,0 +1,13 @@
+.*swiftc(.exe)? [^
+]* -parse-as-library -static -emit-module [^
+]* -module-name StaticLibrary [^
+]*
+.*swiftc(.exe)? [^
+]* -parse-as-library -emit-module [^
+]* -module-name DynamicLibrary [^
+]*
+.*swiftc(.exe)? [^
+]* -emit-library [^
+]* -Xlinker -install_name -Xlinker @rpath/libDynamicLibrary.dylib -o ([A-Za-z]+/)?libDynamicLibrary.dylib [^
+]*
+.*swiftc(.exe)? -j [0-9]+ -num-threads [0-9]+ -c  -module-name Executable

+ 13 - 0
Tests/RunCMake/Swift/SwiftLibraryModuleCommand-check-stdout-windows.txt

@@ -0,0 +1,13 @@
+.*swiftc(.exe)? [^
+]* -parse-as-library -static -emit-module [^
+]* -module-name StaticLibrary [^
+]*
+.*swiftc(.exe)? [^
+]* -parse-as-library -emit-module [^
+]* -module-name DynamicLibrary [^
+]*
+.*swiftc(.exe)? [^
+]* -emit-library [^
+]* -Xlinker -implib:DynamicLibrary.lib +-o ([A-Za-z]+/)?DynamicLibrary.dll [^
+]*
+.*swiftc(.exe)? -j [0-9]+ -num-threads [0-9]+ -c  -module-name Executable

+ 11 - 3
Tests/RunCMake/Swift/SwiftLibraryModuleCommand-check-stdout.txt

@@ -1,5 +1,13 @@
-.*swiftc(.exe)? .* -parse-as-library -static -emit-module .* -module-name StaticLibrary [^
+.*swiftc(.exe)? [^
+]* -parse-as-library -static -emit-module [^
+]* -module-name StaticLibrary [^
 ]*
-.*swiftc(.exe)? .* -parse-as-library -emit-module .* -module-name DynamicLibrary [^
+.*swiftc(.exe)? [^
+]* -parse-as-library -emit-module [^
+]* -module-name DynamicLibrary [^
 ]*
-.*swiftc(.exe)? .* -j [0-9]* -num-threads [0-9]* -c  -module-name Executable
+.*swiftc(.exe)? [^
+]* -emit-library [^
+]* -Xlinker -soname -Xlinker libDynamicLibrary.so -o ([A-Za-z]+/)?libDynamicLibrary.so [^
+]*
+.*swiftc(.exe)? -j [0-9]+ -num-threads [0-9]+ -c  -module-name Executable

+ 1 - 0
Tests/RunCMake/Swift/SwiftLibraryModuleCommand.cmake

@@ -6,6 +6,7 @@ enable_language(Swift)
 
 add_library(StaticLibrary STATIC L.swift)
 add_library(DynamicLibrary SHARED L.swift)
+set_target_properties(DynamicLibrary PROPERTIES INSTALL_NAME_DIR "@rpath")
 add_executable(Executable E.swift)
 
 add_dependencies(DynamicLibrary StaticLibrary)