UNPKG

@specs-feup/clava

Version:

A C/C++ source-to-source compiler written in Typescript

30 lines (27 loc) 897 B
import ToolUtils from "@specs-feup/lara/api/lara/tool/ToolUtils.js"; import CMakeCompiler from "./compilers/CMakeCompiler.js"; import GenericCMakeCompiler from "./compilers/GenericCMakeCompiler.js"; export default class CMakerUtils extends ToolUtils { private static compilerTable = { gcc: function () { return new GenericCMakeCompiler("gcc", "g++"); }, clang: function () { return new GenericCMakeCompiler("clang", "clang++"); }, icc: function () { return new GenericCMakeCompiler("icc", "icpc"); }, }; /** * Creates a CMakerCompiler object based on a string with the name. * * @param compilerName - Name of the compiler. Currently supported names: 'gcc', 'clang', 'icc'. * */ static getCompiler( compilerName: keyof typeof this.compilerTable ): CMakeCompiler { return CMakerUtils.compilerTable[compilerName](); } }