peachsim 0.1.2190 → 0.1.2192
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/attached-projects.cjs +1 -1
- package/dist-lib/auth/shared-session.cjs +1 -1
- package/dist-lib/backend-origin.cjs +1 -1
- package/dist-lib/beta.cjs +1 -1
- package/dist-lib/beta.mjs +1 -1
- package/dist-lib/bridge-constants.cjs +1 -1
- package/dist-lib/bridge-contract-input.cjs +1 -1
- package/dist-lib/bridge-contract-input.mjs +1 -1
- package/dist-lib/bridge-contract.cjs +1 -1
- package/dist-lib/bridge-contract.mjs +1 -1
- package/dist-lib/bundle-channel.cjs +126 -181
- package/dist-lib/capture-contract.cjs +1 -1
- package/dist-lib/capture-contract.mjs +1 -1
- package/dist-lib/cloud-contract.cjs +1 -1
- package/dist-lib/cloud-contract.mjs +1 -1
- package/dist-lib/cloud-test-args.cjs +1 -1
- package/dist-lib/cloud-test-args.mjs +1 -1
- package/dist-lib/cloud.cjs +1 -1
- package/dist-lib/cloud.mjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/config.mjs +1 -1
- package/dist-lib/detox/index.cjs +1 -1
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/expo-swift-bundle.cjs +115 -175
- package/dist-lib/expo-swift-metadata.cjs +1 -1
- package/dist-lib/expo-swift-metadata.mjs +1 -1
- package/dist-lib/home-paths.cjs +1 -6
- package/dist-lib/host/bridge-host.cjs +126 -181
- package/dist-lib/host/fetch-proxy-handler.cjs +4 -4
- package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
- package/dist-lib/host/replacement-module-handler.cjs +1 -1
- package/dist-lib/host/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +7 -5
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/jump-to-source-native.cjs +1 -1
- package/dist-lib/kotlin-host.cjs +7 -2
- package/dist-lib/menu.cjs +1 -1
- package/dist-lib/menu.mjs +1 -1
- package/dist-lib/metro-fingerprint-registry.cjs +1 -1
- package/dist-lib/metro-fingerprint-registry.mjs +1 -1
- package/dist-lib/metro-production-bundle.cjs +1 -1
- package/dist-lib/metro-production-bundle.mjs +1 -1
- package/dist-lib/metro.cjs +7 -5
- package/dist-lib/native-app-identity-project.cjs +6 -4
- package/dist-lib/native-app-identity-project.mjs +6 -4
- package/dist-lib/native-app-identity.cjs +1 -1
- package/dist-lib/native-app-identity.mjs +1 -1
- package/dist-lib/native-firebase-metadata.cjs +1 -1
- package/dist-lib/native-firebase-metadata.mjs +1 -1
- package/dist-lib/pdfium-raster.cjs +1 -1
- package/dist-lib/pdfium-raster.mjs +1 -1
- package/dist-lib/plist.cjs +1 -1
- package/dist-lib/plist.mjs +1 -1
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/public-brand.cjs +1 -1
- package/dist-lib/public-origins-lib-esm.json +24 -24
- package/dist-lib/public-origins-lib.json +53 -53
- package/dist-lib/react-native-host-modules.cjs +1 -1
- package/dist-lib/react-native-host-modules.mjs +1 -1
- package/dist-lib/reap-browser.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
- package/dist-lib/sdk.cjs +1 -1
- package/dist-lib/sdk.mjs +1 -1
- package/dist-lib/skills.cjs +126 -182
- package/dist-lib/swift-compile.cjs +20 -132
- package/dist-lib/swift-compile.mjs +20 -132
- package/dist-lib/swift-package.cjs +1 -1
- package/dist-lib/swift-package.mjs +1 -1
- package/dist-lib/swift-submit.cjs +1 -1
- package/dist-lib/swift-submit.mjs +1 -1
- package/dist-lib/swift-toolchain.cjs +41 -23
- package/dist-lib/swift.cjs +1 -1
- package/dist-lib/vite-swift.cjs +97 -157
- package/dist-lib/vite.cjs +4 -4
- package/dist-lib/worklet-executable.cjs +1 -1
- package/dist-lib/worklet-executable.mjs +1 -1
- package/dist-types/packages/peach-engine/src/engine/node.d.ts +3 -0
- package/dist-types/packages/peach-engine/src/engine/scroll-momentum-math.d.ts +2 -1
- package/dist-types/packages/peach-engine/src/render-worker/compositor-protocol.d.ts +1 -0
- package/dist-types/packages/peach-engine/src/render-worker/scroll-mirror.d.ts +1 -0
- package/kotlin/sdk.tar.gz +0 -0
- package/package.json +1 -1
- package/src/expo-native-workspace.ts +21 -20
- package/src/home-paths.ts +0 -5
- package/src/kotlin-host.ts +6 -1
- package/src/nitro-adapter.lock.json +265 -265
- package/src/nitro-superset.lock.json +4 -4
- package/src/swift-compile.ts +21 -114
- package/src/swift-distribution.lock.json +17 -11
- package/src/swift-distribution.ts +3 -3
- package/src/swift-host.ts +12 -8
- package/src/swift-interface-bodies.ts +7 -1
- package/src/swift-objc-standin.ts +46 -8
- package/src/swift-packages.ts +1 -0
- package/src/swift-toolchain.ts +40 -30
- package/src/swift-wasm-prune.ts +3 -2
- package/src/turbo-runtime.lock.json +21 -21
- package/src/xcode-project.ts +6 -4
package/src/swift-compile.ts
CHANGED
|
@@ -2255,6 +2255,11 @@ export function emitSwiftPackageManifest(args: {
|
|
|
2255
2255
|
...(!native?.clang && target.publicHeadersPath !== undefined
|
|
2256
2256
|
? [` publicHeadersPath: ${JSON.stringify(target.publicHeadersPath)},`]
|
|
2257
2257
|
: []),
|
|
2258
|
+
// swiftpm appends the root package's name after a target's own flags
|
|
2259
|
+
// unless the target opts out of package access
|
|
2260
|
+
...(!clang && target.swiftFlags?.includes('-package-name')
|
|
2261
|
+
? [' packageAccess: false,']
|
|
2262
|
+
: []),
|
|
2258
2263
|
// the native backend supplies dependency module maps without their
|
|
2259
2264
|
// compiled modules. textual c++ includes keep those dependencies usable.
|
|
2260
2265
|
` ${clang ? nativeSettings : swiftSettings}${link}`,
|
|
@@ -2733,117 +2738,6 @@ const FOUNDATION_OVERLAY_GLOBALS = new Set([
|
|
|
2733
2738
|
'NSFileErrorMinimum',
|
|
2734
2739
|
'NSFormattingErrorMaximum',
|
|
2735
2740
|
'NSFormattingErrorMinimum',
|
|
2736
|
-
'NSFoundationVersionNumber',
|
|
2737
|
-
'NSFoundationVersionNumber10_0',
|
|
2738
|
-
'NSFoundationVersionNumber10_1',
|
|
2739
|
-
'NSFoundationVersionNumber10_10',
|
|
2740
|
-
'NSFoundationVersionNumber10_10_1',
|
|
2741
|
-
'NSFoundationVersionNumber10_10_2',
|
|
2742
|
-
'NSFoundationVersionNumber10_10_3',
|
|
2743
|
-
'NSFoundationVersionNumber10_10_4',
|
|
2744
|
-
'NSFoundationVersionNumber10_10_5',
|
|
2745
|
-
'NSFoundationVersionNumber10_10_Max',
|
|
2746
|
-
'NSFoundationVersionNumber10_11',
|
|
2747
|
-
'NSFoundationVersionNumber10_11_1',
|
|
2748
|
-
'NSFoundationVersionNumber10_11_2',
|
|
2749
|
-
'NSFoundationVersionNumber10_11_3',
|
|
2750
|
-
'NSFoundationVersionNumber10_11_4',
|
|
2751
|
-
'NSFoundationVersionNumber10_11_Max',
|
|
2752
|
-
'NSFoundationVersionNumber10_1_1',
|
|
2753
|
-
'NSFoundationVersionNumber10_1_2',
|
|
2754
|
-
'NSFoundationVersionNumber10_1_3',
|
|
2755
|
-
'NSFoundationVersionNumber10_1_4',
|
|
2756
|
-
'NSFoundationVersionNumber10_2',
|
|
2757
|
-
'NSFoundationVersionNumber10_2_1',
|
|
2758
|
-
'NSFoundationVersionNumber10_2_2',
|
|
2759
|
-
'NSFoundationVersionNumber10_2_3',
|
|
2760
|
-
'NSFoundationVersionNumber10_2_4',
|
|
2761
|
-
'NSFoundationVersionNumber10_2_5',
|
|
2762
|
-
'NSFoundationVersionNumber10_2_6',
|
|
2763
|
-
'NSFoundationVersionNumber10_2_7',
|
|
2764
|
-
'NSFoundationVersionNumber10_2_8',
|
|
2765
|
-
'NSFoundationVersionNumber10_3',
|
|
2766
|
-
'NSFoundationVersionNumber10_3_1',
|
|
2767
|
-
'NSFoundationVersionNumber10_3_2',
|
|
2768
|
-
'NSFoundationVersionNumber10_3_3',
|
|
2769
|
-
'NSFoundationVersionNumber10_3_4',
|
|
2770
|
-
'NSFoundationVersionNumber10_3_5',
|
|
2771
|
-
'NSFoundationVersionNumber10_3_6',
|
|
2772
|
-
'NSFoundationVersionNumber10_3_7',
|
|
2773
|
-
'NSFoundationVersionNumber10_3_8',
|
|
2774
|
-
'NSFoundationVersionNumber10_3_9',
|
|
2775
|
-
'NSFoundationVersionNumber10_4',
|
|
2776
|
-
'NSFoundationVersionNumber10_4_1',
|
|
2777
|
-
'NSFoundationVersionNumber10_4_10',
|
|
2778
|
-
'NSFoundationVersionNumber10_4_11',
|
|
2779
|
-
'NSFoundationVersionNumber10_4_2',
|
|
2780
|
-
'NSFoundationVersionNumber10_4_3',
|
|
2781
|
-
'NSFoundationVersionNumber10_4_4_Intel',
|
|
2782
|
-
'NSFoundationVersionNumber10_4_4_PowerPC',
|
|
2783
|
-
'NSFoundationVersionNumber10_4_5',
|
|
2784
|
-
'NSFoundationVersionNumber10_4_6',
|
|
2785
|
-
'NSFoundationVersionNumber10_4_7',
|
|
2786
|
-
'NSFoundationVersionNumber10_4_8',
|
|
2787
|
-
'NSFoundationVersionNumber10_4_9',
|
|
2788
|
-
'NSFoundationVersionNumber10_5',
|
|
2789
|
-
'NSFoundationVersionNumber10_5_1',
|
|
2790
|
-
'NSFoundationVersionNumber10_5_2',
|
|
2791
|
-
'NSFoundationVersionNumber10_5_3',
|
|
2792
|
-
'NSFoundationVersionNumber10_5_4',
|
|
2793
|
-
'NSFoundationVersionNumber10_5_5',
|
|
2794
|
-
'NSFoundationVersionNumber10_5_6',
|
|
2795
|
-
'NSFoundationVersionNumber10_5_7',
|
|
2796
|
-
'NSFoundationVersionNumber10_5_8',
|
|
2797
|
-
'NSFoundationVersionNumber10_6',
|
|
2798
|
-
'NSFoundationVersionNumber10_6_1',
|
|
2799
|
-
'NSFoundationVersionNumber10_6_2',
|
|
2800
|
-
'NSFoundationVersionNumber10_6_3',
|
|
2801
|
-
'NSFoundationVersionNumber10_6_4',
|
|
2802
|
-
'NSFoundationVersionNumber10_6_5',
|
|
2803
|
-
'NSFoundationVersionNumber10_6_6',
|
|
2804
|
-
'NSFoundationVersionNumber10_6_7',
|
|
2805
|
-
'NSFoundationVersionNumber10_6_8',
|
|
2806
|
-
'NSFoundationVersionNumber10_7',
|
|
2807
|
-
'NSFoundationVersionNumber10_7_1',
|
|
2808
|
-
'NSFoundationVersionNumber10_7_2',
|
|
2809
|
-
'NSFoundationVersionNumber10_7_3',
|
|
2810
|
-
'NSFoundationVersionNumber10_7_4',
|
|
2811
|
-
'NSFoundationVersionNumber10_8',
|
|
2812
|
-
'NSFoundationVersionNumber10_8_1',
|
|
2813
|
-
'NSFoundationVersionNumber10_8_2',
|
|
2814
|
-
'NSFoundationVersionNumber10_8_3',
|
|
2815
|
-
'NSFoundationVersionNumber10_8_4',
|
|
2816
|
-
'NSFoundationVersionNumber10_9',
|
|
2817
|
-
'NSFoundationVersionNumber10_9_1',
|
|
2818
|
-
'NSFoundationVersionNumber10_9_2',
|
|
2819
|
-
'NSFoundationVersionNumber_iOS_4_0',
|
|
2820
|
-
'NSFoundationVersionNumber_iOS_4_1',
|
|
2821
|
-
'NSFoundationVersionNumber_iOS_4_2',
|
|
2822
|
-
'NSFoundationVersionNumber_iOS_4_3',
|
|
2823
|
-
'NSFoundationVersionNumber_iOS_5_0',
|
|
2824
|
-
'NSFoundationVersionNumber_iOS_5_1',
|
|
2825
|
-
'NSFoundationVersionNumber_iOS_6_0',
|
|
2826
|
-
'NSFoundationVersionNumber_iOS_6_1',
|
|
2827
|
-
'NSFoundationVersionNumber_iOS_7_0',
|
|
2828
|
-
'NSFoundationVersionNumber_iOS_7_1',
|
|
2829
|
-
'NSFoundationVersionNumber_iOS_8_0',
|
|
2830
|
-
'NSFoundationVersionNumber_iOS_8_1',
|
|
2831
|
-
'NSFoundationVersionNumber_iOS_8_2',
|
|
2832
|
-
'NSFoundationVersionNumber_iOS_8_3',
|
|
2833
|
-
'NSFoundationVersionNumber_iOS_8_4',
|
|
2834
|
-
'NSFoundationVersionNumber_iOS_8_x_Max',
|
|
2835
|
-
'NSFoundationVersionNumber_iOS_9_0',
|
|
2836
|
-
'NSFoundationVersionNumber_iOS_9_1',
|
|
2837
|
-
'NSFoundationVersionNumber_iOS_9_2',
|
|
2838
|
-
'NSFoundationVersionNumber_iOS_9_3',
|
|
2839
|
-
'NSFoundationVersionNumber_iOS_9_4',
|
|
2840
|
-
'NSFoundationVersionNumber_iOS_9_x_Max',
|
|
2841
|
-
'NSFoundationVersionNumber_iPhoneOS_2_0',
|
|
2842
|
-
'NSFoundationVersionNumber_iPhoneOS_2_1',
|
|
2843
|
-
'NSFoundationVersionNumber_iPhoneOS_2_2',
|
|
2844
|
-
'NSFoundationVersionNumber_iPhoneOS_3_0',
|
|
2845
|
-
'NSFoundationVersionNumber_iPhoneOS_3_1',
|
|
2846
|
-
'NSFoundationVersionNumber_iPhoneOS_3_2',
|
|
2847
2741
|
'NSFoundationVersionWithFileManagerResourceForkSupport',
|
|
2848
2742
|
'NSFreeHashTable',
|
|
2849
2743
|
'NSFreeMapTable',
|
|
@@ -4328,7 +4222,13 @@ export function writeSwiftProject(
|
|
|
4328
4222
|
for (const file of Object.keys(input.files)) {
|
|
4329
4223
|
if (!file.endsWith('.swift')) continue
|
|
4330
4224
|
const target = bySourcePath.find(
|
|
4331
|
-
(candidate) =>
|
|
4225
|
+
(candidate) =>
|
|
4226
|
+
(candidate.path === '.' || file.startsWith(`${candidate.path}/`)) &&
|
|
4227
|
+
(candidate.sources === undefined ||
|
|
4228
|
+
candidate.sources.some((source) => {
|
|
4229
|
+
const selected = path.posix.join(candidate.path, source)
|
|
4230
|
+
return file === selected || file.startsWith(`${selected}/`)
|
|
4231
|
+
})),
|
|
4332
4232
|
)
|
|
4333
4233
|
// swiftpm never compiles an excluded file (a prebuilt core's Swift)
|
|
4334
4234
|
const excluded = target?.exclude?.some(
|
|
@@ -4401,9 +4301,17 @@ export function writeSwiftProject(
|
|
|
4401
4301
|
}
|
|
4402
4302
|
const targetEntries = (target: SwiftPackageTarget) => {
|
|
4403
4303
|
const prefix = target.path === '.' ? '' : `${target.path}/`
|
|
4304
|
+
// targets may share a directory and pick their compiled files with `sources`;
|
|
4305
|
+
// swiftpm leaves every header on disk for relative includes
|
|
4404
4306
|
return Object.entries(input.files).filter(
|
|
4405
4307
|
([file]) =>
|
|
4406
4308
|
file.startsWith(prefix) &&
|
|
4309
|
+
(target.sources === undefined ||
|
|
4310
|
+
!(file.endsWith('.swift') || isSwiftNativeTranslationUnit(file)) ||
|
|
4311
|
+
target.sources.some((source) => {
|
|
4312
|
+
const selected = path.posix.join(prefix, source)
|
|
4313
|
+
return file === selected || file.startsWith(`${selected}/`)
|
|
4314
|
+
})) &&
|
|
4407
4315
|
!target.exclude?.some(
|
|
4408
4316
|
(excluded) =>
|
|
4409
4317
|
file === `${prefix}${excluded}` || file.startsWith(`${prefix}${excluded}/`),
|
|
@@ -4615,8 +4523,7 @@ export function writeSwiftProject(
|
|
|
4615
4523
|
)) {
|
|
4616
4524
|
const include = match[1]!
|
|
4617
4525
|
const producer = /(?:^|\/)([^/]+)-Swift\.h$/.exec(include)?.[1]
|
|
4618
|
-
if (producer &&
|
|
4619
|
-
producers.add(producer)
|
|
4526
|
+
if (producer && swiftTargets.has(producer)) producers.add(producer)
|
|
4620
4527
|
const local = [
|
|
4621
4528
|
path.posix.join(path.posix.dirname(file), include),
|
|
4622
4529
|
`${includes}${include}`,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"id": "
|
|
2
|
+
"id": "87fc4d2ff9d5d588",
|
|
3
3
|
"release": "swift-6.4.0-RELEASE-custom-11345d60dca47496",
|
|
4
|
-
"wasmSdkId": "swift-6.4.0-RELEASE_wasm-peach-
|
|
5
|
-
"wasmSdkUrl": "https://r2.sootsim.com/swift-wasm-sdk/swift-6.4.0-RELEASE_wasm-peach-
|
|
6
|
-
"wasmSdkChecksum": "
|
|
7
|
-
"source": "
|
|
4
|
+
"wasmSdkId": "swift-6.4.0-RELEASE_wasm-peach-19471d4b",
|
|
5
|
+
"wasmSdkUrl": "https://r2.sootsim.com/swift-wasm-sdk/swift-6.4.0-RELEASE_wasm-peach-19471d4b.artifactbundle.tar.gz",
|
|
6
|
+
"wasmSdkChecksum": "764c16e7e34156bf90d6c3372a2b77b98b9d8c3470235520d0f9619f90f33456",
|
|
7
|
+
"source": "08519cc5f11db43a2f85f28c47ec6c8930843f93",
|
|
8
8
|
"targets": [
|
|
9
9
|
"ImagePlayground",
|
|
10
10
|
"QuickLookThumbnailing",
|
|
@@ -131,6 +131,12 @@
|
|
|
131
131
|
"CryptoKit",
|
|
132
132
|
"CryptoTokenKit",
|
|
133
133
|
"TikTokBusinessSDK",
|
|
134
|
+
"EXUpdatesInterface",
|
|
135
|
+
"EXManifests",
|
|
136
|
+
"EASClient",
|
|
137
|
+
"EXStructuredHeaders",
|
|
138
|
+
"EXUpdatesBSPatch",
|
|
139
|
+
"Reachability",
|
|
134
140
|
"EXUpdates",
|
|
135
141
|
"nSure",
|
|
136
142
|
"TOCropViewController",
|
|
@@ -238,16 +244,16 @@
|
|
|
238
244
|
},
|
|
239
245
|
"hosts": {
|
|
240
246
|
"darwin-arm64": {
|
|
241
|
-
"sha256": "
|
|
242
|
-
"size":
|
|
247
|
+
"sha256": "7444ad87688bb551601a49fee6b48d15978fcd877982a25a944280f553f439b5",
|
|
248
|
+
"size": 103297800
|
|
243
249
|
},
|
|
244
250
|
"linux-x64": {
|
|
245
|
-
"sha256": "
|
|
246
|
-
"size":
|
|
251
|
+
"sha256": "03edd8359c024c592bb53b8917d9efc59f9b76871966b41189838deb2b9c27f2",
|
|
252
|
+
"size": 106017072
|
|
247
253
|
},
|
|
248
254
|
"linux-arm64": {
|
|
249
|
-
"sha256": "
|
|
250
|
-
"size":
|
|
255
|
+
"sha256": "00a89f46a581f73ea6b0343f21fa330bbe1ae444a1d29ad7251e87a86e4bc91b",
|
|
256
|
+
"size": 105508093
|
|
251
257
|
}
|
|
252
258
|
}
|
|
253
259
|
}
|
|
@@ -10,7 +10,7 @@ import os from 'node:os'
|
|
|
10
10
|
import path from 'node:path'
|
|
11
11
|
import { installVerifiedTarball } from '@contrast/runtime-delivery'
|
|
12
12
|
import { ensureLinuxBrowserLibraries } from '../cli/drivers/linux-browser-libs'
|
|
13
|
-
import {
|
|
13
|
+
import { rnxHomeDir } from './home-paths'
|
|
14
14
|
import { swiftDistributionAt, swiftModuleSdk } from './swift-compile'
|
|
15
15
|
import {
|
|
16
16
|
SWIFT_DISTRIBUTION_MANIFEST,
|
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
confineSwiftScratch,
|
|
23
23
|
ensureSwiftLinuxRuntime,
|
|
24
24
|
installSwiftWasmSdk,
|
|
25
|
+
peachSwiftSdksDir,
|
|
25
26
|
privateSwiftDistributionRoot,
|
|
26
27
|
SWIFT_PRIVATE_DISTRIBUTION_ENV,
|
|
27
28
|
swiftCompiler,
|
|
@@ -208,7 +209,6 @@ async function installSwiftToolchain(
|
|
|
208
209
|
signal?: AbortSignal,
|
|
209
210
|
compilerOnly = false,
|
|
210
211
|
): Promise<string> {
|
|
211
|
-
process.env.PEACH_SWIFT_SDKS_PATH = peachSwiftSdksDir()
|
|
212
212
|
const root = path.resolve(swiftToolchainBin(release), '../..')
|
|
213
213
|
// macOS installs where the locator looks first, the user's Toolchains
|
|
214
214
|
// directory, and only into a directory without a compiler; linux installs
|
|
@@ -260,7 +260,7 @@ async function installSwiftToolchain(
|
|
|
260
260
|
const ready = swiftToolchainReady(release, sdk)
|
|
261
261
|
if (ready) return ready
|
|
262
262
|
signal?.throwIfAborted()
|
|
263
|
-
const directory =
|
|
263
|
+
const directory = peachSwiftSdksDir()
|
|
264
264
|
process.stderr.write(`peach: installing Swift SDK ${sdk.wasmSdkId} to ${directory}…\n`)
|
|
265
265
|
try {
|
|
266
266
|
installSwiftWasmSdk(release, sdk)
|
package/src/swift-host.ts
CHANGED
|
@@ -1078,13 +1078,17 @@ async function buildXcodeLayout(root: string): Promise<XcodeLayout | null> {
|
|
|
1078
1078
|
feature.configuration === packageConfiguration,
|
|
1079
1079
|
)
|
|
1080
1080
|
.map((feature) => feature.name),
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1081
|
+
// the flat build gives every module one package; swiftpm names each
|
|
1082
|
+
// module for its own package, which `@retroactive` and `package` read
|
|
1083
|
+
swiftFlags: ['-package-name', swiftPackageIdentity(target.packageDir)].concat(
|
|
1084
|
+
target.packageSwiftFlags
|
|
1085
|
+
.filter(
|
|
1086
|
+
(setting) =>
|
|
1087
|
+
setting.configuration === null ||
|
|
1088
|
+
setting.configuration === packageConfiguration,
|
|
1089
|
+
)
|
|
1090
|
+
.flatMap((setting) => setting.flags),
|
|
1091
|
+
),
|
|
1088
1092
|
linkedLibraries: target.packageLibraries
|
|
1089
1093
|
.filter(
|
|
1090
1094
|
(library) =>
|
|
@@ -1575,7 +1579,7 @@ function xcodeManifest(layout: XcodeLayout): string {
|
|
|
1575
1579
|
...layout.targets.map((target) =>
|
|
1576
1580
|
target.systemLibrary
|
|
1577
1581
|
? ` .systemLibrary(name: "${target.name}", path: "${target.path}"),`
|
|
1578
|
-
: ` .target(name: "${target.name}", ${target.dependencies === undefined ? '' : `dependencies: [${dependencies(target)}], `}path: "${target.path}", ${target.exclude.length > 0 ? `exclude: ${JSON.stringify(target.exclude)}, ` : ''}${target.resources ? 'resources: [], ' : ''}${target.publicHeadersPath === undefined ? '' : `publicHeadersPath: ${JSON.stringify(target.publicHeadersPath)}, `}${clangSettings(target)}${swiftManifestSettings(target)}${libraries(target)}),`,
|
|
1582
|
+
: ` .target(name: "${target.name}", ${target.dependencies === undefined ? '' : `dependencies: [${dependencies(target)}], `}path: "${target.path}", ${target.exclude.length > 0 ? `exclude: ${JSON.stringify(target.exclude)}, ` : ''}${target.sources === undefined ? '' : `sources: ${JSON.stringify(target.sources)}, `}${target.resources ? 'resources: [], ' : ''}${target.publicHeadersPath === undefined ? '' : `publicHeadersPath: ${JSON.stringify(target.publicHeadersPath)}, `}${clangSettings(target)}${swiftManifestSettings(target)}${libraries(target)}),`,
|
|
1579
1583
|
),
|
|
1580
1584
|
'])',
|
|
1581
1585
|
'',
|
|
@@ -119,7 +119,13 @@ export function swiftInterfaceWithoutBodies(text: string, keepDefaults = false):
|
|
|
119
119
|
continue
|
|
120
120
|
}
|
|
121
121
|
const char = text[i]!
|
|
122
|
-
if (
|
|
122
|
+
if (
|
|
123
|
+
!keepDefaults &&
|
|
124
|
+
char === '=' &&
|
|
125
|
+
parens > 0 &&
|
|
126
|
+
text[i - 1] === ' ' &&
|
|
127
|
+
text[i + 1] === ' '
|
|
128
|
+
) {
|
|
123
129
|
out = out.trimEnd()
|
|
124
130
|
i = skipExpression(text, i + 1)
|
|
125
131
|
continue
|
|
@@ -800,10 +800,11 @@ export function objcView(
|
|
|
800
800
|
'-module-cache-path',
|
|
801
801
|
moduleCache,
|
|
802
802
|
'-minimum-access-level',
|
|
803
|
-
// symbol graphs hide public underscored names at the public threshold
|
|
804
|
-
//
|
|
805
|
-
//
|
|
806
|
-
|
|
803
|
+
// symbol graphs hide public underscored names at the public threshold,
|
|
804
|
+
// including a function with an underscored parameter. clang headers
|
|
805
|
+
// remain the declaration boundary, and a swift overlay names its
|
|
806
|
+
// underscored and spi declarations.
|
|
807
|
+
'internal',
|
|
807
808
|
...(surface.interface ? ['-include-spi-symbols'] : []),
|
|
808
809
|
'-skip-synthesized-members',
|
|
809
810
|
'-omit-extension-block-symbols',
|
|
@@ -928,6 +929,16 @@ export function objcView(
|
|
|
928
929
|
// clang's builtin typedefs (stddef's size_t), which an apple sdk keeps in
|
|
929
930
|
// their own builtin modules.
|
|
930
931
|
const ownHeaders = new Set(headerFiles(headersDir).map((name) => path.basename(name)))
|
|
932
|
+
// the graph prints a c function pointer typedef as a plain function type,
|
|
933
|
+
// whose function-typed parameters swift treats as non-escaping; the importer
|
|
934
|
+
// gives every c function pointer @convention(c), which always escapes
|
|
935
|
+
const functionPointers = new Set(
|
|
936
|
+
[...originals.values()].flatMap((text) =>
|
|
937
|
+
[...text.matchAll(/\btypedef\b[^;{}]*?\(\s*\*\s*(\w+)\s*\)\s*\(/g)].map(
|
|
938
|
+
(match) => match[1]!,
|
|
939
|
+
),
|
|
940
|
+
),
|
|
941
|
+
)
|
|
931
942
|
const graphs = fs
|
|
932
943
|
.readdirSync(out)
|
|
933
944
|
.filter((name) => name.endsWith('.symbols.json'))
|
|
@@ -936,10 +947,37 @@ export function objcView(
|
|
|
936
947
|
const graph: SymbolGraph = JSON.parse(fs.readFileSync(path.join(out, name), 'utf8'))
|
|
937
948
|
return {
|
|
938
949
|
...graph,
|
|
939
|
-
symbols: graph.symbols
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
950
|
+
symbols: graph.symbols
|
|
951
|
+
.filter((symbol) => {
|
|
952
|
+
const header = /^c:([^@]+\.h)@/.exec(symbol.identifier.precise)?.[1]
|
|
953
|
+
return !header || ownHeaders.has(header)
|
|
954
|
+
})
|
|
955
|
+
.map((symbol) => {
|
|
956
|
+
if (
|
|
957
|
+
symbol.kind.identifier !== 'swift.typealias' ||
|
|
958
|
+
!symbol.identifier.precise.startsWith('c:') ||
|
|
959
|
+
!functionPointers.has(symbol.pathComponents.at(-1) ?? '')
|
|
960
|
+
)
|
|
961
|
+
return symbol
|
|
962
|
+
const fragments = symbol.declarationFragments ?? []
|
|
963
|
+
const equals = fragments.findIndex((fragment) =>
|
|
964
|
+
fragment.spelling.includes('='),
|
|
965
|
+
)
|
|
966
|
+
const arrow = fragments.findLastIndex((fragment) =>
|
|
967
|
+
fragment.spelling.includes('->'),
|
|
968
|
+
)
|
|
969
|
+
return {
|
|
970
|
+
...symbol,
|
|
971
|
+
declarationFragments: fragments.map((fragment, index) =>
|
|
972
|
+
index > equals &&
|
|
973
|
+
index < arrow &&
|
|
974
|
+
fragment.kind === 'typeIdentifier' &&
|
|
975
|
+
functionPointers.has(fragment.spelling)
|
|
976
|
+
? { ...fragment, spelling: `@escaping ${fragment.spelling}` }
|
|
977
|
+
: fragment,
|
|
978
|
+
),
|
|
979
|
+
}
|
|
980
|
+
}),
|
|
943
981
|
}
|
|
944
982
|
})
|
|
945
983
|
inheritedDefaultInits(stagedSurface, graphs, toolchainBin, search, moduleCache, work)
|
package/src/swift-packages.ts
CHANGED
|
@@ -687,6 +687,7 @@ export function resolveSwiftPackages(options: {
|
|
|
687
687
|
dir: target.dir,
|
|
688
688
|
files,
|
|
689
689
|
exclude: target.exclude,
|
|
690
|
+
...(target.sources ? { sources: target.sources } : {}),
|
|
690
691
|
packageDir: pkg.manifest.dir,
|
|
691
692
|
remote: pkg.remote,
|
|
692
693
|
iosDeployment: pkg.manifest.iosDeployment,
|
package/src/swift-toolchain.ts
CHANGED
|
@@ -34,22 +34,7 @@ export function sourceSwiftCheckout(): string {
|
|
|
34
34
|
|
|
35
35
|
/** swiftpm's SDK directory option, shared by discovery and compilation. */
|
|
36
36
|
export function swiftSdkOptions(): string[] {
|
|
37
|
-
|
|
38
|
-
if (directory) return ['--swift-sdks-path', path.resolve(directory)]
|
|
39
|
-
// child config is confined, but source checkouts still discover the SDK
|
|
40
|
-
// from the caller's original linux default, including a custom xdg home.
|
|
41
|
-
if (scratch && process.platform === 'linux') {
|
|
42
|
-
const config = process.env.XDG_CONFIG_HOME
|
|
43
|
-
if (config !== undefined && !path.isAbsolute(config))
|
|
44
|
-
throw new Error('XDG_CONFIG_HOME must be an absolute path')
|
|
45
|
-
return [
|
|
46
|
-
'--swift-sdks-path',
|
|
47
|
-
config === undefined
|
|
48
|
-
? path.join(os.userInfo().homedir, '.swiftpm', 'swift-sdks')
|
|
49
|
-
: path.join(config, 'swiftpm', 'swift-sdks'),
|
|
50
|
-
]
|
|
51
|
-
}
|
|
52
|
-
return []
|
|
37
|
+
return ['--swift-sdks-path', path.resolve(peachSwiftSdksDir())]
|
|
53
38
|
}
|
|
54
39
|
|
|
55
40
|
// host archives include the official driver/runtime and the qualified patched frontend.
|
|
@@ -395,9 +380,22 @@ export function ensureSwiftLinuxRuntime(release: string): void {
|
|
|
395
380
|
process.stderr.write(`peach: installing Linux runtime libxml2.so.2 into ${root}…\n`)
|
|
396
381
|
const download = `${plan.dest}.${process.pid}.tmp`
|
|
397
382
|
try {
|
|
398
|
-
execFileSync(
|
|
399
|
-
|
|
400
|
-
|
|
383
|
+
execFileSync(
|
|
384
|
+
'curl',
|
|
385
|
+
[
|
|
386
|
+
'-fsSL',
|
|
387
|
+
'--show-error',
|
|
388
|
+
'--retry',
|
|
389
|
+
'3',
|
|
390
|
+
'--retry-all-errors',
|
|
391
|
+
plan.url,
|
|
392
|
+
'-o',
|
|
393
|
+
download,
|
|
394
|
+
],
|
|
395
|
+
{
|
|
396
|
+
stdio: 'inherit',
|
|
397
|
+
},
|
|
398
|
+
)
|
|
401
399
|
if (swiftFileChecksum(download) !== plan.checksum)
|
|
402
400
|
throw new Error('declared Linux runtime checksum mismatch')
|
|
403
401
|
fs.renameSync(download, plan.dest)
|
|
@@ -573,6 +571,11 @@ export function peachHome(): string {
|
|
|
573
571
|
return override ? path.resolve(override) : path.join(os.homedir(), '.peach')
|
|
574
572
|
}
|
|
575
573
|
|
|
574
|
+
/** where the pinned wasm SDK installs unless PEACH_SWIFT_SDKS_PATH names another. */
|
|
575
|
+
export function peachSwiftSdksDir(): string {
|
|
576
|
+
return process.env.PEACH_SWIFT_SDKS_PATH ?? path.join(peachHome(), 'swift', 'sdks')
|
|
577
|
+
}
|
|
578
|
+
|
|
576
579
|
export const BUILDERS_ROOT_ENV = 'CONTRAST_BUILDERS_ROOT'
|
|
577
580
|
|
|
578
581
|
let agentBuildersRoot: string | undefined
|
|
@@ -935,10 +938,7 @@ function installSwiftSdkArchive(swift: string, sdk: SwiftWasmSdk, archive: strin
|
|
|
935
938
|
store,
|
|
936
939
|
])
|
|
937
940
|
const expected = swiftSdkPayloadChecksum(stagedBundle)
|
|
938
|
-
const
|
|
939
|
-
const locks = directory
|
|
940
|
-
? path.join(path.resolve(directory), '.peach-locks')
|
|
941
|
-
: path.join(os.homedir(), '.swiftpm', 'builder-locks')
|
|
941
|
+
const locks = path.join(path.resolve(peachSwiftSdksDir()), '.peach-locks')
|
|
942
942
|
fs.mkdirSync(locks, { recursive: true })
|
|
943
943
|
execFileSync(
|
|
944
944
|
'perl',
|
|
@@ -1004,9 +1004,22 @@ export function installSwiftWasmSdk(release: string, sdk: SwiftWasmSdk): void {
|
|
|
1004
1004
|
if (sdk.wasmSdkUrl.startsWith('file:'))
|
|
1005
1005
|
fs.copyFileSync(fileURLToPath(sdk.wasmSdkUrl), archive)
|
|
1006
1006
|
else
|
|
1007
|
-
execFileSync(
|
|
1008
|
-
|
|
1009
|
-
|
|
1007
|
+
execFileSync(
|
|
1008
|
+
'curl',
|
|
1009
|
+
[
|
|
1010
|
+
'-fsSL',
|
|
1011
|
+
'--show-error',
|
|
1012
|
+
'--retry',
|
|
1013
|
+
'3',
|
|
1014
|
+
'--retry-all-errors',
|
|
1015
|
+
sdk.wasmSdkUrl,
|
|
1016
|
+
'-o',
|
|
1017
|
+
archive,
|
|
1018
|
+
],
|
|
1019
|
+
{
|
|
1020
|
+
stdio: 'inherit',
|
|
1021
|
+
},
|
|
1022
|
+
)
|
|
1010
1023
|
installSwiftSdkArchive(swift, sdk, archive)
|
|
1011
1024
|
swiftToolchain(release, sdk)
|
|
1012
1025
|
} finally {
|
|
@@ -1166,10 +1179,7 @@ export function swiftSdkInstallStep(release: string, wasmSdk: SwiftWasmSdk): str
|
|
|
1166
1179
|
function swiftSdkInstallCommand(release: string, wasmSdk: SwiftWasmSdk): string {
|
|
1167
1180
|
const { wasmSdkId, wasmSdkUrl, wasmSdkChecksum } = wasmSdk
|
|
1168
1181
|
const program = `import { installSwiftWasmSdk } from "peachsim/swift-toolchain"; installSwiftWasmSdk(${JSON.stringify(release)}, ${JSON.stringify({ wasmSdkId, wasmSdkUrl, wasmSdkChecksum })})`
|
|
1169
|
-
const
|
|
1170
|
-
const environment = directory
|
|
1171
|
-
? `PEACH_SWIFT_SDKS_PATH='${path.resolve(directory).replaceAll("'", "'\\''")}' `
|
|
1172
|
-
: ''
|
|
1182
|
+
const environment = `PEACH_SWIFT_SDKS_PATH='${path.resolve(peachSwiftSdksDir()).replaceAll("'", "'\\''")}' `
|
|
1173
1183
|
return `${environment}node --input-type=module -e '${program.replaceAll("'", "'\\''")}'`
|
|
1174
1184
|
}
|
|
1175
1185
|
|
package/src/swift-wasm-prune.ts
CHANGED
|
@@ -1121,10 +1121,11 @@ export function pruneSwiftWasmLink(
|
|
|
1121
1121
|
const distDir = path.join(moduleRoot, 'lib')
|
|
1122
1122
|
// the app's own struct and class field descriptors stay: SwiftUI attaches
|
|
1123
1123
|
// @State and @StateObject by reflecting the app's view structs.
|
|
1124
|
-
// the shim reflects its own wrappers and views (State, ObservedObject, Published), so SwiftUI and Combine keep their descriptors
|
|
1124
|
+
// the shim reflects its own wrappers and views (State, ObservedObject, Published), so SwiftUI and Combine keep their descriptors.
|
|
1125
|
+
// a framework's SwiftUI overlay (_StoreKit_SwiftUI) declares views whose @State and @Environment attach the same way.
|
|
1125
1126
|
const dropsReflection = (obj: ParsedObject, name: string | undefined) =>
|
|
1126
1127
|
!!name &&
|
|
1127
|
-
!/^(SwiftUI|Combine)-/.test(path.basename(obj.file)) &&
|
|
1128
|
+
!/^(SwiftUI|Combine|_[A-Za-z0-9]+_SwiftUI)-/.test(path.basename(obj.file)) &&
|
|
1128
1129
|
(name.startsWith('l__swift5_reflection_descriptor') ||
|
|
1129
1130
|
(name.startsWith('$s') &&
|
|
1130
1131
|
(name.endsWith('CMF') || name.endsWith('VMF')) &&
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
},
|
|
9
9
|
"compiler": "swift-6.4.0-RELEASE-custom-11345d60dca47496",
|
|
10
10
|
"sdk": {
|
|
11
|
-
"id": "swift-6.4.0-RELEASE_wasm-peach-
|
|
12
|
-
"checksum": "
|
|
11
|
+
"id": "swift-6.4.0-RELEASE_wasm-peach-19471d4b",
|
|
12
|
+
"checksum": "764c16e7e34156bf90d6c3372a2b77b98b9d8c3470235520d0f9619f90f33456"
|
|
13
13
|
},
|
|
14
14
|
"framework": {
|
|
15
|
-
"distribution": "
|
|
15
|
+
"distribution": "87fc4d2ff9d5d588",
|
|
16
16
|
"wireAbi": "246b8412514b644113e6a26252c8ebd6de49ab4156ac5f5c98bb9e4c2ff2568b"
|
|
17
17
|
},
|
|
18
18
|
"archives": [
|
|
@@ -20,71 +20,71 @@
|
|
|
20
20
|
"headers": {
|
|
21
21
|
"reactNativeJsi": "0f8c2defbca69a27a848a81ae72363073bf9602fd316e57a75811be1a0528358"
|
|
22
22
|
},
|
|
23
|
-
"sha256": "
|
|
24
|
-
"size":
|
|
23
|
+
"sha256": "6f416d065d88a6f592f0c34dca2d898f2c1adadeeacc07c2f8f4de453715f298",
|
|
24
|
+
"size": 25393
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
"headers": {
|
|
28
28
|
"reactNativeJsi": "21a624ea24fd17d56bf26832d496fc1177067f89640414c20e6486c7984dfb0a"
|
|
29
29
|
},
|
|
30
|
-
"sha256": "
|
|
30
|
+
"sha256": "0c68d14139a733fa990e55fa23224589fe9a74ce82db0ce5b9b52da51211390e",
|
|
31
31
|
"size": 26139
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
"headers": {
|
|
35
35
|
"reactNativeJsi": "324aefd8591d9ce688bce7589c4c2b516cd33ecb95d35c47239a87a8fcf6a8da"
|
|
36
36
|
},
|
|
37
|
-
"sha256": "
|
|
38
|
-
"size":
|
|
37
|
+
"sha256": "adba5b074a4fc2d6c367de74f24aa4b6273363f8b39c9ad9d15be2775f08a2e1",
|
|
38
|
+
"size": 25394
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
"headers": {
|
|
42
42
|
"reactNativeJsi": "33596664ee7d7a6623f0796a6feb429543316c3a41b211150acda6e1d835286c"
|
|
43
43
|
},
|
|
44
|
-
"sha256": "
|
|
45
|
-
"size":
|
|
44
|
+
"sha256": "778f943ad7fcfba7060e2f29d2bf9d3d7365c60d09b8e2fcccfe11f95920b321",
|
|
45
|
+
"size": 25165
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
48
|
"headers": {
|
|
49
49
|
"reactNativeJsi": "66b2cd5a38511195207f6c8a76aba735f9b9cc66a52a0d00780ffe5d331623f7"
|
|
50
50
|
},
|
|
51
|
-
"sha256": "
|
|
52
|
-
"size":
|
|
51
|
+
"sha256": "06cdf08b6f177a54dbf734f76f23ff192c4eb50238fae5207e923fa8e0cfb4bd",
|
|
52
|
+
"size": 25398
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
"headers": {
|
|
56
56
|
"reactNativeJsi": "96db4e758dd53e9320cef7cad485e00aa06e7a982cefd920f17007de8a5bd9f9"
|
|
57
57
|
},
|
|
58
|
-
"sha256": "
|
|
59
|
-
"size":
|
|
58
|
+
"sha256": "62920d91d1805ae0df3ad0f672f6405575c04df4e66948ea37b4e165f39f8eb5",
|
|
59
|
+
"size": 26141
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
"headers": {
|
|
63
63
|
"reactNativeJsi": "aeab590ddd1218df963462242d3954ce467b0fa88f70e91429e4ffc74d230893"
|
|
64
64
|
},
|
|
65
|
-
"sha256": "
|
|
65
|
+
"sha256": "fab02f584e10cee2197c10b5c488873d5203313e10f07b2940283bee3ae12a57",
|
|
66
66
|
"size": 26138
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
69
|
"headers": {
|
|
70
70
|
"reactNativeJsi": "b5fb260522384dd7ab07d740cdc534b529922446fcec798341c7817d9eaa49f4"
|
|
71
71
|
},
|
|
72
|
-
"sha256": "
|
|
73
|
-
"size":
|
|
72
|
+
"sha256": "72bbd117ff2d4495f46fceecd0959e8bd2a0647fdf514bf2e2e95922514bcb66",
|
|
73
|
+
"size": 25267
|
|
74
74
|
},
|
|
75
75
|
{
|
|
76
76
|
"headers": {
|
|
77
77
|
"reactNativeJsi": "c6b391a1e870ccf7cdd534be63582862840f8245b99ebd253317deece1e6ffd5"
|
|
78
78
|
},
|
|
79
|
-
"sha256": "
|
|
80
|
-
"size":
|
|
79
|
+
"sha256": "10e28d5ce3eb41c695bef897fa974f8919559558a2b847963047f13ce06dc6a0",
|
|
80
|
+
"size": 26144
|
|
81
81
|
},
|
|
82
82
|
{
|
|
83
83
|
"headers": {
|
|
84
84
|
"reactNativeJsi": "c8270f1315745ecc204c4209a4f50f58ff6f14b4a385ad6820a69800270b53c6"
|
|
85
85
|
},
|
|
86
|
-
"sha256": "
|
|
87
|
-
"size":
|
|
86
|
+
"sha256": "52226df9610d8b5f9b47fee6bedbdbaa04df7f2f562213bd8b433a5f998d8aa3",
|
|
87
|
+
"size": 25105
|
|
88
88
|
}
|
|
89
89
|
]
|
|
90
90
|
}
|
package/src/xcode-project.ts
CHANGED
|
@@ -1509,7 +1509,9 @@ function projectTargets(project: LoadedProject): TargetRef[] {
|
|
|
1509
1509
|
}
|
|
1510
1510
|
|
|
1511
1511
|
// an application target peach builds, for the iOS simulator like every
|
|
1512
|
-
// target here.
|
|
1512
|
+
// target here. xcode builds a multiplatform target for an iOS destination
|
|
1513
|
+
// whenever its SUPPORTED_PLATFORMS lists one, whatever SDKROOT names; without
|
|
1514
|
+
// that list, a target whose SDKROOT names another platform, such as a watchOS
|
|
1513
1515
|
// app beside the iOS one, is never the app peach runs.
|
|
1514
1516
|
function isIosAppTarget(
|
|
1515
1517
|
ref: TargetRef,
|
|
@@ -1524,10 +1526,10 @@ function isIosAppTarget(
|
|
|
1524
1526
|
},
|
|
1525
1527
|
options,
|
|
1526
1528
|
)
|
|
1529
|
+
const platforms = settingList(get('SUPPORTED_PLATFORMS'))
|
|
1530
|
+
if (platforms.length > 0) return platforms.some(isIosPlatform)
|
|
1527
1531
|
const sdk = get('SDKROOT')
|
|
1528
|
-
return sdk === '
|
|
1529
|
-
? settingList(get('SUPPORTED_PLATFORMS')).some(isIosPlatform)
|
|
1530
|
-
: sdk === '' || isIosPlatform(sdk)
|
|
1532
|
+
return sdk === '' || isIosPlatform(sdk)
|
|
1531
1533
|
}
|
|
1532
1534
|
|
|
1533
1535
|
// the device or simulator sdk, bare or versioned such as iphonesimulator18.0.
|