diff --git a/cli/package.json b/cli/package.json index 8006cd11..edb0f353 100644 --- a/cli/package.json +++ b/cli/package.json @@ -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", diff --git a/cli/src/api/build.ts b/cli/src/api/build.ts index f8a738b1..5e99d5d1 100644 --- a/cli/src/api/build.ts +++ b/cli/src/api/build.ts @@ -179,6 +179,10 @@ class Builder { try { const { version, download } = require('@napi-rs/cross-toolchain') + const alias: Record = { + '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 } diff --git a/yarn.lock b/yarn.lock index 62eb6b1b..2ff848dc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -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