fix(cli): s390x cross toolchain path (#2432)

This commit is contained in:
LongYinan 2025-01-19 22:21:11 +08:00 committed by GitHub
parent c796918787
commit 978a00069b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 26 additions and 25 deletions

View File

@ -68,7 +68,7 @@
},
"dependencies": {
"@inquirer/prompts": "^7.0.0",
"@napi-rs/cross-toolchain": "^0.0.17",
"@napi-rs/cross-toolchain": "^0.0.18",
"@napi-rs/wasm-tools": "^0.0.2",
"@octokit/rest": "^21.0.2",
"clipanion": "^3.2.1",

View File

@ -179,6 +179,10 @@ class Builder {
try {
const { version, download } = require('@napi-rs/cross-toolchain')
const alias: Record<string, string> = {
's390x-unknown-linux-gnu': 's390x-ibm-linux-gnu',
}
const toolchainPath = join(
homedir(),
'.napi-rs',
@ -194,16 +198,17 @@ class Builder {
tarArchive.unpack(toolchainPath)
}
const upperCaseTarget = targetToEnvVar(this.target.triple)
const crossTargetName = alias[this.target.triple] ?? this.target.triple
const linkerEnv = `CARGO_TARGET_${upperCaseTarget}_LINKER`
this.envs[linkerEnv] = join(
toolchainPath,
'bin',
`${this.target.triple}-gcc`,
`${crossTargetName}-gcc`,
)
if (!process.env.TARGET_SYSROOT) {
this.envs[`TARGET_SYSROOT`] = join(
toolchainPath,
this.target.triple,
crossTargetName,
'sysroot',
)
}
@ -211,42 +216,38 @@ class Builder {
this.envs[`TARGET_AR`] = join(
toolchainPath,
'bin',
`${this.target.triple}-ar`,
`${crossTargetName}-ar`,
)
}
if (!process.env.TARGET_RANLIB) {
this.envs[`TARGET_RANLIB`] = join(
toolchainPath,
'bin',
`${this.target.triple}-ranlib`,
`${crossTargetName}-ranlib`,
)
}
if (!process.env.TARGET_READELF) {
this.envs[`TARGET_READELF`] = join(
toolchainPath,
'bin',
`${this.target.triple}-readelf`,
`${crossTargetName}-readelf`,
)
}
if (!process.env.TARGET_C_INCLUDE_PATH) {
this.envs[`TARGET_C_INCLUDE_PATH`] = join(
toolchainPath,
this.target.triple,
crossTargetName,
'sysroot',
'usr',
'include/',
)
}
if (!process.env.CC && !process.env.TARGET_CC) {
this.envs[`CC`] = join(
toolchainPath,
'bin',
`${this.target.triple}-gcc`,
)
this.envs[`CC`] = join(toolchainPath, 'bin', `${crossTargetName}-gcc`)
this.envs[`TARGET_CC`] = join(
toolchainPath,
'bin',
`${this.target.triple}-gcc`,
`${crossTargetName}-gcc`,
)
}
if (!process.env.CXX && !process.env.TARGET_CXX) {
@ -491,7 +492,7 @@ class Builder {
const linkerEnv = `CARGO_TARGET_${targetToEnvVar(
this.target.triple,
)}_LINKER`
if (linker && !process.env[linkerEnv]) {
if (linker && !process.env[linkerEnv] && !this.envs[linkerEnv]) {
this.envs[linkerEnv] = linker
}

View File

@ -808,7 +808,7 @@ __metadata:
"@emnapi/core": "npm:^1.3.1"
"@emnapi/runtime": "npm:^1.3.1"
"@inquirer/prompts": "npm:^7.0.0"
"@napi-rs/cross-toolchain": "npm:^0.0.17"
"@napi-rs/cross-toolchain": "npm:^0.0.18"
"@napi-rs/wasm-tools": "npm:^0.0.2"
"@octokit/rest": "npm:^21.0.2"
"@types/debug": "npm:^4.1.12"
@ -848,20 +848,20 @@ __metadata:
languageName: unknown
linkType: soft
"@napi-rs/cross-toolchain@npm:^0.0.17":
version: 0.0.17
resolution: "@napi-rs/cross-toolchain@npm:0.0.17"
"@napi-rs/cross-toolchain@npm:^0.0.18":
version: 0.0.18
resolution: "@napi-rs/cross-toolchain@npm:0.0.18"
dependencies:
"@napi-rs/lzma": "npm:^1.4.1"
"@napi-rs/tar": "npm:^0.1.4"
debug: "npm:^4.4.0"
peerDependencies:
"@napi-rs/cross-toolchain-arm64-target-aarch64": ^0.0.17
"@napi-rs/cross-toolchain-arm64-target-armv7": ^0.0.17
"@napi-rs/cross-toolchain-arm64-target-x86_64": ^0.0.17
"@napi-rs/cross-toolchain-x64-target-aarch64": ^0.0.17
"@napi-rs/cross-toolchain-x64-target-armv7": ^0.0.17
"@napi-rs/cross-toolchain-x64-target-x86_64": ^0.0.17
"@napi-rs/cross-toolchain-arm64-target-aarch64": ^0.0.18
"@napi-rs/cross-toolchain-arm64-target-armv7": ^0.0.18
"@napi-rs/cross-toolchain-arm64-target-x86_64": ^0.0.18
"@napi-rs/cross-toolchain-x64-target-aarch64": ^0.0.18
"@napi-rs/cross-toolchain-x64-target-armv7": ^0.0.18
"@napi-rs/cross-toolchain-x64-target-x86_64": ^0.0.18
peerDependenciesMeta:
"@napi-rs/cross-toolchain-arm64-target-aarch64":
optional: true
@ -875,7 +875,7 @@ __metadata:
optional: true
"@napi-rs/cross-toolchain-x64-target-x86_64":
optional: true
checksum: 10c0/21a6573069b30439b8b50d5bf8759dd59918bbcae29819c8af97c0b85d071cfc98415727ffeba97210a073ae051282d6a294bba0136702d9bf38a95e6e63d539
checksum: 10c0/0c1cd4f1ee23d0e3a93a9dfe26dfe95679a7f1b42cc33e2741a68c35c0fb4793ae4b474507439c411df509d36315b168f482228f20bf027704baa4c6692c35e8
languageName: node
linkType: hard