diff --git a/CMakeLists.txt b/CMakeLists.txt index b4d91e2ee24d5..79eed8a3c9452 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -253,9 +253,15 @@ option(SWIFT_RUNTIME_CRASH_REPORTER_CLIENT set(SWIFT_DARWIN_XCRUN_TOOLCHAIN "XcodeDefault" CACHE STRING "The name of the toolchain to pass to 'xcrun'") -set(SWIFT_DARWIN_STDLIB_INSTALL_NAME_DIR "@rpath" CACHE STRING +set(SWIFT_DARWIN_STDLIB_INSTALL_NAME_DIR "/usr/lib/swift" CACHE STRING "The directory of the install_name for standard library dylibs") +# We don't want to use the same install_name_dir as the standard library which +# will be installed in /usr/lib/swift. These private libraries should continue +# to use @rpath for now. +set(SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR "@rpath" CACHE STRING + "The directory of the install_name for the private standard library dylibs") + set(SWIFT_DARWIN_DEPLOYMENT_VERSION_OSX "10.9" CACHE STRING "Minimum deployment target version for OS X") diff --git a/cmake/modules/AddSwift.cmake b/cmake/modules/AddSwift.cmake index 368f717f50b29..9da75b643e388 100644 --- a/cmake/modules/AddSwift.cmake +++ b/cmake/modules/AddSwift.cmake @@ -739,6 +739,7 @@ function(_add_swift_library_single target name) DEPLOYMENT_VERSION_TVOS DEPLOYMENT_VERSION_WATCHOS INSTALL_IN_COMPONENT + DARWIN_INSTALL_NAME_DIR MODULE_TARGET SDK) set(SWIFTLIB_SINGLE_multiple_parameter_options @@ -1054,6 +1055,10 @@ function(_add_swift_library_single target name) set(install_name_dir "@rpath") endif() + if(SWIFTLIB_SINGLE_DARWIN_INSTALL_NAME_DIR) + set(install_name_dir "${SWIFTLIB_SINGLE_DARWIN_INSTALL_NAME_DIR}") + endif() + set_target_properties("${target}" PROPERTIES INSTALL_NAME_DIR "${install_name_dir}") @@ -1619,7 +1624,8 @@ function(add_swift_target_library name) DEPLOYMENT_VERSION_OSX DEPLOYMENT_VERSION_TVOS DEPLOYMENT_VERSION_WATCHOS - INSTALL_IN_COMPONENT) + INSTALL_IN_COMPONENT + DARWIN_INSTALL_NAME_DIR) set(SWIFTLIB_multiple_parameter_options C_COMPILE_FLAGS DEPENDS @@ -1921,6 +1927,7 @@ function(add_swift_target_library name) ${SWIFTLIB_TARGET_LIBRARY_keyword} ${SWIFTLIB_FORCE_BUILD_OPTIMIZED_keyword} ${SWIFTLIB_NOSWIFTRT_keyword} + DARWIN_INSTALL_NAME_DIR "${SWIFTLIB_DARWIN_INSTALL_NAME_DIR}" INSTALL_IN_COMPONENT "${SWIFTLIB_INSTALL_IN_COMPONENT}" DEPLOYMENT_VERSION_OSX "${SWIFTLIB_DEPLOYMENT_VERSION_OSX}" DEPLOYMENT_VERSION_IOS "${SWIFTLIB_DEPLOYMENT_VERSION_IOS}" diff --git a/stdlib/private/OSLog/CMakeLists.txt b/stdlib/private/OSLog/CMakeLists.txt index a120f6f019c6b..62d2d6e786b19 100644 --- a/stdlib/private/OSLog/CMakeLists.txt +++ b/stdlib/private/OSLog/CMakeLists.txt @@ -11,4 +11,5 @@ add_swift_target_library(swiftOSLogPrototype SWIFT_MODULE_DEPENDS_TVOS Darwin os SWIFT_MODULE_DEPENDS_WATCHOS Darwin os TARGET_SDKS ALL_APPLE_PLATFORMS - INSTALL_IN_COMPONENT never_install) + INSTALL_IN_COMPONENT never_install + DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}") diff --git a/stdlib/private/RuntimeUnittest/CMakeLists.txt b/stdlib/private/RuntimeUnittest/CMakeLists.txt index 2989d2ad90a35..8085bf72281bf 100644 --- a/stdlib/private/RuntimeUnittest/CMakeLists.txt +++ b/stdlib/private/RuntimeUnittest/CMakeLists.txt @@ -14,5 +14,6 @@ add_swift_target_library(swiftRuntimeUnittest ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES SWIFT_MODULE_DEPENDS_HAIKU Glibc SWIFT_COMPILE_FLAGS ${swift_stdlib_unittest_compile_flags} TARGET_SDKS ALL_POSIX_PLATFORMS - INSTALL_IN_COMPONENT stdlib-experimental) + INSTALL_IN_COMPONENT stdlib-experimental + DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}") diff --git a/stdlib/private/StdlibCollectionUnittest/CMakeLists.txt b/stdlib/private/StdlibCollectionUnittest/CMakeLists.txt index 5d87a11ecf927..12b79823743f8 100644 --- a/stdlib/private/StdlibCollectionUnittest/CMakeLists.txt +++ b/stdlib/private/StdlibCollectionUnittest/CMakeLists.txt @@ -26,5 +26,6 @@ add_swift_target_library(swiftStdlibCollectionUnittest ${SWIFT_STDLIB_LIBRARY_BU SWIFT_MODULE_DEPENDS_HAIKU Glibc SWIFT_COMPILE_FLAGS ${swift_stdlib_unittest_compile_flags} TARGET_SDKS ALL_POSIX_PLATFORMS - INSTALL_IN_COMPONENT stdlib-experimental) + INSTALL_IN_COMPONENT stdlib-experimental + DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}") diff --git a/stdlib/private/StdlibUnicodeUnittest/CMakeLists.txt b/stdlib/private/StdlibUnicodeUnittest/CMakeLists.txt index 9c5072769cc3a..f8a2bf847f223 100644 --- a/stdlib/private/StdlibUnicodeUnittest/CMakeLists.txt +++ b/stdlib/private/StdlibUnicodeUnittest/CMakeLists.txt @@ -15,5 +15,6 @@ add_swift_target_library(swiftStdlibUnicodeUnittest ${SWIFT_STDLIB_LIBRARY_BUILD SWIFT_MODULE_DEPENDS_HAIKU Glibc SWIFT_COMPILE_FLAGS ${swift_stdlib_unittest_compile_flags} TARGET_SDKS ALL_POSIX_PLATFORMS - INSTALL_IN_COMPONENT stdlib-experimental) + INSTALL_IN_COMPONENT stdlib-experimental + DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}") diff --git a/stdlib/private/StdlibUnittest/CMakeLists.txt b/stdlib/private/StdlibUnittest/CMakeLists.txt index ffac1c3a5b76a..353b52b608bc4 100644 --- a/stdlib/private/StdlibUnittest/CMakeLists.txt +++ b/stdlib/private/StdlibUnittest/CMakeLists.txt @@ -42,6 +42,7 @@ add_swift_target_library(swiftStdlibUnittest ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} SWIFT_MODULE_DEPENDS_HAIKU Glibc SWIFT_MODULE_DEPENDS_WINDOWS MSVCRT WinSDK SWIFT_COMPILE_FLAGS ${swift_stdlib_unittest_compile_flags} - INSTALL_IN_COMPONENT stdlib-experimental) + INSTALL_IN_COMPONENT stdlib-experimental + DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}") set_source_files_properties(InspectValue.cpp PROPERTIES COMPILE_FLAGS -std=c++14) diff --git a/stdlib/private/StdlibUnittestFoundationExtras/CMakeLists.txt b/stdlib/private/StdlibUnittestFoundationExtras/CMakeLists.txt index 38e3017de9947..afcb30a4e1241 100644 --- a/stdlib/private/StdlibUnittestFoundationExtras/CMakeLists.txt +++ b/stdlib/private/StdlibUnittestFoundationExtras/CMakeLists.txt @@ -5,5 +5,6 @@ add_swift_target_library(swiftStdlibUnittestFoundationExtras ${SWIFT_STDLIB_LIBR UnavailableFoundationMethodThunks.mm SWIFT_MODULE_DEPENDS Foundation StdlibUnittest - INSTALL_IN_COMPONENT stdlib-experimental) + INSTALL_IN_COMPONENT stdlib-experimental + DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}") diff --git a/stdlib/private/SwiftPrivate/CMakeLists.txt b/stdlib/private/SwiftPrivate/CMakeLists.txt index 738698f6a8182..84d29a29b345e 100644 --- a/stdlib/private/SwiftPrivate/CMakeLists.txt +++ b/stdlib/private/SwiftPrivate/CMakeLists.txt @@ -17,5 +17,6 @@ add_swift_target_library(swiftSwiftPrivate ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} I SWIFT_MODULE_DEPENDS_WINDOWS MSVCRT WinSDK SWIFT_COMPILE_FLAGS ${swift_swiftprivate_compile_flags} - INSTALL_IN_COMPONENT stdlib-experimental) + INSTALL_IN_COMPONENT stdlib-experimental + DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}") diff --git a/stdlib/private/SwiftPrivateLibcExtras/CMakeLists.txt b/stdlib/private/SwiftPrivateLibcExtras/CMakeLists.txt index 46111a89a7270..16d39ddf32e74 100644 --- a/stdlib/private/SwiftPrivateLibcExtras/CMakeLists.txt +++ b/stdlib/private/SwiftPrivateLibcExtras/CMakeLists.txt @@ -18,4 +18,5 @@ add_swift_target_library(swiftSwiftPrivateLibcExtras ${SWIFT_STDLIB_LIBRARY_BUIL SWIFT_MODULE_DEPENDS_CYGWIN Glibc SWIFT_MODULE_DEPENDS_HAIKU Glibc SWIFT_MODULE_DEPENDS_WINDOWS MSVCRT WinSDK - INSTALL_IN_COMPONENT stdlib-experimental) + INSTALL_IN_COMPONENT stdlib-experimental + DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}") diff --git a/stdlib/private/SwiftPrivateThreadExtras/CMakeLists.txt b/stdlib/private/SwiftPrivateThreadExtras/CMakeLists.txt index d5fd006f00e60..891117fdbaaa4 100644 --- a/stdlib/private/SwiftPrivateThreadExtras/CMakeLists.txt +++ b/stdlib/private/SwiftPrivateThreadExtras/CMakeLists.txt @@ -16,5 +16,6 @@ add_swift_target_library(swiftSwiftPrivateThreadExtras ${SWIFT_STDLIB_LIBRARY_BU SWIFT_MODULE_DEPENDS_HAIKU Glibc SWIFT_MODULE_DEPENDS_WINDOWS MSVCRT WinSDK SWIFT_COMPILE_FLAGS - INSTALL_IN_COMPONENT stdlib-experimental) + INSTALL_IN_COMPONENT stdlib-experimental + DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}") diff --git a/stdlib/private/SwiftReflectionTest/CMakeLists.txt b/stdlib/private/SwiftReflectionTest/CMakeLists.txt index 5a688bdb4a1bb..681bd1d53c3e9 100644 --- a/stdlib/private/SwiftReflectionTest/CMakeLists.txt +++ b/stdlib/private/SwiftReflectionTest/CMakeLists.txt @@ -4,7 +4,8 @@ if (SWIFT_INCLUDE_TESTS) SwiftReflectionTest.swift SWIFT_MODULE_DEPENDS Darwin TARGET_SDKS ALL_APPLE_PLATFORMS - INSTALL_IN_COMPONENT stdlib-experimental) + INSTALL_IN_COMPONENT stdlib-experimental + DARWIN_INSTALL_NAME_DIR "${SWIFT_DARWIN_STDLIB_PRIVATE_INSTALL_NAME_DIR}") foreach(SDK ${SWIFT_SDKS}) if("${SDK}" IN_LIST SWIFT_APPLE_PLATFORMS)