@napi-rs/cli 3.0.0-alpha.45 → 3.0.0-alpha.47
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/api/new.js +11 -0
- package/dist/api/new.js.map +1 -1
- package/dist/api/templates/ci-template.d.ts +2 -1
- package/dist/api/templates/ci-template.js +22 -5
- package/dist/api/templates/ci-template.js.map +1 -1
- package/dist/api/templates/ci.yml.d.ts +2 -1
- package/dist/api/templates/ci.yml.js +5 -3
- package/dist/api/templates/ci.yml.js.map +1 -1
- package/dist/api/templates/js-binding.js +7 -1
- package/dist/api/templates/js-binding.js.map +1 -1
- package/dist/api/templates/load-wasi-template.js +8 -4
- package/dist/api/templates/load-wasi-template.js.map +1 -1
- package/dist/commands/new.js +3 -3
- package/dist/commands/new.js.map +1 -1
- package/dist/index.cjs +71 -28
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.js +0 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/target.d.ts +1 -1
- package/dist/utils/target.js +9 -1
- package/dist/utils/target.js.map +1 -1
- package/package.json +5 -4
- package/src/api/new.ts +15 -0
- package/src/api/templates/ci-template.ts +30 -5
- package/src/api/templates/ci.yml.ts +7 -3
- package/src/api/templates/js-binding.ts +7 -1
- package/src/api/templates/load-wasi-template.ts +8 -4
- package/src/commands/new.ts +3 -3
- package/src/utils/__tests__/__snapshots__/config.spec.ts.snap +0 -0
- package/src/utils/__tests__/__snapshots__/target.spec.ts.md +21 -0
- package/src/utils/__tests__/__snapshots__/target.spec.ts.snap +0 -0
- package/src/utils/__tests__/__snapshots__/typegen.spec.ts.snap +0 -0
- package/src/utils/__tests__/__snapshots__/version.spec.ts.snap +0 -0
- package/src/utils/index.ts +0 -1
- package/src/utils/target.ts +11 -1
- package/dist/utils/ci.d.ts +0 -11
- package/dist/utils/ci.js +0 -96
- package/dist/utils/ci.js.map +0 -1
- package/src/utils/ci.ts +0 -111
package/dist/utils/target.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export type Platform = NodeJS.Platform | 'wasm' | 'wasi';
|
|
|
3
3
|
export declare const UNIVERSAL_TARGETS: {
|
|
4
4
|
readonly 'universal-apple-darwin': readonly ["aarch64-apple-darwin", "x86_64-apple-darwin"];
|
|
5
5
|
};
|
|
6
|
-
export declare const AVAILABLE_TARGETS: readonly ["aarch64-apple-darwin", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "aarch64-unknown-linux-musl", "aarch64-pc-windows-msvc", "x86_64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl", "x86_64-unknown-freebsd", "i686-pc-windows-msvc", "armv7-unknown-linux-gnueabihf", "armv7-linux-androideabi", "universal-apple-darwin", "riscv64gc-unknown-linux-gnu", "wasm32-wasi-preview1-threads"];
|
|
6
|
+
export declare const AVAILABLE_TARGETS: readonly ["aarch64-apple-darwin", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "aarch64-unknown-linux-musl", "aarch64-pc-windows-msvc", "x86_64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl", "x86_64-unknown-freebsd", "i686-pc-windows-msvc", "armv7-unknown-linux-gnueabihf", "armv7-unknown-linux-musleabihf", "armv7-linux-androideabi", "universal-apple-darwin", "riscv64gc-unknown-linux-gnu", "powerpc64le-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-wasi-preview1-threads"];
|
|
7
7
|
export type TargetTriple = (typeof AVAILABLE_TARGETS)[number];
|
|
8
8
|
export declare const DEFAULT_TARGETS: readonly ["x86_64-apple-darwin", "aarch64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu"];
|
|
9
9
|
export declare const TARGET_LINKER: Record<string, string>;
|
package/dist/utils/target.js
CHANGED
|
@@ -15,9 +15,12 @@ export const AVAILABLE_TARGETS = [
|
|
|
15
15
|
'x86_64-unknown-freebsd',
|
|
16
16
|
'i686-pc-windows-msvc',
|
|
17
17
|
'armv7-unknown-linux-gnueabihf',
|
|
18
|
+
'armv7-unknown-linux-musleabihf',
|
|
18
19
|
'armv7-linux-androideabi',
|
|
19
20
|
'universal-apple-darwin',
|
|
20
21
|
'riscv64gc-unknown-linux-gnu',
|
|
22
|
+
'powerpc64le-unknown-linux-gnu',
|
|
23
|
+
's390x-unknown-linux-gnu',
|
|
21
24
|
'wasm32-wasi-preview1-threads',
|
|
22
25
|
];
|
|
23
26
|
export const DEFAULT_TARGETS = [
|
|
@@ -29,6 +32,8 @@ export const DEFAULT_TARGETS = [
|
|
|
29
32
|
export const TARGET_LINKER = {
|
|
30
33
|
'aarch64-unknown-linux-musl': 'aarch64-linux-musl-gcc',
|
|
31
34
|
'riscv64gc-unknown-linux-gnu': 'riscv64-linux-gnu-gcc',
|
|
35
|
+
'powerpc64le-unknown-linux-gnu': 'powerpc64le-linux-gnu-gcc',
|
|
36
|
+
's390x-unknown-linux-gnu': 's390x-linux-gnu-gcc',
|
|
32
37
|
};
|
|
33
38
|
const CpuToNodeArch = {
|
|
34
39
|
x86_64: 'x64',
|
|
@@ -36,6 +41,7 @@ const CpuToNodeArch = {
|
|
|
36
41
|
i686: 'ia32',
|
|
37
42
|
armv7: 'arm',
|
|
38
43
|
riscv64gc: 'riscv64',
|
|
44
|
+
powerpc64le: 'ppc64',
|
|
39
45
|
};
|
|
40
46
|
export const NodeArchToCpu = {
|
|
41
47
|
x64: 'x86_64',
|
|
@@ -43,6 +49,7 @@ export const NodeArchToCpu = {
|
|
|
43
49
|
ia32: 'i686',
|
|
44
50
|
arm: 'armv7',
|
|
45
51
|
riscv64: 'riscv64gc',
|
|
52
|
+
ppc64: 'powerpc64le',
|
|
46
53
|
};
|
|
47
54
|
const SysToNodePlatform = {
|
|
48
55
|
linux: 'linux',
|
|
@@ -64,7 +71,8 @@ export const UniArchsByPlatform = {
|
|
|
64
71
|
* - `abi` = The ABI, for example `gnu`, `android`, `eabi`, etc.
|
|
65
72
|
*/
|
|
66
73
|
export function parseTriple(rawTriple) {
|
|
67
|
-
if (rawTriple === 'wasm32-wasi-preview1-threads'
|
|
74
|
+
if (rawTriple === 'wasm32-wasi-preview1-threads' ||
|
|
75
|
+
rawTriple.startsWith('wasm32-wasip')) {
|
|
68
76
|
return {
|
|
69
77
|
triple: rawTriple,
|
|
70
78
|
platformArchABI: 'wasm32-wasi',
|
package/dist/utils/target.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"target.js","sourceRoot":"","sources":["../../src/utils/target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAI7C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,wBAAwB,EAAE,CAAC,sBAAsB,EAAE,qBAAqB,CAAC;CACjE,CAAA;AAEV,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,sBAAsB;IACtB,uBAAuB;IACvB,2BAA2B;IAC3B,4BAA4B;IAC5B,yBAAyB;IACzB,qBAAqB;IACrB,wBAAwB;IACxB,0BAA0B;IAC1B,2BAA2B;IAC3B,wBAAwB;IACxB,sBAAsB;IACtB,+BAA+B;IAC/B,yBAAyB;IACzB,wBAAwB;IACxB,6BAA6B;IAC7B,8BAA8B;CACtB,CAAA;AAIV,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,qBAAqB;IACrB,sBAAsB;IACtB,wBAAwB;IACxB,0BAA0B;CAClB,CAAA;AAEV,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,4BAA4B,EAAE,wBAAwB;IACtD,6BAA6B,EAAE,uBAAuB;
|
|
1
|
+
{"version":3,"file":"target.js","sourceRoot":"","sources":["../../src/utils/target.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@napi-rs/cli",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.47",
|
|
4
4
|
"description": "Cli tools for napi-rs",
|
|
5
5
|
"author": "LongYinan <lynweklm@gmail.com>",
|
|
6
6
|
"homepage": "https://github.com/napi-rs/napi-rs",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"clipanion": "^3.2.1",
|
|
73
73
|
"colorette": "^2.0.20",
|
|
74
74
|
"debug": "^4.3.4",
|
|
75
|
-
"emnapi": "1.1.
|
|
75
|
+
"emnapi": "1.1.1",
|
|
76
76
|
"inquirer": "^9.2.13",
|
|
77
77
|
"js-yaml": "^4.1.0",
|
|
78
78
|
"lodash-es": "^4.17.21",
|
|
@@ -89,13 +89,14 @@
|
|
|
89
89
|
"@types/js-yaml": "^4.0.9",
|
|
90
90
|
"@types/lodash-es": "^4.17.12",
|
|
91
91
|
"@types/node": "^20.11.13",
|
|
92
|
+
"@types/semver": "^7.5.8",
|
|
92
93
|
"ava": "^6.1.1",
|
|
93
94
|
"env-paths": "^3.0.0",
|
|
94
95
|
"esbuild": "^0.20.0",
|
|
95
96
|
"prettier": "^3.2.4",
|
|
96
97
|
"ts-node": "^10.9.2",
|
|
97
98
|
"tslib": "^2.6.2",
|
|
98
|
-
"typescript": "^5.
|
|
99
|
+
"typescript": "^5.4.4"
|
|
99
100
|
},
|
|
100
101
|
"peerDependencies": {
|
|
101
102
|
"@emnapi/runtime": "^1.1.0",
|
|
@@ -127,5 +128,5 @@
|
|
|
127
128
|
"**/__tests__/**/*.spec.ts"
|
|
128
129
|
]
|
|
129
130
|
},
|
|
130
|
-
"gitHead": "
|
|
131
|
+
"gitHead": "af625fc7df762a2de73223913d1daa4a6849fade"
|
|
131
132
|
}
|
package/src/api/new.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { execSync } from 'node:child_process'
|
|
1
2
|
import path from 'node:path'
|
|
2
3
|
|
|
3
4
|
import {
|
|
@@ -61,6 +62,20 @@ function processOptions(options: RawNewOptions) {
|
|
|
61
62
|
throw new Error('At least one target must be enabled')
|
|
62
63
|
}
|
|
63
64
|
}
|
|
65
|
+
if (
|
|
66
|
+
options.targets.some((target) => target === 'wasm32-wasi-preview1-threads')
|
|
67
|
+
) {
|
|
68
|
+
const out = execSync(`rustup target list`, {
|
|
69
|
+
encoding: 'utf8',
|
|
70
|
+
})
|
|
71
|
+
if (out.includes('wasm32-wasip1-threads')) {
|
|
72
|
+
options.targets.map((target) =>
|
|
73
|
+
target === 'wasm32-wasi-preview1-threads'
|
|
74
|
+
? 'wasm32-wasip1-threads'
|
|
75
|
+
: target,
|
|
76
|
+
)
|
|
77
|
+
}
|
|
78
|
+
}
|
|
64
79
|
|
|
65
80
|
return applyDefaultNewOptions(options) as NewOptions
|
|
66
81
|
}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import type { SupportedPackageManager } from '../../utils/config.js'
|
|
2
2
|
|
|
3
|
-
export
|
|
3
|
+
export type WasiTargetName =
|
|
4
|
+
| 'wasm32-wasi-preview1-threads'
|
|
5
|
+
| 'wasm32-wasip1-threads'
|
|
6
|
+
| 'wasm32-wasip2'
|
|
7
|
+
|
|
8
|
+
export const YAML = (
|
|
9
|
+
packageManager: SupportedPackageManager,
|
|
10
|
+
wasiTargetName?: WasiTargetName,
|
|
11
|
+
) => `
|
|
4
12
|
name: CI
|
|
5
13
|
|
|
6
14
|
env:
|
|
@@ -58,6 +66,9 @@ jobs:
|
|
|
58
66
|
- host: ubuntu-latest
|
|
59
67
|
target: 'armv7-unknown-linux-gnueabihf'
|
|
60
68
|
build: ${packageManager} build --platform --target armv7-unknown-linux-gnueabihf --use-napi-cross
|
|
69
|
+
- host: ubuntu-latest
|
|
70
|
+
target: 'armv7-unknown-linux-musleabihf'
|
|
71
|
+
build: ${packageManager} build --platform --target armv7-unknown-linux-musleabihf -x
|
|
61
72
|
- host: ubuntu-latest
|
|
62
73
|
target: 'aarch64-linux-android'
|
|
63
74
|
build: ${packageManager} build --platform --target aarch64-linux-android
|
|
@@ -76,9 +87,23 @@ jobs:
|
|
|
76
87
|
sudo apt-get update
|
|
77
88
|
sudo apt-get install gcc-riscv64-linux-gnu -y
|
|
78
89
|
build: ${packageManager} build --platform --target riscv64gc-unknown-linux-gnu
|
|
90
|
+
- host: ubuntu-latest
|
|
91
|
+
target: 'powerpc64le-unknown-linux-gnu'
|
|
92
|
+
setup: |
|
|
93
|
+
sudo apt-get update
|
|
94
|
+
sudo apt-get install gcc-powerpc64le-linux-gnu -y
|
|
95
|
+
build: ${packageManager} build --platform --target powerpc64le-unknown-linux-gnu
|
|
96
|
+
- host: ubuntu-latest
|
|
97
|
+
target: 's390x-unknown-linux-gnu'
|
|
98
|
+
setup: |
|
|
99
|
+
sudo apt-get update
|
|
100
|
+
sudo apt-get install gcc-s390x-linux-gnu -y
|
|
101
|
+
build: ${packageManager} build --platform --target s390x-unknown-linux-gnu
|
|
79
102
|
- host: ubuntu-latest
|
|
80
103
|
target: 'wasm32-wasi-preview1-threads'
|
|
81
104
|
build: ${packageManager} build --platform --target wasm32-wasi-preview1-threads
|
|
105
|
+
target: '${wasiTargetName}'
|
|
106
|
+
build: ${packageManager} build --platform --target ${wasiTargetName}
|
|
82
107
|
|
|
83
108
|
name: stable - \${{ matrix.settings.target }} - node@20
|
|
84
109
|
runs-on: \${{ matrix.settings.host }}
|
|
@@ -141,7 +166,7 @@ jobs:
|
|
|
141
166
|
|
|
142
167
|
- name: Upload artifact
|
|
143
168
|
uses: actions/upload-artifact@v4
|
|
144
|
-
if: matrix.settings.target != '
|
|
169
|
+
if: matrix.settings.target != '${wasiTargetName}'
|
|
145
170
|
with:
|
|
146
171
|
name: bindings-\${{ matrix.settings.target }}
|
|
147
172
|
path: "*.node"
|
|
@@ -149,7 +174,7 @@ jobs:
|
|
|
149
174
|
|
|
150
175
|
- name: Upload artifact
|
|
151
176
|
uses: actions/upload-artifact@v4
|
|
152
|
-
if: matrix.settings.target == '
|
|
177
|
+
if: matrix.settings.target == '${wasiTargetName}'
|
|
153
178
|
with:
|
|
154
179
|
name: bindings-\${{ matrix.settings.target }}
|
|
155
180
|
path: "*.wasm"
|
|
@@ -162,7 +187,7 @@ jobs:
|
|
|
162
187
|
- uses: actions/checkout@v4
|
|
163
188
|
- name: Build
|
|
164
189
|
id: build
|
|
165
|
-
uses: cross-platform-actions/action@v0.
|
|
190
|
+
uses: cross-platform-actions/action@v0.23.0
|
|
166
191
|
timeout-minutes: 30
|
|
167
192
|
env:
|
|
168
193
|
DEBUG: 'napi:*'
|
|
@@ -496,7 +521,7 @@ jobs:
|
|
|
496
521
|
- name: Download artifacts
|
|
497
522
|
uses: actions/download-artifact@v4
|
|
498
523
|
with:
|
|
499
|
-
name: bindings
|
|
524
|
+
name: bindings-${wasiTargetName}
|
|
500
525
|
path: .
|
|
501
526
|
- name: List packages
|
|
502
527
|
run: ls -R .
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
parseTriple,
|
|
8
8
|
} from '../../utils/index.js'
|
|
9
9
|
|
|
10
|
-
import { YAML } from './ci-template.js'
|
|
10
|
+
import { type WasiTargetName, YAML } from './ci-template.js'
|
|
11
11
|
|
|
12
12
|
const BUILD_FREEBSD = 'build-freebsd'
|
|
13
13
|
const TEST_MACOS_WINDOWS = 'test-macOS-windows-binding'
|
|
@@ -22,6 +22,7 @@ const UNIVERSAL_MACOS = 'universal-macOS'
|
|
|
22
22
|
export const createGithubActionsCIYml = (
|
|
23
23
|
targets: string[],
|
|
24
24
|
packageManager: SupportedPackageManager,
|
|
25
|
+
wasiTargetName?: WasiTargetName,
|
|
25
26
|
) => {
|
|
26
27
|
const allTargets = new Set(
|
|
27
28
|
targets.flatMap((t) => {
|
|
@@ -36,7 +37,7 @@ export const createGithubActionsCIYml = (
|
|
|
36
37
|
}),
|
|
37
38
|
)
|
|
38
39
|
|
|
39
|
-
const fullTemplate = load(YAML(packageManager)) as any
|
|
40
|
+
const fullTemplate = load(YAML(packageManager, wasiTargetName)) as any
|
|
40
41
|
|
|
41
42
|
const requiredSteps = []
|
|
42
43
|
const enableWindowsX86 = allTargets.has('x86_64-pc-windows-msvc')
|
|
@@ -48,7 +49,10 @@ export const createGithubActionsCIYml = (
|
|
|
48
49
|
const enableLinuxArm7 = allTargets.has('armv7-unknown-linux-gnueabihf')
|
|
49
50
|
const enableFreeBSD = allTargets.has('x86_64-unknown-freebsd')
|
|
50
51
|
const enableMacOSUni = allTargets.has('universal-apple-darwin')
|
|
51
|
-
const enableWasi =
|
|
52
|
+
const enableWasi =
|
|
53
|
+
allTargets.has('wasm32-wasi-preview1-threads') ||
|
|
54
|
+
allTargets.has('wasm32-wasip1-threads') ||
|
|
55
|
+
allTargets.has('wasm32-wasip2')
|
|
52
56
|
fullTemplate.jobs.build.strategy.matrix.settings =
|
|
53
57
|
fullTemplate.jobs.build.strategy.matrix.settings.filter(
|
|
54
58
|
({ target }: { target: string }) => allTargets.has(target),
|
|
@@ -125,13 +125,19 @@ function requireNative() {
|
|
|
125
125
|
${requireTuple('linux-arm64-gnu')}
|
|
126
126
|
}
|
|
127
127
|
} else if (process.arch === 'arm') {
|
|
128
|
-
|
|
128
|
+
if (isMusl()) {
|
|
129
|
+
${requireTuple('linux-arm-musleabihf')}
|
|
130
|
+
} else {
|
|
131
|
+
${requireTuple('linux-arm-gnueabihf')}
|
|
132
|
+
}
|
|
129
133
|
} else if (process.arch === 'riscv64') {
|
|
130
134
|
if (isMusl()) {
|
|
131
135
|
${requireTuple('linux-riscv64-musl')}
|
|
132
136
|
} else {
|
|
133
137
|
${requireTuple('linux-riscv64-gnu')}
|
|
134
138
|
}
|
|
139
|
+
} else if (process.arch === 'ppc64') {
|
|
140
|
+
${requireTuple('linux-ppc64-gnu')}
|
|
135
141
|
} else if (process.arch === 's390x') {
|
|
136
142
|
${requireTuple('linux-s390x-gnu')}
|
|
137
143
|
} else {
|
|
@@ -24,8 +24,10 @@ const __wasi = new __WASI({
|
|
|
24
24
|
const __emnapiContext = __emnapiGetDefaultContext()
|
|
25
25
|
|
|
26
26
|
const __sharedMemory = new WebAssembly.Memory({
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
// 1Gb
|
|
28
|
+
initial: 16384,
|
|
29
|
+
// 4Gb
|
|
30
|
+
maximum: 65536,
|
|
29
31
|
shared: true,
|
|
30
32
|
})
|
|
31
33
|
|
|
@@ -95,8 +97,10 @@ const __wasi = new __nodeWASI({
|
|
|
95
97
|
const __emnapiContext = __emnapiGetDefaultContext()
|
|
96
98
|
|
|
97
99
|
const __sharedMemory = new WebAssembly.Memory({
|
|
98
|
-
|
|
99
|
-
|
|
100
|
+
// 1Gb
|
|
101
|
+
initial: 16384,
|
|
102
|
+
// 4Gb
|
|
103
|
+
maximum: 65536,
|
|
100
104
|
shared: true,
|
|
101
105
|
})
|
|
102
106
|
|
package/src/commands/new.ts
CHANGED
|
@@ -64,14 +64,14 @@ export class NewCommand extends BaseNewCommand {
|
|
|
64
64
|
private async fetchName(defaultName: string): Promise<string> {
|
|
65
65
|
return (
|
|
66
66
|
this.$$name ??
|
|
67
|
-
|
|
67
|
+
inquirer
|
|
68
68
|
.prompt({
|
|
69
69
|
type: 'input',
|
|
70
70
|
name: 'name',
|
|
71
71
|
message: 'Package name (the name field in your package.json file)',
|
|
72
72
|
default: defaultName,
|
|
73
73
|
})
|
|
74
|
-
.then(({ name }) => name)
|
|
74
|
+
.then(({ name }) => name)
|
|
75
75
|
)
|
|
76
76
|
}
|
|
77
77
|
|
|
@@ -93,7 +93,7 @@ export class NewCommand extends BaseNewCommand {
|
|
|
93
93
|
name: 'minNodeApiVersion',
|
|
94
94
|
message: 'Minimum node-api version (with node version requirement)',
|
|
95
95
|
loop: false,
|
|
96
|
-
choices:
|
|
96
|
+
choices: Array.from({ length: 8 }, (_, i) => ({
|
|
97
97
|
name: `napi${i + 1} (${napiEngineRequirement(i + 1)})`,
|
|
98
98
|
value: i + 1,
|
|
99
99
|
})),
|
|
Binary file
|
|
@@ -93,6 +93,13 @@ Generated by [AVA](https://avajs.dev).
|
|
|
93
93
|
platformArchABI: 'linux-arm-gnueabihf',
|
|
94
94
|
triple: 'armv7-unknown-linux-gnueabihf',
|
|
95
95
|
},
|
|
96
|
+
{
|
|
97
|
+
abi: 'musleabihf',
|
|
98
|
+
arch: 'arm',
|
|
99
|
+
platform: 'linux',
|
|
100
|
+
platformArchABI: 'linux-arm-musleabihf',
|
|
101
|
+
triple: 'armv7-unknown-linux-musleabihf',
|
|
102
|
+
},
|
|
96
103
|
{
|
|
97
104
|
abi: 'eabi',
|
|
98
105
|
arch: 'arm',
|
|
@@ -114,6 +121,20 @@ Generated by [AVA](https://avajs.dev).
|
|
|
114
121
|
platformArchABI: 'linux-riscv64-gnu',
|
|
115
122
|
triple: 'riscv64gc-unknown-linux-gnu',
|
|
116
123
|
},
|
|
124
|
+
{
|
|
125
|
+
abi: 'gnu',
|
|
126
|
+
arch: 'ppc64',
|
|
127
|
+
platform: 'linux',
|
|
128
|
+
platformArchABI: 'linux-ppc64-gnu',
|
|
129
|
+
triple: 'powerpc64le-unknown-linux-gnu',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
abi: 'gnu',
|
|
133
|
+
arch: 's390x',
|
|
134
|
+
platform: 'linux',
|
|
135
|
+
platformArchABI: 'linux-s390x-gnu',
|
|
136
|
+
triple: 's390x-unknown-linux-gnu',
|
|
137
|
+
},
|
|
117
138
|
{
|
|
118
139
|
abi: 'wasi',
|
|
119
140
|
arch: 'wasm32',
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/src/utils/index.ts
CHANGED
package/src/utils/target.ts
CHANGED
|
@@ -19,9 +19,12 @@ export const AVAILABLE_TARGETS = [
|
|
|
19
19
|
'x86_64-unknown-freebsd',
|
|
20
20
|
'i686-pc-windows-msvc',
|
|
21
21
|
'armv7-unknown-linux-gnueabihf',
|
|
22
|
+
'armv7-unknown-linux-musleabihf',
|
|
22
23
|
'armv7-linux-androideabi',
|
|
23
24
|
'universal-apple-darwin',
|
|
24
25
|
'riscv64gc-unknown-linux-gnu',
|
|
26
|
+
'powerpc64le-unknown-linux-gnu',
|
|
27
|
+
's390x-unknown-linux-gnu',
|
|
25
28
|
'wasm32-wasi-preview1-threads',
|
|
26
29
|
] as const
|
|
27
30
|
|
|
@@ -37,6 +40,8 @@ export const DEFAULT_TARGETS = [
|
|
|
37
40
|
export const TARGET_LINKER: Record<string, string> = {
|
|
38
41
|
'aarch64-unknown-linux-musl': 'aarch64-linux-musl-gcc',
|
|
39
42
|
'riscv64gc-unknown-linux-gnu': 'riscv64-linux-gnu-gcc',
|
|
43
|
+
'powerpc64le-unknown-linux-gnu': 'powerpc64le-linux-gnu-gcc',
|
|
44
|
+
's390x-unknown-linux-gnu': 's390x-linux-gnu-gcc',
|
|
40
45
|
}
|
|
41
46
|
|
|
42
47
|
// https://nodejs.org/api/process.html#process_process_arch
|
|
@@ -62,6 +67,7 @@ const CpuToNodeArch: Record<string, NodeJSArch> = {
|
|
|
62
67
|
i686: 'ia32',
|
|
63
68
|
armv7: 'arm',
|
|
64
69
|
riscv64gc: 'riscv64',
|
|
70
|
+
powerpc64le: 'ppc64',
|
|
65
71
|
}
|
|
66
72
|
|
|
67
73
|
export const NodeArchToCpu: Record<string, string> = {
|
|
@@ -70,6 +76,7 @@ export const NodeArchToCpu: Record<string, string> = {
|
|
|
70
76
|
ia32: 'i686',
|
|
71
77
|
arm: 'armv7',
|
|
72
78
|
riscv64: 'riscv64gc',
|
|
79
|
+
ppc64: 'powerpc64le',
|
|
73
80
|
}
|
|
74
81
|
|
|
75
82
|
const SysToNodePlatform: Record<string, Platform> = {
|
|
@@ -102,7 +109,10 @@ export interface Target {
|
|
|
102
109
|
* - `abi` = The ABI, for example `gnu`, `android`, `eabi`, etc.
|
|
103
110
|
*/
|
|
104
111
|
export function parseTriple(rawTriple: string): Target {
|
|
105
|
-
if (
|
|
112
|
+
if (
|
|
113
|
+
rawTriple === 'wasm32-wasi-preview1-threads' ||
|
|
114
|
+
rawTriple.startsWith('wasm32-wasip')
|
|
115
|
+
) {
|
|
106
116
|
return {
|
|
107
117
|
triple: rawTriple,
|
|
108
118
|
platformArchABI: 'wasm32-wasi',
|
package/dist/utils/ci.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { TargetTriple } from './target.js';
|
|
2
|
-
export declare const CIConfig: Partial<Record<TargetTriple, {
|
|
3
|
-
host: string;
|
|
4
|
-
build_image?: string;
|
|
5
|
-
build_setup?: string[];
|
|
6
|
-
test?: boolean;
|
|
7
|
-
test_image?: string;
|
|
8
|
-
test_setup?: string[];
|
|
9
|
-
yarn_cpu?: string;
|
|
10
|
-
yarn_libc?: string;
|
|
11
|
-
}>>;
|
package/dist/utils/ci.js
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
export const CIConfig = {
|
|
2
|
-
'x86_64-apple-darwin': {
|
|
3
|
-
host: 'macos-latest',
|
|
4
|
-
},
|
|
5
|
-
'x86_64-pc-windows-msvc': {
|
|
6
|
-
host: 'windows-latest',
|
|
7
|
-
},
|
|
8
|
-
'i686-pc-windows-msvc': {
|
|
9
|
-
host: 'windows-latest',
|
|
10
|
-
test: false,
|
|
11
|
-
},
|
|
12
|
-
'x86_64-unknown-linux-gnu': {
|
|
13
|
-
host: 'ubuntu-latest',
|
|
14
|
-
build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian',
|
|
15
|
-
},
|
|
16
|
-
'x86_64-unknown-linux-musl': {
|
|
17
|
-
host: 'ubuntu-latest',
|
|
18
|
-
build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine',
|
|
19
|
-
test_image: 'node:${{ matrix.node }}-alpine',
|
|
20
|
-
yarn_libc: 'musl',
|
|
21
|
-
},
|
|
22
|
-
'aarch64-apple-darwin': {
|
|
23
|
-
host: 'macos-latest',
|
|
24
|
-
build_setup: [
|
|
25
|
-
'sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*',
|
|
26
|
-
'export CC=$(xcrun -f clang)',
|
|
27
|
-
'export CXX=$(xcrun -f clang++)',
|
|
28
|
-
'export SDK_ROOT=$(xcrun --sdk macosx --show-sdk-path)',
|
|
29
|
-
'export CFLAGS="-isysroot $SDK_ROOT -isystem $SDK_ROOT"',
|
|
30
|
-
],
|
|
31
|
-
test: false,
|
|
32
|
-
},
|
|
33
|
-
'aarch64-unknown-linux-gnu': {
|
|
34
|
-
host: 'ubuntu-latest',
|
|
35
|
-
build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64',
|
|
36
|
-
build_setup: [
|
|
37
|
-
'sudo apt-get update',
|
|
38
|
-
'sudo apt-get install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu -y',
|
|
39
|
-
'export CARGO_BUILD_TARGET=x86_64-unknown-linux-gnu',
|
|
40
|
-
],
|
|
41
|
-
test_image: 'ghcr.io/napi-rs/napi-rs/nodejs:aarch64-${{ matrix.node }}',
|
|
42
|
-
yarn_cpu: 'arm64',
|
|
43
|
-
},
|
|
44
|
-
'aarch64-unknown-linux-musl': {
|
|
45
|
-
host: 'ubuntu-latest',
|
|
46
|
-
build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine',
|
|
47
|
-
build_setup: ['rustup target add aarch64-unknown-linux-musl'],
|
|
48
|
-
test_image: 'multiarch/alpine:aarch64-latest-stable',
|
|
49
|
-
test_setup: ['apk add nodejs npm yarn'],
|
|
50
|
-
yarn_cpu: 'arm64',
|
|
51
|
-
yarn_libc: 'musl',
|
|
52
|
-
},
|
|
53
|
-
'aarch64-pc-windows-msvc': {
|
|
54
|
-
host: 'windows-latest',
|
|
55
|
-
test: false,
|
|
56
|
-
},
|
|
57
|
-
'armv7-unknown-linux-gnueabihf': {
|
|
58
|
-
host: 'ubuntu-latest',
|
|
59
|
-
build_setup: [
|
|
60
|
-
'sudo apt-get update',
|
|
61
|
-
'sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf -y',
|
|
62
|
-
],
|
|
63
|
-
yarn_cpu: 'arm',
|
|
64
|
-
test_image: 'ghcr.io/napi-rs/napi-rs/nodejs:armhf-${{ matrix.node }}',
|
|
65
|
-
},
|
|
66
|
-
'aarch64-linux-android': {
|
|
67
|
-
host: 'ubuntu-latest',
|
|
68
|
-
build_setup: [
|
|
69
|
-
'export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"',
|
|
70
|
-
'export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"',
|
|
71
|
-
'export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++"',
|
|
72
|
-
'export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"',
|
|
73
|
-
],
|
|
74
|
-
test: false,
|
|
75
|
-
},
|
|
76
|
-
'armv7-linux-androideabi': {
|
|
77
|
-
host: 'ubuntu-latest',
|
|
78
|
-
build_setup: [
|
|
79
|
-
'export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang"',
|
|
80
|
-
'export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang"',
|
|
81
|
-
'export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang++"',
|
|
82
|
-
'export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"',
|
|
83
|
-
],
|
|
84
|
-
test: false,
|
|
85
|
-
},
|
|
86
|
-
'riscv64gc-unknown-linux-gnu': {
|
|
87
|
-
host: 'ubuntu-latest',
|
|
88
|
-
build_setup: [
|
|
89
|
-
'sudo apt-get update',
|
|
90
|
-
'sudo apt-get install g++-riscv64-linux-gnu gcc-riscv64-linux-gnu -y',
|
|
91
|
-
],
|
|
92
|
-
// No official nodejs docker image for riscv64
|
|
93
|
-
test: false,
|
|
94
|
-
},
|
|
95
|
-
};
|
|
96
|
-
//# sourceMappingURL=ci.js.map
|
package/dist/utils/ci.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ci.js","sourceRoot":"","sources":["../../src/utils/ci.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAcjB;IACF,qBAAqB,EAAE;QACrB,IAAI,EAAE,cAAc;KACrB;IACD,wBAAwB,EAAE;QACxB,IAAI,EAAE,gBAAgB;KACvB;IACD,sBAAsB,EAAE;QACtB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,KAAK;KACZ;IACD,0BAA0B,EAAE;QAC1B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,gDAAgD;KAC9D;IACD,2BAA2B,EAAE;QAC3B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,gDAAgD;QAC7D,UAAU,EAAE,gCAAgC;QAC5C,SAAS,EAAE,MAAM;KAClB;IACD,sBAAsB,EAAE;QACtB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE;YACX,wDAAwD;YACxD,6BAA6B;YAC7B,gCAAgC;YAChC,uDAAuD;YACvD,wDAAwD;SACzD;QACD,IAAI,EAAE,KAAK;KACZ;IACD,2BAA2B,EAAE;QAC3B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE;YACX,qBAAqB;YACrB,qEAAqE;YACrE,oDAAoD;SACrD;QACD,UAAU,EAAE,2DAA2D;QACvE,QAAQ,EAAE,OAAO;KAClB;IACD,4BAA4B,EAAE;QAC5B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,gDAAgD;QAC7D,WAAW,EAAE,CAAC,8CAA8C,CAAC;QAC7D,UAAU,EAAE,wCAAwC;QACpD,UAAU,EAAE,CAAC,yBAAyB,CAAC;QACvC,QAAQ,EAAE,OAAO;QACjB,SAAS,EAAE,MAAM;KAClB;IACD,yBAAyB,EAAE;QACzB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,KAAK;KACZ;IACD,+BAA+B,EAAE;QAC/B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;YACX,qBAAqB;YACrB,yEAAyE;SAC1E;QACD,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,yDAAyD;KACtE;IACD,uBAAuB,EAAE;QACvB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;YACX,gJAAgJ;YAChJ,yGAAyG;YACzG,4GAA4G;YAC5G,qFAAqF;SACtF;QACD,IAAI,EAAE,KAAK;KACZ;IACD,yBAAyB,EAAE;QACzB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;YACX,qJAAqJ;YACrJ,4GAA4G;YAC5G,+GAA+G;YAC/G,qFAAqF;SACtF;QACD,IAAI,EAAE,KAAK;KACZ;IACD,6BAA6B,EAAE;QAC7B,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;YACX,qBAAqB;YACrB,qEAAqE;SACtE;QACD,8CAA8C;QAC9C,IAAI,EAAE,KAAK;KACZ;CACF,CAAA"}
|
package/src/utils/ci.ts
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { TargetTriple } from './target.js'
|
|
2
|
-
|
|
3
|
-
export const CIConfig: Partial<
|
|
4
|
-
Record<
|
|
5
|
-
TargetTriple,
|
|
6
|
-
{
|
|
7
|
-
host: string
|
|
8
|
-
build_image?: string
|
|
9
|
-
build_setup?: string[]
|
|
10
|
-
test?: boolean
|
|
11
|
-
test_image?: string
|
|
12
|
-
test_setup?: string[]
|
|
13
|
-
yarn_cpu?: string
|
|
14
|
-
yarn_libc?: string
|
|
15
|
-
}
|
|
16
|
-
>
|
|
17
|
-
> = {
|
|
18
|
-
'x86_64-apple-darwin': {
|
|
19
|
-
host: 'macos-latest',
|
|
20
|
-
},
|
|
21
|
-
'x86_64-pc-windows-msvc': {
|
|
22
|
-
host: 'windows-latest',
|
|
23
|
-
},
|
|
24
|
-
'i686-pc-windows-msvc': {
|
|
25
|
-
host: 'windows-latest',
|
|
26
|
-
test: false,
|
|
27
|
-
},
|
|
28
|
-
'x86_64-unknown-linux-gnu': {
|
|
29
|
-
host: 'ubuntu-latest',
|
|
30
|
-
build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian',
|
|
31
|
-
},
|
|
32
|
-
'x86_64-unknown-linux-musl': {
|
|
33
|
-
host: 'ubuntu-latest',
|
|
34
|
-
build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine',
|
|
35
|
-
test_image: 'node:${{ matrix.node }}-alpine',
|
|
36
|
-
yarn_libc: 'musl',
|
|
37
|
-
},
|
|
38
|
-
'aarch64-apple-darwin': {
|
|
39
|
-
host: 'macos-latest',
|
|
40
|
-
build_setup: [
|
|
41
|
-
'sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*',
|
|
42
|
-
'export CC=$(xcrun -f clang)',
|
|
43
|
-
'export CXX=$(xcrun -f clang++)',
|
|
44
|
-
'export SDK_ROOT=$(xcrun --sdk macosx --show-sdk-path)',
|
|
45
|
-
'export CFLAGS="-isysroot $SDK_ROOT -isystem $SDK_ROOT"',
|
|
46
|
-
],
|
|
47
|
-
test: false,
|
|
48
|
-
},
|
|
49
|
-
'aarch64-unknown-linux-gnu': {
|
|
50
|
-
host: 'ubuntu-latest',
|
|
51
|
-
build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64',
|
|
52
|
-
build_setup: [
|
|
53
|
-
'sudo apt-get update',
|
|
54
|
-
'sudo apt-get install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu -y',
|
|
55
|
-
'export CARGO_BUILD_TARGET=x86_64-unknown-linux-gnu',
|
|
56
|
-
],
|
|
57
|
-
test_image: 'ghcr.io/napi-rs/napi-rs/nodejs:aarch64-${{ matrix.node }}',
|
|
58
|
-
yarn_cpu: 'arm64',
|
|
59
|
-
},
|
|
60
|
-
'aarch64-unknown-linux-musl': {
|
|
61
|
-
host: 'ubuntu-latest',
|
|
62
|
-
build_image: 'ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine',
|
|
63
|
-
build_setup: ['rustup target add aarch64-unknown-linux-musl'],
|
|
64
|
-
test_image: 'multiarch/alpine:aarch64-latest-stable',
|
|
65
|
-
test_setup: ['apk add nodejs npm yarn'],
|
|
66
|
-
yarn_cpu: 'arm64',
|
|
67
|
-
yarn_libc: 'musl',
|
|
68
|
-
},
|
|
69
|
-
'aarch64-pc-windows-msvc': {
|
|
70
|
-
host: 'windows-latest',
|
|
71
|
-
test: false,
|
|
72
|
-
},
|
|
73
|
-
'armv7-unknown-linux-gnueabihf': {
|
|
74
|
-
host: 'ubuntu-latest',
|
|
75
|
-
build_setup: [
|
|
76
|
-
'sudo apt-get update',
|
|
77
|
-
'sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf -y',
|
|
78
|
-
],
|
|
79
|
-
yarn_cpu: 'arm',
|
|
80
|
-
test_image: 'ghcr.io/napi-rs/napi-rs/nodejs:armhf-${{ matrix.node }}',
|
|
81
|
-
},
|
|
82
|
-
'aarch64-linux-android': {
|
|
83
|
-
host: 'ubuntu-latest',
|
|
84
|
-
build_setup: [
|
|
85
|
-
'export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"',
|
|
86
|
-
'export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"',
|
|
87
|
-
'export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++"',
|
|
88
|
-
'export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"',
|
|
89
|
-
],
|
|
90
|
-
test: false,
|
|
91
|
-
},
|
|
92
|
-
'armv7-linux-androideabi': {
|
|
93
|
-
host: 'ubuntu-latest',
|
|
94
|
-
build_setup: [
|
|
95
|
-
'export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang"',
|
|
96
|
-
'export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang"',
|
|
97
|
-
'export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang++"',
|
|
98
|
-
'export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}"',
|
|
99
|
-
],
|
|
100
|
-
test: false,
|
|
101
|
-
},
|
|
102
|
-
'riscv64gc-unknown-linux-gnu': {
|
|
103
|
-
host: 'ubuntu-latest',
|
|
104
|
-
build_setup: [
|
|
105
|
-
'sudo apt-get update',
|
|
106
|
-
'sudo apt-get install g++-riscv64-linux-gnu gcc-riscv64-linux-gnu -y',
|
|
107
|
-
],
|
|
108
|
-
// No official nodejs docker image for riscv64
|
|
109
|
-
test: false,
|
|
110
|
-
},
|
|
111
|
-
}
|