summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2024-08-02 13:47:40 (GMT)
committerKitware Robot <kwrobot@kitware.com>2024-08-02 13:47:50 (GMT)
commit35e908e0dc0930edb2b1e7db4fa8d67f00f9cc98 (patch)
tree6d1dbfe3bd78c3caa9bd8fd64b63597c53b80039
parent97d096388884b07a1317a4721ec92e7b56f76d73 (diff)
parent866917657621ee74720f5abcee290b50341882c9 (diff)
downloadCMake-35e908e0dc0930edb2b1e7db4fa8d67f00f9cc98.zip
CMake-35e908e0dc0930edb2b1e7db4fa8d67f00f9cc98.tar.gz
CMake-35e908e0dc0930edb2b1e7db4fa8d67f00f9cc98.tar.bz2
Merge topic 'swift-install-names' into release-3.30
8669176576 Swift: Fix INSTALL_NAME_DIR under CMP0157 NEW behavior Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !9692
-rw-r--r--Modules/CMakeSwiftInformation.cmake2
-rw-r--r--Tests/RunCMake/Swift/SwiftLibraryModuleCommand-check-stdout-darwin.txt13
-rw-r--r--Tests/RunCMake/Swift/SwiftLibraryModuleCommand-check-stdout-windows.txt13
-rw-r--r--Tests/RunCMake/Swift/SwiftLibraryModuleCommand-check-stdout.txt14
-rw-r--r--Tests/RunCMake/Swift/SwiftLibraryModuleCommand.cmake1
5 files changed, 39 insertions, 4 deletions
diff --git a/Modules/CMakeSwiftInformation.cmake b/Modules/CMakeSwiftInformation.cmake
index 60df6a2..869a508 100644
--- a/Modules/CMakeSwiftInformation.cmake
+++ b/Modules/CMakeSwiftInformation.cmake
@@ -134,7 +134,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)
diff --git a/Tests/RunCMake/Swift/SwiftLibraryModuleCommand-check-stdout-darwin.txt b/Tests/RunCMake/Swift/SwiftLibraryModuleCommand-check-stdout-darwin.txt
new file mode 100644
index 0000000..20c656d
--- /dev/null
+++ b/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
diff --git a/Tests/RunCMake/Swift/SwiftLibraryModuleCommand-check-stdout-windows.txt b/Tests/RunCMake/Swift/SwiftLibraryModuleCommand-check-stdout-windows.txt
new file mode 100644
index 0000000..220a805
--- /dev/null
+++ b/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
diff --git a/Tests/RunCMake/Swift/SwiftLibraryModuleCommand-check-stdout.txt b/Tests/RunCMake/Swift/SwiftLibraryModuleCommand-check-stdout.txt
index 7e7fc7d..c3530aa 100644
--- a/Tests/RunCMake/Swift/SwiftLibraryModuleCommand-check-stdout.txt
+++ b/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
diff --git a/Tests/RunCMake/Swift/SwiftLibraryModuleCommand.cmake b/Tests/RunCMake/Swift/SwiftLibraryModuleCommand.cmake
index af4aede..700edf0 100644
--- a/Tests/RunCMake/Swift/SwiftLibraryModuleCommand.cmake
+++ b/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)