|
34 | 34 | // Xcode inserting a runpath search path of /usr/lib/swift based on the deployment target being less than
|
35 | 35 | // SupportedTargets[target][SwiftConcurrencyMinimumDeploymentTarget] in SDKSettings.plist.
|
36 | 36 |
|
| 37 | +// Clients can back deploy to OS versions that predate Concurrency as an embedded library, and conditionally |
| 38 | +// use it behind an #availability check. Such clients will still need to link the embedded library instead |
| 39 | +// of the OS version. To support that, set the start version to Swift's first supported versions: macOS (née |
| 40 | +// OS X) 10.9, iOS 7.0, watchOS 2.0, tvOS 9.0 rather than Concurrency's first supported versions listed |
| 41 | +// above. |
| 42 | + |
37 | 43 | // The linker uses a specially formatted symbol to do the back deployment:
|
38 | 44 | // $ld$previous$<install-name>$<compatibility-version>$<platform>$<start-version>$<end-version>$<symbol-name>$
|
39 | 45 | // compatibility-version and symbol-name are left off to apply to all library versions and symbols.
|
|
49 | 55 | RPATH_PREVIOUS_DIRECTIVE_IMPL(SWIFT_TARGET_LIBRARY_NAME, platform, startVersion, endVersion)
|
50 | 56 |
|
51 | 57 | #if TARGET_OS_OSX || TARGET_OS_MACCATALYST
|
52 |
| -RPATH_PREVIOUS_DIRECTIVE(PLATFORM_MACOS, 10.15, 12.0) |
| 58 | +RPATH_PREVIOUS_DIRECTIVE(PLATFORM_MACOS, 10.9, 12.0) |
53 | 59 | RPATH_PREVIOUS_DIRECTIVE(PLATFORM_MACCATALYST, 13.1, 15.0)
|
54 | 60 | #elif TARGET_OS_IOS && !TARGET_OS_VISION
|
55 | 61 | #if TARGET_OS_SIMULATOR
|
56 |
| -RPATH_PREVIOUS_DIRECTIVE(PLATFORM_IOSSIMULATOR, 13.0, 15.0) |
| 62 | +RPATH_PREVIOUS_DIRECTIVE(PLATFORM_IOSSIMULATOR, 7.0, 15.0) |
57 | 63 | #else
|
58 |
| -RPATH_PREVIOUS_DIRECTIVE(PLATFORM_IOS, 13.0, 15.0) |
| 64 | +RPATH_PREVIOUS_DIRECTIVE(PLATFORM_IOS, 7.0, 15.0) |
59 | 65 | #endif
|
60 | 66 | #elif TARGET_OS_WATCH
|
61 | 67 | #if TARGET_OS_SIMULATOR
|
62 |
| -RPATH_PREVIOUS_DIRECTIVE(PLATFORM_WATCHOSSIMULATOR, 6.0, 8.0) |
| 68 | +RPATH_PREVIOUS_DIRECTIVE(PLATFORM_WATCHOSSIMULATOR, 2.0, 8.0) |
63 | 69 | #else
|
64 |
| -RPATH_PREVIOUS_DIRECTIVE(PLATFORM_WATCHOS, 6.0, 8.0) |
| 70 | +RPATH_PREVIOUS_DIRECTIVE(PLATFORM_WATCHOS, 2.0, 8.0) |
65 | 71 | #endif
|
66 | 72 | #elif TARGET_OS_TV
|
67 | 73 | #if TARGET_OS_SIMULATOR
|
68 |
| -RPATH_PREVIOUS_DIRECTIVE(PLATFORM_TVOSSIMULATOR, 13.0, 15.0) |
| 74 | +RPATH_PREVIOUS_DIRECTIVE(PLATFORM_TVOSSIMULATOR, 9.0, 15.0) |
69 | 75 | #else
|
70 |
| -RPATH_PREVIOUS_DIRECTIVE(PLATFORM_TVOS, 13.0, 15.0) |
| 76 | +RPATH_PREVIOUS_DIRECTIVE(PLATFORM_TVOS, 9.0, 15.0) |
71 | 77 | #endif
|
72 | 78 | #endif
|
73 | 79 | // Concurrency wasn't supported as an embedded library in any other OS, so no need to create back deployment
|
|
0 commit comments