Skip to content

Commit fa57180

Browse files
committed
feat: add loongarch64 support
1 parent 9cd8dda commit fa57180

File tree

3 files changed

+42
-1
lines changed

3 files changed

+42
-1
lines changed

index.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@ const { version } = require('./package.json')
88
let arm64TargetX86_64
99
let arm64TargetAarch64
1010
let arm64TargetArmv7
11+
let arm64TargetLoongarch64
1112
let arm64TargetS390x
1213
let arm64TargetPowerpc64le
1314
let x64TargetX86_64
1415
let x64TargetAarch64
1516
let x64TargetArmv7
17+
let x64TargetLoongarch64
1618
let x64TargetS390x
1719
let x64TargetPowerpc64le
1820
const alias = {
@@ -37,6 +39,12 @@ try {
3739
} catch {
3840
// ignore
3941
}
42+
try {
43+
arm64TargetLoongarch64 =
44+
require('@napi-rs/cross-toolchain-arm64-target-loongarch64').toolchainPath
45+
} catch {
46+
// ignore
47+
}
4048
try {
4149
x64TargetX86_64 =
4250
require('@napi-rs/cross-toolchain-x64-target-x86_64').toolchainPath
@@ -55,6 +63,12 @@ try {
5563
} catch {
5664
// ignore
5765
}
66+
try {
67+
x64TargetLoongarch64 =
68+
require('@napi-rs/cross-toolchain-x64-target-loongarch64').toolchainPath
69+
} catch {
70+
// ignore
71+
}
5872
try {
5973
x64TargetS390x =
6074
require('@napi-rs/cross-toolchain-x64-target-s390x').toolchainPath
@@ -90,13 +104,16 @@ module.exports.x64TargetS390x = x64TargetS390x
90104
module.exports.arm64TargetS390x = arm64TargetS390x
91105
module.exports.x64TargetPowerpc64le = x64TargetPowerpc64le
92106
module.exports.arm64TargetPowerpc64le = arm64TargetPowerpc64le
107+
module.exports.x64TargetLoongarch64 = x64TargetLoongarch64
108+
module.exports.arm64TargetLoongarch64 = arm64TargetLoongarch64
93109

94110
module.exports.arm64 = {
95111
'armv7-unknown-linux-gnueabihf': arm64TargetArmv7,
96112
'aarch64-unknown-linux-gnu': arm64TargetAarch64,
97113
'x86_64-unknown-linux-gnu': arm64TargetX86_64,
98114
's390x-unknown-linux-gnu': arm64TargetS390x,
99115
'powerpc64le-unknown-linux-gnu': arm64TargetPowerpc64le,
116+
'loongarch64-unknown-linux-gnu': arm64TargetLoongarch64,
100117
}
101118

102119
module.exports.x64 = {
@@ -105,6 +122,7 @@ module.exports.x64 = {
105122
'x86_64-unknown-linux-gnu': x64TargetX86_64,
106123
's390x-unknown-linux-gnu': x64TargetS390x,
107124
'powerpc64le-unknown-linux-gnu': x64TargetPowerpc64le,
125+
'loongarch64-unknown-linux-gnu': x64TargetLoongarch64,
108126
}
109127

110128
module.exports.version = version
@@ -119,6 +137,8 @@ const packages = {
119137
's390x-unknown-linux-gnu': '@napi-rs/cross-toolchain-arm64-target-s390x',
120138
'powerpc64le-unknown-linux-gnu':
121139
'@napi-rs/cross-toolchain-arm64-target-ppc64le',
140+
'loongarch64-unknown-linux-gnu':
141+
'@napi-rs/cross-toolchain-arm64-target-loongarch64',
122142
},
123143
x64: {
124144
'armv7-unknown-linux-gnueabihf':
@@ -128,6 +148,8 @@ const packages = {
128148
's390x-unknown-linux-gnu': '@napi-rs/cross-toolchain-x64-target-s390x',
129149
'powerpc64le-unknown-linux-gnu':
130150
'@napi-rs/cross-toolchain-x64-target-ppc64le',
151+
'loongarch64-unknown-linux-gnu':
152+
'@napi-rs/cross-toolchain-x64-target-loongarch64',
131153
},
132154
}
133155

package.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,13 @@
3131
"peerDependencies": {
3232
"@napi-rs/cross-toolchain-arm64-target-aarch64": "^1.0.0",
3333
"@napi-rs/cross-toolchain-arm64-target-armv7": "^1.0.0",
34+
"@napi-rs/cross-toolchain-arm64-target-loongarch64": "^1.0.0",
3435
"@napi-rs/cross-toolchain-arm64-target-ppc64le": "^1.0.0",
3536
"@napi-rs/cross-toolchain-arm64-target-s390x": "^1.0.0",
3637
"@napi-rs/cross-toolchain-arm64-target-x86_64": "^1.0.0",
3738
"@napi-rs/cross-toolchain-x64-target-aarch64": "^1.0.0",
3839
"@napi-rs/cross-toolchain-x64-target-armv7": "^1.0.0",
40+
"@napi-rs/cross-toolchain-x64-target-loongarch64": "^1.0.0",
3941
"@napi-rs/cross-toolchain-x64-target-ppc64le": "^1.0.0",
4042
"@napi-rs/cross-toolchain-x64-target-s390x": "^1.0.0",
4143
"@napi-rs/cross-toolchain-x64-target-x86_64": "^1.0.0"
@@ -47,6 +49,9 @@
4749
"@napi-rs/cross-toolchain-arm64-target-armv7": {
4850
"optional": true
4951
},
52+
"@napi-rs/cross-toolchain-arm64-target-loongarch64": {
53+
"optional": true
54+
},
5055
"@napi-rs/cross-toolchain-arm64-target-ppc64le": {
5156
"optional": true
5257
},
@@ -62,6 +67,9 @@
6267
"@napi-rs/cross-toolchain-x64-target-armv7": {
6368
"optional": true
6469
},
70+
"@napi-rs/cross-toolchain-x64-target-loongarch64": {
71+
"optional": true
72+
},
6573
"@napi-rs/cross-toolchain-x64-target-ppc64le": {
6674
"optional": true
6775
},

update-toolchain.mjs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,29 +25,40 @@ const targets = [
2525
{
2626
name: 'x86_64-unknown-linux-gnu',
2727
tag: 'x86_64',
28+
image: 'messense/manylinux2014-cross',
2829
},
2930
{
3031
name: 'aarch64-unknown-linux-gnu',
3132
tag: 'aarch64',
33+
image: 'messense/manylinux2014-cross',
3234
},
3335
{
3436
name: 'armv7-unknown-linux-gnueabihf',
3537
tag: 'armv7',
38+
image: 'messense/manylinux2014-cross',
3639
},
3740
{
3841
name: 's390x-ibm-linux-gnu',
3942
tag: 's390x',
43+
image: 'messense/manylinux2014-cross',
4044
},
4145
{
4246
name: 'powerpc64le-unknown-linux-gnu',
4347
tag: 'ppc64le',
48+
image: 'messense/manylinux2014-cross',
49+
},
50+
{
51+
name: 'loongarch64-unknown-linux-gnu',
52+
tag: 'loongarch64',
53+
// messense/manylinux2014-cross doesn't support loongarch64, so we are using manylinux_2_36-cross here
54+
image: 'messense/manylinux_2_36-cross',
4455
},
4556
]
4657

4758
for (const host of hosts) {
4859
for (const target of targets) {
4960
execSync(
50-
`docker run --rm --platform=linux/${host.name} -v "$(pwd)/${host.nameInNode}":/${host.nameInNode} messense/manylinux2014-cross:${target.tag} bash -c "tar -cvf /${host.nameInNode}/${target.name}.tar /usr/${target.name}"`,
61+
`docker run --rm --platform=linux/${host.name} -v "$(pwd)/${host.nameInNode}":/${host.nameInNode} ${target.image}:${target.tag} bash -c "tar -cvf /${host.nameInNode}/${target.name}.tar /usr/${target.name}"`,
5162
{
5263
encoding: 'utf8',
5364
stdio: 'inherit',

0 commit comments

Comments
 (0)