Skip to content

Commit c2e0936

Browse files
committed
fix: search under bindir for gcc exe
1 parent 7cb1fce commit c2e0936

File tree

7 files changed

+29
-11
lines changed

7 files changed

+29
-11
lines changed

dist/actions/setup-cpp.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/actions/setup-cpp.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/legacy/setup-cpp.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/legacy/setup-cpp.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/modern/setup-cpp.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/modern/setup-cpp.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/gcc/gcc.ts

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { addEnv, addPath } from "envosman"
33
import { GITHUB_ACTIONS } from "ci-info"
44
import { error, info, warning } from "ci-log"
55
import { type ExecaReturnValue, execa } from "execa"
6+
import { readdir } from "fs/promises"
67
import { pathExists } from "path-exists"
78
import { addExeExt, join } from "patha"
89
import semverCoerce from "semver/functions/coerce"
@@ -278,13 +279,30 @@ async function activateGcc(givenVersion: string, binDir: string, priority: numbe
278279
async function getGccCmdVersion(binDir: string, givenVersion: string) {
279280
// TODO get the version from the package manager
280281
try {
281-
const gccExe = await pathExists(`${binDir}/gcc`) ? `${binDir}/gcc` : "gcc"
282+
let gccExe = "gcc"
283+
if (await pathExists(`${binDir}/gcc`)) {
284+
gccExe = `${binDir}/gcc`
285+
} else {
286+
// try to find the gcc exe in the bin dir
287+
const files = await readdir(binDir)
288+
for (const file of files) {
289+
if (file.startsWith("gcc")) {
290+
gccExe = `${binDir}/${file}`
291+
break
292+
}
293+
}
294+
}
282295

283296
const { stdout: versionStdout } = await execa(gccExe, ["--version"], { stdio: "pipe" })
284297

285298
const versionMatch = (versionStdout as string).match(/gcc \(.*\) ([\d.]+)/)
286299

287-
return versionMatch !== null ? versionMatch[1] : givenVersion
300+
if (versionMatch !== null) {
301+
return versionMatch[1]
302+
}
303+
304+
warning(`Failed to parse gcc version from: ${versionStdout}`)
305+
return givenVersion
288306
} catch (err) {
289307
error(`Failed to get gcc version: ${err}`)
290308
return givenVersion

0 commit comments

Comments
 (0)