Module: Bake::Toolchain

Defined in:
lib/bake/toolchain/ti.rb,
lib/bake/toolchain/gcc.rb,
lib/bake/toolchain/iar.rb,
lib/bake/toolchain/diab.rb,
lib/bake/toolchain/keil.rb,
lib/bake/toolchain/msvc.rb,
lib/bake/toolchain/clang.rb,
lib/bake/toolchain/gcc_env.rb,
lib/bake/toolchain/tasking.rb,
lib/bake/toolchain/provider.rb,
lib/bake/toolchain/greenhills.rb,
lib/bake/toolchain/clang_analyze.rb,
lib/bake/toolchain/clang_bitcode.rb

Defined Under Namespace

Classes: Provider

Constant Summary collapse

TiChain =
Provider.add("TI")
GCCChain =
Provider.add("GCC")
IARChain =
Provider.add("IAR")
DiabChain =
Provider.add("Diab")
KeilChain =
Provider.add("Keil")
MSVCChain =
Provider.add("MSVC")
CLANG_CHAIN =
Provider.add("CLANG")
GCCENVChain =
Provider.add("GCC_ENV")
TaskingChain =
Provider.add("Tasking")
GreenHillsChain =
Provider.add("GreenHills")
GreenHillsCompilerErrorParser =
GreenHillsCompilerErrorParser.new
CLANG_ANALYZE_CHAIN =
Provider.add("CLANG_ANALYZE")
CLANG_BITCODE_CHAIN =
Provider.add("CLANG_BITCODE")

Class Method Summary collapse

Class Method Details

.getGccPlatformObject



22
23
24
# File 'lib/bake/toolchain/gcc.rb', line 22

def self.getGccPlatform
  `g++ -dumpmachine`
end

.getGccRawVersionInfoObject



10
11
12
# File 'lib/bake/toolchain/gcc.rb', line 10

def self.getGccRawVersionInfo
  `g++ --version`
end

.getGccVersionObject



14
15
16
17
18
19
20
# File 'lib/bake/toolchain/gcc.rb', line 14

def self.getGccVersion
  gccVersionStr = getGccRawVersionInfo()
  splitted = gccVersionStr.split("\n")[0].split(" ")
  vSubstr = splitted[splitted.length-1]
  vSubstr = splitted[splitted.length-2] if ((!vSubstr.include?(".") || vSubstr.match(/[a-z\-]/)) && (splitted.length >= 2))
  return vSubstr.split(".").map { |v| v.to_i }
end

.outputEnding(tcs = nil) ⇒ Object



4
5
6
7
8
9
# File 'lib/bake/toolchain/provider.rb', line 4

def self.outputEnding(tcs = nil)
  if tcs && tcs[:LINKER][:OUTPUT_ENDING] != ""
    return tcs[:LINKER][:OUTPUT_ENDING]
  end
  Bake::Utils::OS.windows? ? ".exe" : ""
end