@swiftbrowser/cli 0.7.0 → 0.9.0
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/README.md +18 -10
- package/dist/commands/doctor.js +6 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/icu.d.ts +1 -1
- package/dist/icu.js +26 -7
- package/dist/icu.js.map +1 -1
- package/dist/kit.d.ts +27 -12
- package/dist/kit.js +76 -43
- package/dist/kit.js.map +1 -1
- package/dist/sdkPackages.d.ts +54 -0
- package/dist/sdkPackages.js +247 -0
- package/dist/sdkPackages.js.map +1 -0
- package/dist/wasmCompiler.d.ts +1 -1
- package/dist/wasmCompiler.js +13 -3
- package/dist/wasmCompiler.js.map +1 -1
- package/dist/wasmSdk.d.ts +19 -6
- package/dist/wasmSdk.js +43 -6
- package/dist/wasmSdk.js.map +1 -1
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -36,12 +36,15 @@ down), or a plain folder of Swift sources. Options for all of them:
|
|
|
36
36
|
(with Swift 6.4 and its Swift SDK for WebAssembly): every module of the shim,
|
|
37
37
|
and an archive of each module's objects, in a *kit* under
|
|
38
38
|
`~/.cache/swiftbrowser/kits/` (`SWIFTBROWSER_CACHE` moves the cache). A
|
|
39
|
-
released CLI comes with its kit, @swiftbrowser/kit (
|
|
40
|
-
the
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
released CLI comes with its kit, @swiftbrowser/kit (36 MB to download): the
|
|
40
|
+
first build copies it into the cache and checks that your toolchain reads its
|
|
41
|
+
modules. Its macros (`@Model`, `#Predicate`, `@Entry`) come built as
|
|
42
|
+
WebAssembly, the same files on every host: the toolchain runs them through a
|
|
43
|
+
small launcher in @swiftbrowser/wasm-compiler, under the Node that runs the
|
|
44
|
+
CLI. Where the kit cannot serve (Windows, where the compiler runs no
|
|
45
|
+
launcher script; a toolchain whose compiler reads only modules it wrote), or
|
|
46
|
+
in a checkout of this repository, the first build compiles the kit itself, in
|
|
47
|
+
a minute or two. A kit takes 83 MB: 50 MB of archives, 15 MB of
|
|
45
48
|
modules and the 18 MB macro executable; SwiftPM's scratch path for building
|
|
46
49
|
kits takes 325 MB more.
|
|
47
50
|
Every app built after that, in any project, compiles its own code and
|
|
@@ -76,10 +79,15 @@ WebAssembly's files.
|
|
|
76
79
|
|
|
77
80
|
The WebAssembly compiler builds against the kit and needs only the Swift
|
|
78
81
|
SDK for WebAssembly's files: the toolchain's install, or, without a
|
|
79
|
-
toolchain, the CLI's own
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
toolchain, the CLI's own copy (`swiftbrowser doctor --install`; src/wasmSdk.ts).
|
|
83
|
+
That copy comes from npm: the SDK's files the compiler reads, split into
|
|
84
|
+
packages by who needs them (@swiftbrowser/wasm-sdk, -foundation, -icu,
|
|
85
|
+
-icu-data, -testing and -cxx, at the CLI's version; src/sdkPackages.ts),
|
|
86
|
+
51 MB to download and laid out in the cache as one SDK. A CLI whose version
|
|
87
|
+
has no such packages downloads swift.org's pinned bundle instead (93 MB).
|
|
88
|
+
Without a toolchain it uses the released
|
|
89
|
+
kit (@swiftbrowser/kit, checked by type-checking an import of every module)
|
|
90
|
+
and cannot build one. It runs the kit's macros
|
|
83
91
|
built as WebAssembly: @swiftbrowser/kit has them, and a kit made here gets
|
|
84
92
|
them from `swiftbrowser kit --wasm-macros` or the first WebAssembly build
|
|
85
93
|
(with a toolchain; minutes the first time, swift-syntax compiling for
|
package/dist/commands/doctor.js
CHANGED
|
@@ -68,9 +68,13 @@ export async function doctor(options = {}) {
|
|
|
68
68
|
}
|
|
69
69
|
else if (!toolchain && options.install) {
|
|
70
70
|
// No toolchain to install it: the WebAssembly compiler needs only the files.
|
|
71
|
-
info(`
|
|
71
|
+
info(` installing the files of ${WASM_SDK}…`);
|
|
72
72
|
try {
|
|
73
|
-
sdk = await installManagedWasmSdk(
|
|
73
|
+
sdk = await installManagedWasmSdk({
|
|
74
|
+
onSource: (source) => info(dim('package' in source
|
|
75
|
+
? ` @swiftbrowser/${source.package}${source.from === 'local' ? ' (installed)' : ''}`
|
|
76
|
+
: ` no SDK packages for this version: downloading ${source.bundle} (93 MB)…`)),
|
|
77
|
+
});
|
|
74
78
|
info(ok(`the Swift SDK for WebAssembly's files ${dim(sdk.root)}`));
|
|
75
79
|
}
|
|
76
80
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/icu.d.ts
CHANGED
|
@@ -84,7 +84,7 @@ export declare function normalizeLanguages(languages: readonly string[]): string
|
|
|
84
84
|
export declare function icuCacheDir(): string;
|
|
85
85
|
/**
|
|
86
86
|
* The trimmed ICU package for `languages`, from the cache or freshly made
|
|
87
|
-
* from the wasm SDK's
|
|
87
|
+
* from the wasm SDK's data (a second or two; cached per SDK archive and
|
|
88
88
|
* language set under `~/.cache/swiftbrowser/icu/`).
|
|
89
89
|
*/
|
|
90
90
|
export declare function prepareICUData(sdk: WasmSdk, languages: readonly string[], options?: {
|
package/dist/icu.js
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
// Everything here is plain parsing: the `ar` archive, the wasm object's data
|
|
18
18
|
// section, and the CmnD table of contents (udata.cpp's layout).
|
|
19
19
|
import { createHash } from 'node:crypto';
|
|
20
|
-
import { existsSync, mkdirSync, readFileSync, renameSync, statSync, writeFileSync } from 'node:fs';
|
|
20
|
+
import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, statSync, writeFileSync } from 'node:fs';
|
|
21
21
|
import path from 'node:path';
|
|
22
22
|
import { CliError } from './log.js';
|
|
23
23
|
import { WASM_SDK, cacheDir } from './toolchain.js';
|
|
@@ -266,13 +266,24 @@ export function normalizeLanguages(languages) {
|
|
|
266
266
|
export function icuCacheDir() {
|
|
267
267
|
return path.join(cacheDir(), 'icu');
|
|
268
268
|
}
|
|
269
|
+
/**
|
|
270
|
+
* The SDK's whole ICU data package as its own file (`icudtNNl.dat` beside
|
|
271
|
+
* the archive), where the SDK came from npm (sdkPackages.ts: the archive's
|
|
272
|
+
* data member is emptied there); null for an SDK as swift.org ships it.
|
|
273
|
+
*/
|
|
274
|
+
function icuDataFile(sdk) {
|
|
275
|
+
const dir = wasmSdkLibDir(sdk);
|
|
276
|
+
const name = existsSync(dir) ? readdirSync(dir).find((file) => /^icudt\d+l\.dat$/.test(file)) : undefined;
|
|
277
|
+
return name ? path.join(dir, name) : null;
|
|
278
|
+
}
|
|
269
279
|
/**
|
|
270
280
|
* The trimmed ICU package for `languages`, from the cache or freshly made
|
|
271
|
-
* from the wasm SDK's
|
|
281
|
+
* from the wasm SDK's data (a second or two; cached per SDK archive and
|
|
272
282
|
* language set under `~/.cache/swiftbrowser/icu/`).
|
|
273
283
|
*/
|
|
274
284
|
export function prepareICUData(sdk, languages, options = {}) {
|
|
275
|
-
const
|
|
285
|
+
const dataFile = icuDataFile(sdk);
|
|
286
|
+
const archivePath = dataFile ?? path.join(wasmSdkLibDir(sdk), ICU_ARCHIVE);
|
|
276
287
|
if (!existsSync(archivePath))
|
|
277
288
|
throw new CliError(`cannot find ${ICU_ARCHIVE} in the Swift SDK for WebAssembly (${WASM_SDK}, ${sdk.root}); run \`swiftbrowser doctor\``);
|
|
278
289
|
const stat = statSync(archivePath);
|
|
@@ -286,10 +297,18 @@ export function prepareICUData(sdk, languages, options = {}) {
|
|
|
286
297
|
if (existsSync(info.file) && statSync(info.file).size === info.bytes)
|
|
287
298
|
return info;
|
|
288
299
|
}
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
300
|
+
let symbol;
|
|
301
|
+
let data;
|
|
302
|
+
if (dataFile) {
|
|
303
|
+
symbol = `icudt${/icudt(\d+)l\.dat$/.exec(dataFile)[1]}_dat`;
|
|
304
|
+
data = readFileSync(dataFile);
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
const object = archiveMember(readFileSync(archivePath), ICU_MEMBER);
|
|
308
|
+
if (!object)
|
|
309
|
+
throw new CliError(`${archivePath} has no ${ICU_MEMBER} member; is this the ${WASM_SDK} SDK?`);
|
|
310
|
+
({ symbol, data } = icuDataFromObject(object));
|
|
311
|
+
}
|
|
293
312
|
const trimmed = trimPackage(data, wanted, { collation });
|
|
294
313
|
const version = /icudt(\d+)_dat/.exec(symbol)[1];
|
|
295
314
|
mkdirSync(dir, { recursive: true });
|
package/dist/icu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icu.js","sourceRoot":"","sources":["../src/icu.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"icu.js","sourceRoot":"","sources":["../src/icu.ts"],"names":[],"mappings":"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"}
|
package/dist/kit.d.ts
CHANGED
|
@@ -17,12 +17,14 @@ export interface KitManifest {
|
|
|
17
17
|
targets: Record<string, string[]>;
|
|
18
18
|
/** The shim's library products and their targets. */
|
|
19
19
|
products: Record<string, string[]>;
|
|
20
|
-
/** The shim's macro targets: the
|
|
20
|
+
/** The shim's macro targets: what the native compiler runs, under `plugins/`. */
|
|
21
21
|
macros: string[];
|
|
22
22
|
/** The macros built as WebAssembly, under `wasm-plugins/<macro>.wasm`. */
|
|
23
23
|
wasmPlugins?: string[];
|
|
24
24
|
/** Copied from @swiftbrowser/kit rather than built here. */
|
|
25
25
|
packaged?: boolean;
|
|
26
|
+
/** `plugins/` holds launchers of the WebAssembly macros (`writePluginLaunchers`), not host executables. */
|
|
27
|
+
pluginLaunchers?: boolean;
|
|
26
28
|
}
|
|
27
29
|
export interface Kit {
|
|
28
30
|
dir: string;
|
|
@@ -41,6 +43,8 @@ export declare function kitsDir(): string;
|
|
|
41
43
|
export declare function shimFiles(swiftPackagePath: string): string[];
|
|
42
44
|
/** Names the kit for this shim, toolchain and SDK: any change to one of them is another kit. */
|
|
43
45
|
export declare function kitId(swiftPackagePath: string, toolchain: Pick<Toolchain, 'version'>, sdkChecksum?: string): string;
|
|
46
|
+
/** `kitId` of the shim's files as [path, bytes], sorted by path (@swiftbrowser/swift's `publishedFiles` reads them from a checkout). */
|
|
47
|
+
export declare function kitIdOf(files: Iterable<readonly [string, Uint8Array]>, toolchain: Pick<Toolchain, 'version'>, sdkChecksum?: string): string;
|
|
44
48
|
/** `swift package dump-package`'s view of the shim, as far as kits need it. */
|
|
45
49
|
interface DumpedPackage {
|
|
46
50
|
targets: {
|
|
@@ -83,6 +87,18 @@ export declare function writeKitPackage(dir: string, manifest: KitManifest): str
|
|
|
83
87
|
export declare function kitSwiftFlags(kit: Pick<Kit, 'dir' | 'manifest'>): string[];
|
|
84
88
|
/** The kit with this id, if it was built (its package rewritten if the kit moved). */
|
|
85
89
|
export declare function findKit(id: string, toolchain: Pick<Toolchain, 'version'>): Kit | null;
|
|
90
|
+
/** The launcher that runs a macro plugin built as WebAssembly as an executable (@swiftbrowser/wasm-compiler); null without it. */
|
|
91
|
+
export declare function pluginExecutable(): string | null;
|
|
92
|
+
/** The script that stands in for a macro's host executable: Node runs its WebAssembly through the launcher. */
|
|
93
|
+
export declare function pluginLauncherScript(node: string, launcher: string, wasm: string, macro: string): string;
|
|
94
|
+
/**
|
|
95
|
+
* Writes `plugins/<macro>` for each macro: a script that runs its WebAssembly
|
|
96
|
+
* (`wasm-plugins/<macro>.wasm`) with this Node and the launcher, so that a
|
|
97
|
+
* native toolchain expands the macros of a released kit on any host. False
|
|
98
|
+
* where that cannot work: on Windows (the compiler spawns no script), without
|
|
99
|
+
* the launcher, or without a macro's WebAssembly.
|
|
100
|
+
*/
|
|
101
|
+
export declare function writePluginLaunchers(dir: string, macros: readonly string[], node?: string, launcher?: string | null): boolean;
|
|
86
102
|
/** The package that compiles every module of the shim: one target depending on all its library products. */
|
|
87
103
|
export declare function kitBuilderManifest(swiftPackagePath: string, products: readonly string[]): string;
|
|
88
104
|
export interface KitProgress {
|
|
@@ -96,26 +112,25 @@ export interface KitProgress {
|
|
|
96
112
|
export declare function buildKit(toolchain: Toolchain, swiftPackagePath: string, id: string, progress?: KitProgress): Promise<Kit>;
|
|
97
113
|
/** Removes all but the newest kits (and leftovers of interrupted builds). */
|
|
98
114
|
export declare function pruneKits(current: string, root?: string): void;
|
|
99
|
-
/** Where npm put a released kit
|
|
115
|
+
/** Where npm put a released kit. */
|
|
100
116
|
export interface PackagedKit {
|
|
101
117
|
/** @swiftbrowser/kit's directory (kit.json, the modules and archives, `wasm-plugins`). */
|
|
102
118
|
dir: string;
|
|
103
|
-
/** The host package's `plugins` directory; null when npm installed none for this host. */
|
|
104
|
-
plugins: string | null;
|
|
105
119
|
}
|
|
106
|
-
/**
|
|
107
|
-
export declare function
|
|
108
|
-
/** @swiftbrowser/kit and this host's package, as npm installed them next to the CLI; null without the kit. */
|
|
109
|
-
export declare function packagedKit(from?: string, host?: string): PackagedKit | null;
|
|
120
|
+
/** @swiftbrowser/kit, as npm installed it next to the CLI; null without it. */
|
|
121
|
+
export declare function packagedKit(from?: string): PackagedKit | null;
|
|
110
122
|
/**
|
|
111
123
|
* Copies a released kit into the cache as the kit `id`, when it was made for
|
|
112
|
-
* this shim, Swift version and SDK and has
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
* replace or remove the
|
|
124
|
+
* this shim, Swift version and SDK and has its macros built as WebAssembly.
|
|
125
|
+
* For a native toolchain (`nativeMacros`) it writes the launchers that run
|
|
126
|
+
* them (`writePluginLaunchers`), and is null where they cannot run. Null
|
|
127
|
+
* otherwise. The copy is what builds use: npm may replace or remove the
|
|
128
|
+
* package.
|
|
116
129
|
*/
|
|
117
130
|
export declare function installPackagedKit(packaged: PackagedKit, id: string, toolchain: Pick<Toolchain, 'version'>, options?: {
|
|
118
131
|
nativeMacros?: boolean;
|
|
132
|
+
node?: string;
|
|
133
|
+
launcher?: string | null;
|
|
119
134
|
}): Kit | null;
|
|
120
135
|
/**
|
|
121
136
|
* Whether this toolchain reads a kit's modules: a released kit was compiled
|
package/dist/kit.js
CHANGED
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
// finds the modules through `-I` (`kitSwiftFlags`).
|
|
14
14
|
//
|
|
15
15
|
// Released CLIs come with their kit: @swiftbrowser/kit holds its modules and
|
|
16
|
-
// archives and its macros built as WebAssembly
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
//
|
|
16
|
+
// archives and its macros built as WebAssembly (`packagedKit`). The CLI copies
|
|
17
|
+
// the one made for its shim into the cache, checks that the compiler can read
|
|
18
|
+
// its modules, and builds a kit only when there is none to use. A native
|
|
19
|
+
// toolchain runs the released macros through a launcher in place of host
|
|
20
|
+
// executables (`writePluginLaunchers`), so the same files serve every host.
|
|
21
21
|
//
|
|
22
22
|
// The WebAssembly compiler (wasmCompiler.ts) runs the kit's macros as
|
|
23
23
|
// WebAssembly (`wasm-plugins/<macro>.wasm`), built from the same sources as
|
|
@@ -29,6 +29,7 @@ import { createHash } from 'node:crypto';
|
|
|
29
29
|
import { createRequire } from 'node:module';
|
|
30
30
|
import { chmodSync, copyFileSync, cpSync, existsSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, statSync, symlinkSync, writeFileSync } from 'node:fs';
|
|
31
31
|
import path from 'node:path';
|
|
32
|
+
import { fileURLToPath } from 'node:url';
|
|
32
33
|
import { run } from './build.js';
|
|
33
34
|
import { CliError } from './log.js';
|
|
34
35
|
import { WASM_SDK, WASM_SDK_CHECKSUM, cacheDir, toolchainEnv } from './toolchain.js';
|
|
@@ -64,10 +65,15 @@ export function shimFiles(swiftPackagePath) {
|
|
|
64
65
|
}
|
|
65
66
|
/** Names the kit for this shim, toolchain and SDK: any change to one of them is another kit. */
|
|
66
67
|
export function kitId(swiftPackagePath, toolchain, sdkChecksum = WASM_SDK_CHECKSUM) {
|
|
68
|
+
const files = shimFiles(swiftPackagePath).map((file) => [file.split(path.sep).join('/'), readFileSync(path.join(swiftPackagePath, file))]);
|
|
69
|
+
return kitIdOf(files, toolchain, sdkChecksum);
|
|
70
|
+
}
|
|
71
|
+
/** `kitId` of the shim's files as [path, bytes], sorted by path (@swiftbrowser/swift's `publishedFiles` reads them from a checkout). */
|
|
72
|
+
export function kitIdOf(files, toolchain, sdkChecksum = WASM_SDK_CHECKSUM) {
|
|
67
73
|
const hash = createHash('sha256').update(`kit ${KIT_FORMAT}\nswift ${toolchain.version}\nsdk ${sdkChecksum}\n`);
|
|
68
|
-
for (const file of
|
|
69
|
-
hash.update(`${file
|
|
70
|
-
hash.update(
|
|
74
|
+
for (const [file, data] of files) {
|
|
75
|
+
hash.update(`${file}\n`);
|
|
76
|
+
hash.update(data);
|
|
71
77
|
hash.update('\n');
|
|
72
78
|
}
|
|
73
79
|
return hash.digest('hex').slice(0, 20);
|
|
@@ -199,8 +205,52 @@ export function findKit(id, toolchain) {
|
|
|
199
205
|
writeKitPackage(dir, manifest);
|
|
200
206
|
writeFileSync(file, `${JSON.stringify(manifest, null, 2)}\n`);
|
|
201
207
|
}
|
|
208
|
+
// They name this Node and this CLI's launcher, which may have moved since.
|
|
209
|
+
if (manifest.pluginLaunchers)
|
|
210
|
+
writePluginLaunchers(dir, manifest.macros);
|
|
202
211
|
return { dir, manifest, package: pkg };
|
|
203
212
|
}
|
|
213
|
+
/** The launcher that runs a macro plugin built as WebAssembly as an executable (@swiftbrowser/wasm-compiler); null without it. */
|
|
214
|
+
export function pluginExecutable() {
|
|
215
|
+
try {
|
|
216
|
+
const file = fileURLToPath(import.meta.resolve('@swiftbrowser/wasm-compiler/plugin-executable'));
|
|
217
|
+
return existsSync(file) ? file : null;
|
|
218
|
+
}
|
|
219
|
+
catch {
|
|
220
|
+
return null;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/** A path as one word of a POSIX shell script. */
|
|
224
|
+
function shellWord(text) {
|
|
225
|
+
return `'${text.replace(/'/g, `'\\''`)}'`;
|
|
226
|
+
}
|
|
227
|
+
/** The script that stands in for a macro's host executable: Node runs its WebAssembly through the launcher. */
|
|
228
|
+
export function pluginLauncherScript(node, launcher, wasm, macro) {
|
|
229
|
+
return `#!/bin/sh
|
|
230
|
+
# Generated by @swiftbrowser/cli (kit.ts): ${macro}, built as WebAssembly, as
|
|
231
|
+
# the plugin executable the compiler spawns.
|
|
232
|
+
exec ${shellWord(node)} ${shellWord(launcher)} ${shellWord(wasm)}
|
|
233
|
+
`;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Writes `plugins/<macro>` for each macro: a script that runs its WebAssembly
|
|
237
|
+
* (`wasm-plugins/<macro>.wasm`) with this Node and the launcher, so that a
|
|
238
|
+
* native toolchain expands the macros of a released kit on any host. False
|
|
239
|
+
* where that cannot work: on Windows (the compiler spawns no script), without
|
|
240
|
+
* the launcher, or without a macro's WebAssembly.
|
|
241
|
+
*/
|
|
242
|
+
export function writePluginLaunchers(dir, macros, node = process.execPath, launcher = pluginExecutable()) {
|
|
243
|
+
if (process.platform === 'win32' || !launcher)
|
|
244
|
+
return false;
|
|
245
|
+
if (!macros.every((macro) => existsSync(kitWasmPlugin(dir, macro))))
|
|
246
|
+
return false;
|
|
247
|
+
mkdirSync(path.join(dir, 'plugins'), { recursive: true });
|
|
248
|
+
for (const macro of macros) {
|
|
249
|
+
writeIfDifferent(kitPlugin(dir, macro), pluginLauncherScript(node, launcher, kitWasmPlugin(dir, macro), macro));
|
|
250
|
+
chmodSync(kitPlugin(dir, macro), 0o755);
|
|
251
|
+
}
|
|
252
|
+
return true;
|
|
253
|
+
}
|
|
204
254
|
/** The package that compiles every module of the shim: one target depending on all its library products. */
|
|
205
255
|
export function kitBuilderManifest(swiftPackagePath, products) {
|
|
206
256
|
return `// swift-tools-version: 6.0
|
|
@@ -316,12 +366,8 @@ export function pruneKits(current, root = kitsDir()) {
|
|
|
316
366
|
for (const kit of [...leftovers, ...complete.slice(KEPT_KITS)])
|
|
317
367
|
rmSync(kit.dir, { recursive: true, force: true });
|
|
318
368
|
}
|
|
319
|
-
/**
|
|
320
|
-
export function
|
|
321
|
-
return `@swiftbrowser/kit-${platform}-${arch}`;
|
|
322
|
-
}
|
|
323
|
-
/** @swiftbrowser/kit and this host's package, as npm installed them next to the CLI; null without the kit. */
|
|
324
|
-
export function packagedKit(from = import.meta.url, host = hostKitPackage()) {
|
|
369
|
+
/** @swiftbrowser/kit, as npm installed it next to the CLI; null without it. */
|
|
370
|
+
export function packagedKit(from = import.meta.url) {
|
|
325
371
|
let dir;
|
|
326
372
|
try {
|
|
327
373
|
dir = path.dirname(createRequire(from).resolve('@swiftbrowser/kit/package.json'));
|
|
@@ -329,26 +375,15 @@ export function packagedKit(from = import.meta.url, host = hostKitPackage()) {
|
|
|
329
375
|
catch {
|
|
330
376
|
return null;
|
|
331
377
|
}
|
|
332
|
-
|
|
333
|
-
return null;
|
|
334
|
-
let plugins = null;
|
|
335
|
-
try {
|
|
336
|
-
// The host package is an optional dependency of @swiftbrowser/kit: npm puts it where the kit resolves it.
|
|
337
|
-
const candidate = path.join(path.dirname(createRequire(path.join(dir, 'package.json')).resolve(`${host}/package.json`)), 'plugins');
|
|
338
|
-
if (existsSync(candidate))
|
|
339
|
-
plugins = candidate;
|
|
340
|
-
}
|
|
341
|
-
catch {
|
|
342
|
-
// No package for this host: only the WebAssembly compiler can use the kit.
|
|
343
|
-
}
|
|
344
|
-
return { dir, plugins };
|
|
378
|
+
return existsSync(path.join(dir, 'kit.json')) ? { dir } : null;
|
|
345
379
|
}
|
|
346
380
|
/**
|
|
347
381
|
* Copies a released kit into the cache as the kit `id`, when it was made for
|
|
348
|
-
* this shim, Swift version and SDK and has
|
|
349
|
-
*
|
|
350
|
-
*
|
|
351
|
-
* replace or remove the
|
|
382
|
+
* this shim, Swift version and SDK and has its macros built as WebAssembly.
|
|
383
|
+
* For a native toolchain (`nativeMacros`) it writes the launchers that run
|
|
384
|
+
* them (`writePluginLaunchers`), and is null where they cannot run. Null
|
|
385
|
+
* otherwise. The copy is what builds use: npm may replace or remove the
|
|
386
|
+
* package.
|
|
352
387
|
*/
|
|
353
388
|
export function installPackagedKit(packaged, id, toolchain, options = {}) {
|
|
354
389
|
const nativeMacros = options.nativeMacros ?? true;
|
|
@@ -361,30 +396,27 @@ export function installPackagedKit(packaged, id, toolchain, options = {}) {
|
|
|
361
396
|
}
|
|
362
397
|
if (manifest.format !== KIT_FORMAT || manifest.id !== id || manifest.swift !== toolchain.version || manifest.sdk !== WASM_SDK_CHECKSUM)
|
|
363
398
|
return null;
|
|
364
|
-
const hasNative = packaged.plugins !== null && manifest.macros.every((macro) => existsSync(path.join(packaged.plugins, macro)));
|
|
365
399
|
const wasmPlugins = (manifest.wasmPlugins ?? []).filter((macro) => existsSync(kitWasmPlugin(packaged.dir, macro)));
|
|
366
|
-
|
|
367
|
-
if (nativeMacros ? !hasNative : !hasWasm)
|
|
400
|
+
if (!manifest.macros.every((macro) => wasmPlugins.includes(macro)))
|
|
368
401
|
return null;
|
|
369
402
|
const dir = path.join(kitsDir(), id);
|
|
370
403
|
const temp = `${dir}.tmp-${process.pid}`;
|
|
371
404
|
rmSync(temp, { recursive: true, force: true });
|
|
372
405
|
mkdirSync(temp, { recursive: true });
|
|
373
406
|
cpSync(path.join(packaged.dir, KIT_TRIPLE), path.join(temp, KIT_TRIPLE), { recursive: true });
|
|
374
|
-
if (hasNative) {
|
|
375
|
-
mkdirSync(path.join(temp, 'plugins'), { recursive: true });
|
|
376
|
-
for (const macro of manifest.macros) {
|
|
377
|
-
copyFileSync(path.join(packaged.plugins, macro), kitPlugin(temp, macro));
|
|
378
|
-
chmodSync(kitPlugin(temp, macro), 0o755);
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
407
|
for (const macro of wasmPlugins) {
|
|
382
408
|
mkdirSync(path.join(temp, 'wasm-plugins'), { recursive: true });
|
|
383
409
|
copyFileSync(kitWasmPlugin(packaged.dir, macro), kitWasmPlugin(temp, macro));
|
|
384
410
|
}
|
|
385
411
|
rmSync(dir, { recursive: true, force: true });
|
|
386
412
|
renameSync(temp, dir);
|
|
387
|
-
|
|
413
|
+
// Written where the kit stays: the scripts name its WebAssembly by path.
|
|
414
|
+
const launchers = writePluginLaunchers(dir, manifest.macros, options.node, options.launcher === undefined ? pluginExecutable() : options.launcher);
|
|
415
|
+
if (nativeMacros && !launchers) {
|
|
416
|
+
rmSync(dir, { recursive: true, force: true });
|
|
417
|
+
return null;
|
|
418
|
+
}
|
|
419
|
+
const installed = { ...manifest, dir, packaged: true, wasmPlugins, ...(launchers ? { pluginLaunchers: true } : {}) };
|
|
388
420
|
writeKitPackage(dir, installed);
|
|
389
421
|
writeFileSync(path.join(dir, 'kit.json'), `${JSON.stringify(installed, null, 2)}\n`);
|
|
390
422
|
return { dir, manifest: installed, package: path.join(dir, 'package') };
|
|
@@ -428,7 +460,8 @@ export async function ensureKit(source, swiftPackagePath, events = {}, packaged
|
|
|
428
460
|
const version = { version: source.version };
|
|
429
461
|
const id = kitId(swiftPackagePath, version);
|
|
430
462
|
const found = findKit(id, version);
|
|
431
|
-
|
|
463
|
+
// A released kit installed for the WebAssembly compiler alone has nothing a native toolchain can run for its macros.
|
|
464
|
+
if (found && !(toolchain && !found.manifest.macros.every((macro) => existsSync(kitPlugin(found.dir, macro)))))
|
|
432
465
|
return found;
|
|
433
466
|
const installed = packaged ? installPackagedKit(packaged, id, version, { nativeMacros: toolchain !== null }) : null;
|
|
434
467
|
if (installed) {
|