mirror of https://github.com/aminya/setup-cpp
feat: add compiler input
This commit is contained in:
parent
85aa3e3d04
commit
191a15123c
|
@ -3,6 +3,9 @@ description: "Install all the tools required for building and testing C++/C proj
|
||||||
author: "Amin Yahyaabadi"
|
author: "Amin Yahyaabadi"
|
||||||
|
|
||||||
inputs:
|
inputs:
|
||||||
|
compiler:
|
||||||
|
description: "The compiler to use and its optinal version separated by - e.g. llvm-11"
|
||||||
|
required: false
|
||||||
architecture:
|
architecture:
|
||||||
description: "The CPU architecture"
|
description: "The CPU architecture"
|
||||||
required: false
|
required: false
|
||||||
|
|
38
src/main.ts
38
src/main.ts
|
@ -13,6 +13,7 @@ import { setupMSVC } from "./msvc/msvc"
|
||||||
import { setupNinja } from "./ninja/ninja"
|
import { setupNinja } from "./ninja/ninja"
|
||||||
import { setupOpencppcoverage } from "./opencppcoverage/opencppcoverage"
|
import { setupOpencppcoverage } from "./opencppcoverage/opencppcoverage"
|
||||||
import { setupPython } from "./python/python"
|
import { setupPython } from "./python/python"
|
||||||
|
import semverValid from "semver/functions/valid"
|
||||||
|
|
||||||
function maybeGetInput(key: string) {
|
function maybeGetInput(key: string) {
|
||||||
const value = core.getInput(key.toLowerCase())
|
const value = core.getInput(key.toLowerCase())
|
||||||
|
@ -26,6 +27,43 @@ export async function main(): Promise<number> {
|
||||||
const arch = core.getInput("architecture") || process.arch
|
const arch = core.getInput("architecture") || process.arch
|
||||||
const setupCppDir = process.env.SETUP_CPP_DIR ?? "~/setup_cpp"
|
const setupCppDir = process.env.SETUP_CPP_DIR ?? "~/setup_cpp"
|
||||||
try {
|
try {
|
||||||
|
const maybeCompiler = maybeGetInput("compiler")
|
||||||
|
if (maybeCompiler !== undefined) {
|
||||||
|
const compilerAndMaybeVersion = maybeCompiler.split("-")
|
||||||
|
const compiler = compilerAndMaybeVersion[0]
|
||||||
|
let version: string | undefined
|
||||||
|
if (1 in compilerAndMaybeVersion) {
|
||||||
|
const maybeVersion = compilerAndMaybeVersion[1]
|
||||||
|
if (semverValid(maybeVersion) !== null) {
|
||||||
|
version = maybeVersion
|
||||||
|
} else {
|
||||||
|
core.error(`Invalid version ${maybeVersion} used for the compiler. Using the default version...`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (compiler) {
|
||||||
|
case "llvm":
|
||||||
|
case "clang":
|
||||||
|
case "clang++": {
|
||||||
|
await setupLLVM(version ?? "11", setupCppDir)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
case "cl":
|
||||||
|
case "msvc":
|
||||||
|
case "msbuild":
|
||||||
|
case "vs":
|
||||||
|
case "visualstudio":
|
||||||
|
case "visualcpp":
|
||||||
|
case "visualc++": {
|
||||||
|
await setupMSVC(version ?? "2019", setupCppDir)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
core.error(`Unsupported compiler ${compiler}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// setup cmake
|
// setup cmake
|
||||||
const cmakeVersion = maybeGetInput("cmake")
|
const cmakeVersion = maybeGetInput("cmake")
|
||||||
if (cmakeVersion !== undefined) {
|
if (cmakeVersion !== undefined) {
|
||||||
|
|
Loading…
Reference in New Issue