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