bake-toolkit 2.2.2 → 2.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/dyk/clang.html +50 -0
- data/doc/further/change.html +13 -0
- data/doc/index.html +3 -1
- data/doc/vs/debug.html +50 -0
- data/doc/vs/echse/echse.png +0 -0
- data/lib/bake/config/loader.rb +3 -0
- data/lib/bake/options/options.rb +2 -1
- data/lib/bake/toolchain/clang.rb +3 -3
- data/lib/bake/toolchain/clang_analyze.rb +31 -0
- data/lib/bake/toolchain/errorparser/diab_compiler_error_parser.rb +1 -1
- data/lib/bake/toolchain/errorparser/diab_linker_error_parser.rb +2 -2
- data/lib/bake/toolchain/errorparser/gcc_compiler_error_parser.rb +1 -1
- data/lib/bake/toolchain/errorparser/gcc_linker_error_parser.rb +2 -2
- data/lib/bake/toolchain/errorparser/greenhills_compiler_error_parser.rb +1 -1
- data/lib/bake/toolchain/errorparser/greenhills_linker_error_parser.rb +2 -2
- data/lib/bake/toolchain/errorparser/keil_compiler_error_parser.rb +1 -1
- data/lib/bake/toolchain/errorparser/keil_linker_error_parser.rb +2 -2
- data/lib/bake/toolchain/errorparser/lint_error_parser.rb +1 -1
- data/lib/bake/toolchain/errorparser/msvc_compiler_error_parser.rb +63 -0
- data/lib/bake/toolchain/errorparser/msvc_linker_error_parser.rb +42 -0
- data/lib/bake/toolchain/errorparser/ti_compiler_error_parser.rb +1 -1
- data/lib/bake/toolchain/msvc.rb +57 -0
- data/lib/bake/toolchain/provider.rb +13 -3
- data/lib/blocks/blockBase.rb +11 -8
- data/lib/blocks/compile.rb +30 -17
- data/lib/blocks/executable.rb +8 -1
- data/lib/blocks/library.rb +7 -1
- data/lib/common/process.rb +0 -1
- data/lib/common/version.rb +1 -1
- data/lib/tocxx.rb +5 -3
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b64fc98f1d57e95813caf1aa0b720befa42b89a
|
4
|
+
data.tar.gz: 019eaba3c441e8c9e4a3fce2ba48f30fab2e8c94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d879d2b96339f55d99275a8bdba981c77cf647b6fa9146990e47a4dfcddc897c8ec1a2c5902e20e2ce25e9cc92b47bcd7f9fdeeed8a420d6d2d2d5725a6918a6
|
7
|
+
data.tar.gz: 098620c65ab6537b77fa7b8580a9b65a1aa7d6eea893c7fe3aeac7c65e7089ff86a48a0a91e4f41e2437d1edd8c95b6e755a51dbf19267d9aa456591048772a1
|
data/doc/dyk/clang.html
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Documentation of the bake-tookit</title>
|
5
|
+
<style type="text/css">
|
6
|
+
#rundrum {
|
7
|
+
border-width:1px;
|
8
|
+
border-style:dashed;
|
9
|
+
border-color:blue;
|
10
|
+
padding:0.2cm;
|
11
|
+
text-align:justify; }
|
12
|
+
}
|
13
|
+
</style>
|
14
|
+
</head>
|
15
|
+
<body>
|
16
|
+
<h1>Clang Analyze</h1>
|
17
|
+
|
18
|
+
bake can be easily used to analyze source files with Clang. It works simliar to regular compiling, but instead of
|
19
|
+
invoking the compiler, the Clang Analyzer will be called.
|
20
|
+
|
21
|
+
Imagine you have a workspace with the following "main" project:
|
22
|
+
<pre id="rundrum"><code>Project {
|
23
|
+
...
|
24
|
+
ExecutableConfig Debug {
|
25
|
+
...
|
26
|
+
DefaultToolchain GCC
|
27
|
+
}
|
28
|
+
}</code></pre>
|
29
|
+
Either edit this Project.meta or create a new "analyze" project:
|
30
|
+
<pre id="rundrum"><code>Project {
|
31
|
+
CustomConfig Analyze {
|
32
|
+
Dependency main, config: Debug
|
33
|
+
DefaultToolchain CLANG_ANALYZE {
|
34
|
+
Compiler CPP {
|
35
|
+
Flags "-analyzer-checker=deadcode,security,alpha,unix,cplusplus"
|
36
|
+
}
|
37
|
+
Compiler C {
|
38
|
+
Flags "-analyzer-checker=deadcode,security,alpha,unix"
|
39
|
+
}
|
40
|
+
}
|
41
|
+
}
|
42
|
+
}</code></pre>
|
43
|
+
|
44
|
+
As you can see the DefaultToolchain GCC is replaced with CLANG_ANALYZE. Call bake like this:
|
45
|
+
<pre id="rundrum"><code>bake Analyze -f .</code></pre>
|
46
|
+
|
47
|
+
"-f" means that only the compilation step will take place. The "." means files with a "." in the name will be compiled (= all files). If you want to analyze only C++ files, you can write "-f .cpp"
|
48
|
+
</body>
|
49
|
+
|
50
|
+
</html>
|
data/doc/further/change.html
CHANGED
@@ -7,6 +7,19 @@
|
|
7
7
|
<body>
|
8
8
|
<h1>Changelog</h1>
|
9
9
|
|
10
|
+
March 12, 2015 - bake-toolkit 2.3.4<br>
|
11
|
+
<ul>
|
12
|
+
<li><b>Changed: Clang command is now "clang" per default instead of llvm-gcc</b>
|
13
|
+
<li><b>Added: CLANG_ANALYZE toolchain</b>
|
14
|
+
<li><b>Added: MSVC toolchain</b>
|
15
|
+
<li><b>Bugfix: some minor fixes</b>
|
16
|
+
</ul>
|
17
|
+
|
18
|
+
February 27, 2015 - Eclipse plugin 1.3.0<br>
|
19
|
+
<ul>
|
20
|
+
<li><b>Added: bake projects with equal names can be imported now</b>
|
21
|
+
</ul>
|
22
|
+
|
10
23
|
February 19, 2015 - bake-toolkit 2.2.2<br>
|
11
24
|
<ul>
|
12
25
|
<li><b>Changed: output dirs are now prefixed with "build_" per default</b>
|
data/doc/index.html
CHANGED
@@ -45,6 +45,7 @@ bake is used to build software <font color="#009900"><b>fast</b></font> and <fon
|
|
45
45
|
<li><a href="vs/install.html">How to install bake Visual Studio integration</a>
|
46
46
|
<li><a href="vs/use.html">How to use bake in Visual Studio</a>
|
47
47
|
<li><a href="vs/create.html">How to create a solution / projects in Visual Studio</a>
|
48
|
+
<li><a href="vs/debug.html">How to debug in Visual Studio</a>
|
48
49
|
</ul>
|
49
50
|
|
50
51
|
<h3>Syntax</h3>
|
@@ -57,6 +58,7 @@ bake is used to build software <font color="#009900"><b>fast</b></font> and <fon
|
|
57
58
|
<h3>Did you know?</h3>
|
58
59
|
<ul>
|
59
60
|
<li><a href="dyk/lint.html">Lint</a>
|
61
|
+
<li><a href="dyk/clang.html">Clang Analyze</a>
|
60
62
|
<li><a href="dyk/tipps.html">Tipps and Tricks</a>
|
61
63
|
</ul>
|
62
64
|
|
@@ -72,7 +74,7 @@ bake is used to build software <font color="#009900"><b>fast</b></font> and <fon
|
|
72
74
|
|
73
75
|
<p>
|
74
76
|
<hr>
|
75
|
-
<table width="100%" border="0"><tr><td align="left">Described bake-toolkit version: 2.
|
77
|
+
<table width="100%" border="0"><tr><td align="left">Described bake-toolkit version: 2.3.4</td><td align="right">March 12, 2015</td></tr></table>
|
76
78
|
|
77
79
|
</body>
|
78
80
|
|
data/doc/vs/debug.html
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Documentation of the bake-tookit</title>
|
5
|
+
<style type="text/css">
|
6
|
+
#rundrum {
|
7
|
+
border-width:1px;
|
8
|
+
border-style:dashed;
|
9
|
+
border-color:blue;
|
10
|
+
padding:0.2cm;
|
11
|
+
text-align:justify; }
|
12
|
+
}
|
13
|
+
</style>
|
14
|
+
</head>
|
15
|
+
<body>
|
16
|
+
<h1>How to debug in Visual Studio</h1>
|
17
|
+
|
18
|
+
Natively you can only debug the output from the Microsoft VC compiler with Visual Studio. There are some plugins available for e.g.
|
19
|
+
debugging gcc output. Another option is to use the MSVC toolchain from bake, which is described on this help page.
|
20
|
+
<p>
|
21
|
+
Add debug flags to the MSVC toolchain:
|
22
|
+
|
23
|
+
<pre id="rundrum"><code>DefaultToolchain MSVC {
|
24
|
+
Compiler CPP {
|
25
|
+
Flags "-Zi"
|
26
|
+
}
|
27
|
+
Linker {
|
28
|
+
Flags "-Debug"
|
29
|
+
}
|
30
|
+
}</code></pre>
|
31
|
+
|
32
|
+
Start Visual Studio with e.g. a batch file shown below and choose the appropriate solution. If you don't have a solution yet, check out <a href="vs/create.html">How to create a solution / projects in Visual Studio</a>.
|
33
|
+
|
34
|
+
<pre id="rundrum"><code>set PATH=%PATH%;C:\tools\Microsoft Visual Studio 11.0\VC\bin
|
35
|
+
call "C:\tools\Microsoft Visual Studio 11.0\VC\vcvarsall.bat"
|
36
|
+
"C:\tools\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"</code></pre>
|
37
|
+
|
38
|
+
<p>
|
39
|
+
This adds the compiler, linker, etc. to the path. <i>vcvarsall.bat</i> setups the environment and the last line
|
40
|
+
starts Visual Studio. As a test, just execute the first two lines and check if "cl.exe" can be executed without any errors.
|
41
|
+
|
42
|
+
In Visual Studio, you have to define the executable you like to debug. Add the executable in the project properties:
|
43
|
+
<p>
|
44
|
+
<img src="echse/echse.png"/>
|
45
|
+
<p>
|
46
|
+
You can also define command line arguments here.<p>
|
47
|
+
Start debugging as usual...
|
48
|
+
</body>
|
49
|
+
|
50
|
+
</html>
|
Binary file
|
data/lib/bake/config/loader.rb
CHANGED
@@ -294,6 +294,9 @@ module Bake
|
|
294
294
|
@defaultToolchain = cache.defaultToolchain
|
295
295
|
@@defaultToolchainTime = cache.defaultToolchainTime
|
296
296
|
end
|
297
|
+
|
298
|
+
# todo: cleanup this hack
|
299
|
+
Bake.options.analyze = @defaultToolchain[:COMPILER][:CPP][:COMPILE_FLAGS].include?"analyze"
|
297
300
|
|
298
301
|
end
|
299
302
|
|
data/lib/bake/options/options.rb
CHANGED
@@ -17,7 +17,7 @@ module Bake
|
|
17
17
|
end
|
18
18
|
|
19
19
|
class Options < Parser
|
20
|
-
attr_accessor :build_config, :nocache
|
20
|
+
attr_accessor :build_config, :nocache, :analyze
|
21
21
|
attr_reader :main_dir, :project, :filename, :main_project_name, :cc2j_filename # String
|
22
22
|
attr_reader :roots, :include_filter, :exclude_filter # String List
|
23
23
|
attr_reader :stopOnFirstError, :clean, :rebuild, :show_includes, :show_includes_and_defines, :linkOnly, :no_autodir, :clobber, :lint, :docu, :debug, :prepro # Boolean
|
@@ -30,6 +30,7 @@ module Bake
|
|
30
30
|
def initialize(argv)
|
31
31
|
super(argv)
|
32
32
|
|
33
|
+
@analyze = false
|
33
34
|
@showConfigs = false
|
34
35
|
@consoleOutput_fullnames = false
|
35
36
|
@consoleOutput_visualStudio = false
|
data/lib/bake/toolchain/clang.rb
CHANGED
@@ -11,7 +11,7 @@ module Bake
|
|
11
11
|
CLANG_CHAIN = Provider.add("CLANG")
|
12
12
|
|
13
13
|
CLANG_CHAIN[:COMPILER][:CPP].update({
|
14
|
-
:COMMAND => "
|
14
|
+
:COMMAND => "clang++",
|
15
15
|
:DEFINE_FLAG => "-D",
|
16
16
|
:OBJECT_FILE_FLAG => "-o",
|
17
17
|
:OBJ_FLAG_SPACE => true,
|
@@ -23,7 +23,7 @@ module Bake
|
|
23
23
|
|
24
24
|
CLANG_CHAIN[:COMPILER][:C] = Utils.deep_copy(CLANG_CHAIN[:COMPILER][:CPP])
|
25
25
|
CLANG_CHAIN[:COMPILER][:C][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:C][:SOURCE_FILE_ENDINGS]
|
26
|
-
CLANG_CHAIN[:COMPILER][:C][:COMMAND] = "
|
26
|
+
CLANG_CHAIN[:COMPILER][:C][:COMMAND] = "clang"
|
27
27
|
|
28
28
|
CLANG_CHAIN[:COMPILER][:ASM] = Utils.deep_copy(CLANG_CHAIN[:COMPILER][:C])
|
29
29
|
CLANG_CHAIN[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
|
@@ -32,7 +32,7 @@ module Bake
|
|
32
32
|
CLANG_CHAIN[:ARCHIVER][:ARCHIVE_FLAGS] = "r"
|
33
33
|
CLANG_CHAIN[:ARCHIVER][:ERROR_PARSER] = gccCompilerErrorParser
|
34
34
|
|
35
|
-
CLANG_CHAIN[:LINKER][:COMMAND] = "
|
35
|
+
CLANG_CHAIN[:LINKER][:COMMAND] = "clang++"
|
36
36
|
CLANG_CHAIN[:LINKER][:SCRIPT] = "-T"
|
37
37
|
CLANG_CHAIN[:LINKER][:USER_LIB_FLAG] = "-l:"
|
38
38
|
CLANG_CHAIN[:LINKER][:EXE_FLAG] = "-o"
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'common/utils'
|
2
|
+
require 'bake/toolchain/provider'
|
3
|
+
|
4
|
+
module Bake
|
5
|
+
module Toolchain
|
6
|
+
CLANG_ANALYZE_CHAIN = Provider.add("CLANG_ANALYZE")
|
7
|
+
|
8
|
+
CLANG_ANALYZE_CHAIN[:COMPILER][:CPP].update({
|
9
|
+
:COMMAND => "clang++",
|
10
|
+
:DEFINE_FLAG => "-D",
|
11
|
+
:OBJECT_FILE_FLAG => "-o",
|
12
|
+
:OBJ_FLAG_SPACE => true,
|
13
|
+
:OBJECT_FILE_ENDING => ".plist",
|
14
|
+
:INCLUDE_PATH_FLAG => "-I",
|
15
|
+
:COMPILE_FLAGS => "-cc1 -analyze -analyzer-output=plist ",
|
16
|
+
:DEP_FLAGS => "",
|
17
|
+
:DEP_FLAGS_FILENAME => false,
|
18
|
+
:ERROR_PARSER => nil
|
19
|
+
})
|
20
|
+
|
21
|
+
CLANG_ANALYZE_CHAIN[:COMPILER][:C] = Utils.deep_copy(CLANG_ANALYZE_CHAIN[:COMPILER][:CPP])
|
22
|
+
CLANG_ANALYZE_CHAIN[:COMPILER][:C][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:C][:SOURCE_FILE_ENDINGS]
|
23
|
+
CLANG_ANALYZE_CHAIN[:COMPILER][:C][:COMMAND] = "clang"
|
24
|
+
|
25
|
+
CLANG_ANALYZE_CHAIN[:COMPILER][:ASM] = Utils.deep_copy(CLANG_ANALYZE_CHAIN[:COMPILER][:C])
|
26
|
+
CLANG_ANALYZE_CHAIN[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
|
27
|
+
|
28
|
+
CLANG_ANALYZE_CHAIN[:ARCHIVER][:COMMAND] = ""
|
29
|
+
CLANG_ANALYZE_CHAIN[:LINKER][:COMMAND] = ""
|
30
|
+
end
|
31
|
+
end
|
@@ -11,7 +11,7 @@ module Bake
|
|
11
11
|
def scan_lines(consoleOutput, proj_dir)
|
12
12
|
res = []
|
13
13
|
error_severity = 255
|
14
|
-
consoleOutput.each_line do |l|
|
14
|
+
consoleOutput[0].each_line do |l|
|
15
15
|
l.rstrip!
|
16
16
|
d = ErrorDesc.new
|
17
17
|
scan_res = l.scan(@error_expression)
|
@@ -34,7 +34,7 @@ module Bake
|
|
34
34
|
end
|
35
35
|
res << d
|
36
36
|
end
|
37
|
-
[res, consoleOutput]
|
37
|
+
[res, consoleOutput[0]]
|
38
38
|
end
|
39
39
|
|
40
40
|
end
|
@@ -10,7 +10,7 @@ module Bake
|
|
10
10
|
def scan_lines(consoleOutput, proj_dir)
|
11
11
|
res = []
|
12
12
|
consoleOutputFullnames = ""
|
13
|
-
consoleOutput.each_line do |l|
|
13
|
+
consoleOutput[0].each_line do |l|
|
14
14
|
d = ErrorDesc.new
|
15
15
|
scan_res = l.gsub(/\r\n?/, "").scan(@error_expression)
|
16
16
|
if scan_res.length > 0
|
@@ -12,7 +12,7 @@ module Bake
|
|
12
12
|
|
13
13
|
def scan_lines(consoleOutput, proj_dir)
|
14
14
|
res = []
|
15
|
-
consoleOutput.each_line do |l|
|
15
|
+
consoleOutput[0].each_line do |l|
|
16
16
|
l.rstrip!
|
17
17
|
d = ErrorDesc.new
|
18
18
|
d.file_name = proj_dir
|
@@ -27,7 +27,7 @@ module Bake
|
|
27
27
|
end
|
28
28
|
res << d
|
29
29
|
end
|
30
|
-
[res, consoleOutput]
|
30
|
+
[res, consoleOutput[0]]
|
31
31
|
end
|
32
32
|
|
33
33
|
|
@@ -12,7 +12,7 @@ module Bake
|
|
12
12
|
def scan_lines(consoleOutput, proj_dir)
|
13
13
|
res = []
|
14
14
|
consoleOutputFullnames = ""
|
15
|
-
consoleOutput.each_line do |l|
|
15
|
+
consoleOutput[0].each_line do |l|
|
16
16
|
d = ErrorDesc.new
|
17
17
|
scan_res = l.gsub(/\r\n?/, "").scan(@error_expression)
|
18
18
|
if scan_res.length > 0
|
@@ -21,7 +21,7 @@ module Bake
|
|
21
21
|
def scan_lines(consoleOutput, proj_dir)
|
22
22
|
res = []
|
23
23
|
error_severity = 255
|
24
|
-
consoleOutput.each_line do |l|
|
24
|
+
consoleOutput[0].each_line do |l|
|
25
25
|
l.rstrip!
|
26
26
|
d = ErrorDesc.new
|
27
27
|
scan_res = l.scan(@error_expression)
|
@@ -37,7 +37,7 @@ module Bake
|
|
37
37
|
end
|
38
38
|
res << d
|
39
39
|
end
|
40
|
-
[res, consoleOutput]
|
40
|
+
[res, consoleOutput[0]]
|
41
41
|
end
|
42
42
|
|
43
43
|
end
|
@@ -9,7 +9,7 @@ module Bake
|
|
9
9
|
|
10
10
|
def scan_lines(consoleOutput, proj_dir)
|
11
11
|
res = []
|
12
|
-
consoleOutput.each_line do |l|
|
12
|
+
consoleOutput[0].each_line do |l|
|
13
13
|
l.rstrip!
|
14
14
|
d = ErrorDesc.new
|
15
15
|
scan_res = l.scan(@error_expression)
|
@@ -22,7 +22,7 @@ module Bake
|
|
22
22
|
end
|
23
23
|
res << d
|
24
24
|
end
|
25
|
-
[res, consoleOutput]
|
25
|
+
[res, consoleOutput[0]]
|
26
26
|
end
|
27
27
|
|
28
28
|
|
@@ -10,7 +10,7 @@ module Bake
|
|
10
10
|
def scan_lines(consoleOutput, proj_dir)
|
11
11
|
res = []
|
12
12
|
consoleOutputFullnames = ""
|
13
|
-
consoleOutput.each_line do |l|
|
13
|
+
consoleOutput[0].each_line do |l|
|
14
14
|
d = ErrorDesc.new
|
15
15
|
scan_res = l.gsub(/\r\n?/, "").scan(@error_expression)
|
16
16
|
if scan_res.length > 0
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'bake/toolchain/errorparser/error_parser'
|
2
|
+
|
3
|
+
module Bake
|
4
|
+
class MSVCCompilerErrorParser < ErrorParser
|
5
|
+
|
6
|
+
def initialize()
|
7
|
+
@error_expression = /(.+)\(([0-9]+)\) : ([A-Za-z\._]+) (.+)/
|
8
|
+
@incEng = "Note: including file: "
|
9
|
+
@incGer = "Hinweis: Einlesen der Datei: "
|
10
|
+
end
|
11
|
+
|
12
|
+
def scan_lines(consoleOutput, proj_dir)
|
13
|
+
includeList = []
|
14
|
+
res = []
|
15
|
+
consoleOutputFiltered = ""
|
16
|
+
consoleOutputFullnames = ""
|
17
|
+
filterLine = 0
|
18
|
+
consoleOutput[0].each_line do |l|
|
19
|
+
filterLine = filterLine + 1
|
20
|
+
next if (filterLine == 1 and l.include?"Assembling: ")
|
21
|
+
if (filterLine <= 2 and l.include?"Microsoft (R)")
|
22
|
+
filterLine = 1
|
23
|
+
next
|
24
|
+
end
|
25
|
+
next if (filterLine == 2 and l.include?"Copyright (C)")
|
26
|
+
next if (filterLine == 3 and l.strip.empty?)
|
27
|
+
next if (filterLine == 4 and not l.include?" : " and l.include?".") # the source file
|
28
|
+
filterLine = 100
|
29
|
+
|
30
|
+
if l.include?@incEng
|
31
|
+
includeList << l[@incEng.length..-1]
|
32
|
+
next
|
33
|
+
end
|
34
|
+
if l.include?@incGer
|
35
|
+
includeList << l[@incGer.length..-1].strip
|
36
|
+
next
|
37
|
+
end
|
38
|
+
|
39
|
+
d = ErrorDesc.new
|
40
|
+
scan_res = l.gsub(/\r\n?/, "").scan(@error_expression)
|
41
|
+
lFull = l
|
42
|
+
if scan_res.length > 0
|
43
|
+
d.file_name = File.expand_path(scan_res[0][0])
|
44
|
+
d.line_number = scan_res[0][1].to_i
|
45
|
+
d.message = scan_res[0][3]
|
46
|
+
if (scan_res[0][2].include?".")
|
47
|
+
d.severity = SEVERITY_ERROR
|
48
|
+
d.message = scan_res[0][2] + ": " + d.message
|
49
|
+
else
|
50
|
+
d.severity = get_severity(scan_res[0][2])
|
51
|
+
end
|
52
|
+
lFull = l.gsub(scan_res[0][0],d.file_name)
|
53
|
+
end
|
54
|
+
res << d
|
55
|
+
consoleOutputFiltered << l
|
56
|
+
consoleOutputFullnames << lFull
|
57
|
+
end
|
58
|
+
consoleOutput[0] = consoleOutputFiltered
|
59
|
+
[res, consoleOutputFullnames, includeList.uniq]
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'bake/toolchain/errorparser/error_parser'
|
2
|
+
|
3
|
+
module Bake
|
4
|
+
class MSVCLinkerErrorParser < ErrorParser
|
5
|
+
|
6
|
+
def initialize()
|
7
|
+
# todo: is every line an error?
|
8
|
+
end
|
9
|
+
|
10
|
+
def scan_lines(consoleOutput, proj_dir)
|
11
|
+
res = []
|
12
|
+
consoleOutputFiltered = ""
|
13
|
+
filterLine = 0
|
14
|
+
|
15
|
+
consoleOutput[0].each_line do |l|
|
16
|
+
filterLine = filterLine + 1
|
17
|
+
next if (filterLine == 1 and l.include?"Microsoft (R)")
|
18
|
+
next if (filterLine == 2 and l.include?"Copyright (C)")
|
19
|
+
next if (filterLine == 3 and l.strip.empty?)
|
20
|
+
|
21
|
+
l.rstrip!
|
22
|
+
d = ErrorDesc.new
|
23
|
+
d.file_name = proj_dir
|
24
|
+
d.line_number = 0
|
25
|
+
d.message = l
|
26
|
+
if l.length == 0
|
27
|
+
d.severity = SEVERITY_OK
|
28
|
+
elsif l.include?" Warning:"
|
29
|
+
d.severity = SEVERITY_WARNING
|
30
|
+
else
|
31
|
+
d.severity = SEVERITY_ERROR
|
32
|
+
end
|
33
|
+
consoleOutputFiltered << l
|
34
|
+
res << d
|
35
|
+
end
|
36
|
+
consoleOutput[0] = consoleOutputFiltered
|
37
|
+
[res, consoleOutput[0]]
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
@@ -10,7 +10,7 @@ module Bake
|
|
10
10
|
def scan_lines(consoleOutput, proj_dir)
|
11
11
|
res = []
|
12
12
|
consoleOutputFullnames = ""
|
13
|
-
consoleOutput.each_line do |l|
|
13
|
+
consoleOutput[0].each_line do |l|
|
14
14
|
d = ErrorDesc.new
|
15
15
|
scan_res = l.gsub(/\r\n?/, "").scan(@error_expression)
|
16
16
|
if scan_res.length > 0
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'common/utils'
|
2
|
+
require 'bake/toolchain/provider'
|
3
|
+
require 'bake/toolchain/errorparser/error_parser'
|
4
|
+
require 'bake/toolchain/errorparser/msvc_compiler_error_parser'
|
5
|
+
require 'bake/toolchain/errorparser/msvc_linker_error_parser'
|
6
|
+
|
7
|
+
module Bake
|
8
|
+
module Toolchain
|
9
|
+
|
10
|
+
MSVCChain = Provider.add("MSVC")
|
11
|
+
|
12
|
+
MSVCChain[:COMPILER][:CPP].update({
|
13
|
+
:COMMAND => "cl",
|
14
|
+
:DEFINE_FLAG => "-D",
|
15
|
+
:OBJECT_FILE_FLAG => "-Fo",
|
16
|
+
:OBJ_FLAG_SPACE => false,
|
17
|
+
:INCLUDE_PATH_FLAG => "-I",
|
18
|
+
:COMPILE_FLAGS => "-c -EHsc",
|
19
|
+
:DEP_FLAGS_FILENAME => false,
|
20
|
+
:DEP_FLAGS => "-showIncludes",
|
21
|
+
:DEP_FLAGS_SPACE => true,
|
22
|
+
:PREPRO_FLAGS => "-P",
|
23
|
+
:PREPRO_FILE_FLAG => "-Fi"
|
24
|
+
})
|
25
|
+
|
26
|
+
MSVCChain[:COMPILER][:C] = Utils.deep_copy(MSVCChain[:COMPILER][:CPP])
|
27
|
+
MSVCChain[:COMPILER][:C][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:C][:SOURCE_FILE_ENDINGS]
|
28
|
+
|
29
|
+
MSVCChain[:COMPILER][:ASM] = Utils.deep_copy(MSVCChain[:COMPILER][:C])
|
30
|
+
MSVCChain[:COMPILER][:ASM][:COMMAND] = "ml"
|
31
|
+
MSVCChain[:COMPILER][:ASM][:COMPILE_FLAGS] = "-c"
|
32
|
+
MSVCChain[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
|
33
|
+
|
34
|
+
MSVCChain[:ARCHIVER][:COMMAND] = "lib"
|
35
|
+
MSVCChain[:ARCHIVER][:ARCHIVE_FLAGS] = "-out:"
|
36
|
+
MSVCChain[:ARCHIVER][:ARCHIVE_FLAGS_SPACE] = false
|
37
|
+
|
38
|
+
MSVCChain[:LINKER][:COMMAND] = "link"
|
39
|
+
MSVCChain[:LINKER][:USER_LIB_FLAG] = ""
|
40
|
+
MSVCChain[:LINKER][:EXE_FLAG] = "-out:"
|
41
|
+
MSVCChain[:LINKER][:EXE_FLAG_SPACE] = false
|
42
|
+
MSVCChain[:LINKER][:LIB_FLAG] = ""
|
43
|
+
MSVCChain[:LINKER][:LIB_PATH_FLAG] = "-libpath:"
|
44
|
+
MSVCChain[:LINKER][:MAP_FILE_FLAG] = "-map:"
|
45
|
+
MSVCChain[:LINKER][:MAP_FILE_PIPE] = false
|
46
|
+
MSVCChain[:LINKER][:SCRIPT] = "Linkerscript option not supported for MSVC"
|
47
|
+
|
48
|
+
msvcCompilerErrorParser = MSVCCompilerErrorParser.new
|
49
|
+
MSVCChain[:COMPILER][:C][:ERROR_PARSER] = msvcCompilerErrorParser
|
50
|
+
MSVCChain[:COMPILER][:CPP][:ERROR_PARSER] = msvcCompilerErrorParser
|
51
|
+
MSVCChain[:COMPILER][:ASM][:ERROR_PARSER] = msvcCompilerErrorParser
|
52
|
+
MSVCChain[:ARCHIVER][:ERROR_PARSER] = msvcCompilerErrorParser
|
53
|
+
MSVCChain[:LINKER][:ERROR_PARSER] = MSVCLinkerErrorParser.new
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
@@ -10,6 +10,7 @@ module Bake
|
|
10
10
|
:COMMAND => "",
|
11
11
|
:DEFINE_FLAG => "",
|
12
12
|
:OBJECT_FILE_FLAG => "",
|
13
|
+
:OBJECT_FILE_ENDING => ".o",
|
13
14
|
:OBJ_FLAG_SPACE => false,
|
14
15
|
:INCLUDE_PATH_FLAG => "",
|
15
16
|
:COMPILE_FLAGS => "",
|
@@ -20,12 +21,14 @@ module Bake
|
|
20
21
|
:DEP_FLAGS_SPACE => false,
|
21
22
|
:DEP_FLAGS_FILENAME => true,
|
22
23
|
:ERROR_PARSER => nil,
|
23
|
-
:PREPRO_FLAGS => ""
|
24
|
+
:PREPRO_FLAGS => "",
|
25
|
+
:PREPRO_FILE_FLAG => nil
|
24
26
|
},
|
25
27
|
:C => {
|
26
28
|
:COMMAND => "",
|
27
29
|
:DEFINE_FLAG => "",
|
28
30
|
:OBJECT_FILE_FLAG => "",
|
31
|
+
:OBJECT_FILE_ENDING => ".o",
|
29
32
|
:OBJ_FLAG_SPACE => false,
|
30
33
|
:INCLUDE_PATH_FLAG => "",
|
31
34
|
:COMPILE_FLAGS => "",
|
@@ -36,12 +39,14 @@ module Bake
|
|
36
39
|
:DEP_FLAGS_SPACE => false,
|
37
40
|
:DEP_FLAGS_FILENAME => true,
|
38
41
|
:ERROR_PARSER => nil,
|
39
|
-
:PREPRO_FLAGS => ""
|
42
|
+
:PREPRO_FLAGS => "",
|
43
|
+
:PREPRO_FILE_FLAG => nil
|
40
44
|
},
|
41
45
|
:ASM => {
|
42
46
|
:COMMAND => "",
|
43
47
|
:DEFINE_FLAG => "",
|
44
48
|
:OBJECT_FILE_FLAG => "",
|
49
|
+
:OBJECT_FILE_ENDING => ".o",
|
45
50
|
:OBJ_FLAG_SPACE => false,
|
46
51
|
:INCLUDE_PATH_FLAG => "",
|
47
52
|
:COMPILE_FLAGS => "",
|
@@ -52,7 +57,8 @@ module Bake
|
|
52
57
|
:DEP_FLAGS_SPACE => false,
|
53
58
|
:DEP_FLAGS_FILENAME => true,
|
54
59
|
:ERROR_PARSER => nil,
|
55
|
-
:PREPRO_FLAGS => ""
|
60
|
+
:PREPRO_FLAGS => "",
|
61
|
+
:PREPRO_FILE_FLAG => nil
|
56
62
|
}
|
57
63
|
},
|
58
64
|
|
@@ -60,6 +66,7 @@ module Bake
|
|
60
66
|
{
|
61
67
|
:COMMAND => "",
|
62
68
|
:ARCHIVE_FLAGS => "",
|
69
|
+
:ARCHIVE_FLAGS_SPACE => true,
|
63
70
|
:FLAGS => "",
|
64
71
|
:ERROR_PARSER => nil
|
65
72
|
},
|
@@ -71,6 +78,7 @@ module Bake
|
|
71
78
|
:SCRIPT => "",
|
72
79
|
:USER_LIB_FLAG => "",
|
73
80
|
:EXE_FLAG => "",
|
81
|
+
:EXE_FLAG_SPACE => true,
|
74
82
|
:LIB_FLAG => "",
|
75
83
|
:LIB_PATH_FLAG => "",
|
76
84
|
:LIB_PREFIX_FLAGS => "", # "-Wl,--whole-archive",
|
@@ -131,6 +139,8 @@ require 'bake/toolchain/diab'
|
|
131
139
|
require 'bake/toolchain/gcc'
|
132
140
|
require 'bake/toolchain/lint'
|
133
141
|
require 'bake/toolchain/clang'
|
142
|
+
require 'bake/toolchain/clang_analyze'
|
134
143
|
require 'bake/toolchain/ti'
|
135
144
|
require 'bake/toolchain/greenhills'
|
136
145
|
require 'bake/toolchain/keil'
|
146
|
+
require 'bake/toolchain/msvc'
|
data/lib/blocks/blockBase.rb
CHANGED
@@ -59,7 +59,6 @@ module Bake
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def printCmd(cmd, alternate, reason, forceVerbose)
|
62
|
-
|
63
62
|
if (cmd == @lastCommand)
|
64
63
|
if (Bake.options.verbose >= 2 or (@printedCmdAlternate and not forceVerbose))
|
65
64
|
return
|
@@ -95,13 +94,16 @@ module Bake
|
|
95
94
|
|
96
95
|
def process_console_output(console_output, error_parser)
|
97
96
|
ret = false
|
98
|
-
|
97
|
+
incList = nil
|
98
|
+
#if not console_output.empty?
|
99
99
|
if error_parser
|
100
100
|
begin
|
101
|
-
|
102
|
-
|
101
|
+
x = [console_output]
|
102
|
+
error_descs, console_output_full, incList = error_parser.scan_lines(x, @projectDir)
|
103
|
+
|
104
|
+
console_output = x[0]
|
103
105
|
console_output = console_output_full if Bake.options.consoleOutput_fullnames
|
104
|
-
|
106
|
+
|
105
107
|
if Bake.options.consoleOutput_visualStudio
|
106
108
|
console_output_VS = ""
|
107
109
|
descCounter = 0
|
@@ -132,14 +134,14 @@ module Bake
|
|
132
134
|
else
|
133
135
|
puts console_output # fallback
|
134
136
|
end
|
135
|
-
end
|
136
|
-
ret
|
137
|
+
#end
|
138
|
+
[ret, incList]
|
137
139
|
end
|
138
140
|
|
139
141
|
def process_result(cmd, console_output, error_parser, alternate, reason, success)
|
140
142
|
hasError = (success == false)
|
141
143
|
printCmd(cmd, alternate, reason, (hasError and not Bake.options.lint))
|
142
|
-
errorPrinted = process_console_output(console_output, error_parser)
|
144
|
+
errorPrinted, incList = process_console_output(console_output, error_parser)
|
143
145
|
|
144
146
|
if hasError and not errorPrinted
|
145
147
|
Bake.formatter.printError("System command failed", @projectDir)
|
@@ -147,6 +149,7 @@ module Bake
|
|
147
149
|
if hasError or errorPrinted
|
148
150
|
raise SystemCommandFailed.new
|
149
151
|
end
|
152
|
+
incList
|
150
153
|
end
|
151
154
|
|
152
155
|
end
|
data/lib/blocks/compile.rb
CHANGED
@@ -24,7 +24,9 @@ module Bake
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def get_object_file(source)
|
27
|
-
|
27
|
+
|
28
|
+
# until now all OBJECT_FILE_ENDING are equal in all three types
|
29
|
+
adaptedSource = source.chomp(File.extname(source)).gsub(/\.\./, "##") + (Bake.options.prepro ? ".i" : @tcs[:COMPILER][:CPP][:OBJECT_FILE_ENDING])
|
28
30
|
return adaptedSource if File.is_absolute?source
|
29
31
|
File.join([@output_dir, adaptedSource])
|
30
32
|
end
|
@@ -32,7 +34,12 @@ module Bake
|
|
32
34
|
def needed?(source, object, type, dep_filename_conv)
|
33
35
|
return false if Bake.options.linkOnly
|
34
36
|
|
35
|
-
return "because
|
37
|
+
return "because analyzer toolchain is configured" if Bake.options.analyze
|
38
|
+
|
39
|
+
if Bake.options.prepro
|
40
|
+
return "because prepro was specified and source is no assembler file" if type != :ASM
|
41
|
+
return false
|
42
|
+
end
|
36
43
|
|
37
44
|
return "because object does not exist" if not File.exist?(object)
|
38
45
|
oTime = File.mtime(object)
|
@@ -41,7 +48,7 @@ module Bake
|
|
41
48
|
return "Compiling #{source} because DefaultToolchain has been changed" if oTime < Bake::Config.defaultToolchainTime
|
42
49
|
|
43
50
|
return "because source is newer than object" if oTime < File.mtime(source)
|
44
|
-
|
51
|
+
|
45
52
|
if type != :ASM
|
46
53
|
return "because dependency file does not exist" if not File.exist?(dep_filename_conv)
|
47
54
|
|
@@ -149,14 +156,17 @@ module Bake
|
|
149
156
|
cmd += includes
|
150
157
|
cmd += defines
|
151
158
|
|
159
|
+
offlag = compiler[:OBJECT_FILE_FLAG]
|
160
|
+
offlag = compiler[:PREPRO_FILE_FLAG] if compiler[:PREPRO_FILE_FLAG] and Bake.options.prepro
|
161
|
+
|
152
162
|
if compiler[:OBJ_FLAG_SPACE]
|
153
|
-
cmd <<
|
163
|
+
cmd << offlag
|
154
164
|
cmd << object
|
155
165
|
else
|
156
166
|
if object.include?" "
|
157
|
-
cmd <<
|
167
|
+
cmd << offlag + "\"" + object + "\""
|
158
168
|
else
|
159
|
-
cmd <<
|
169
|
+
cmd << offlag + object
|
160
170
|
end
|
161
171
|
end
|
162
172
|
cmd << source
|
@@ -164,12 +174,14 @@ module Bake
|
|
164
174
|
if Bake.options.cc2j_filename
|
165
175
|
Blocks::CC2J << { :directory => @projectDir, :command => cmd, :file => source }
|
166
176
|
end
|
167
|
-
|
168
177
|
success, consoleOutput = ProcessHelper.run(cmd, false, false)
|
169
|
-
outputType = Bake.options.prepro ? "Preprocessing" : "Compiling"
|
170
|
-
process_result(cmd, consoleOutput, compiler[:ERROR_PARSER], "#{outputType} #{source}", reason, success)
|
178
|
+
outputType = Bake.options.analyze ? "Analyzing" : (Bake.options.prepro ? "Preprocessing" : "Compiling")
|
179
|
+
incList = process_result(cmd, consoleOutput, compiler[:ERROR_PARSER], "#{outputType} #{source}", reason, success)
|
171
180
|
|
172
|
-
|
181
|
+
if type != :ASM and not Bake.options.analyze and not Bake.options.prepro
|
182
|
+
incList = Compile.read_depfile(dep_filename, @projectDir, @tcs[:COMPILER][:DEP_FILE_SINGLE_LINE]) if incList.nil?
|
183
|
+
Compile.write_depfile(incList, dep_filename_conv)
|
184
|
+
end
|
173
185
|
check_config_file
|
174
186
|
end
|
175
187
|
|
@@ -195,8 +207,7 @@ module Bake
|
|
195
207
|
end
|
196
208
|
|
197
209
|
# todo: move to toolchain util file
|
198
|
-
def self.
|
199
|
-
deps = read_depfile(dep_filename, projDir, singleLine)
|
210
|
+
def self.write_depfile(deps, dep_filename_conv)
|
200
211
|
if deps
|
201
212
|
begin
|
202
213
|
File.open(dep_filename_conv, 'wb') do |f|
|
@@ -275,7 +286,7 @@ module Bake
|
|
275
286
|
end
|
276
287
|
|
277
288
|
def clean
|
278
|
-
if Bake.options.filename
|
289
|
+
if Bake.options.filename or Bake.options.analyze
|
279
290
|
Dir.chdir(@projectDir) do
|
280
291
|
calcSources(true)
|
281
292
|
@source_files.each do |source|
|
@@ -283,14 +294,16 @@ module Bake
|
|
283
294
|
type = get_source_type(source)
|
284
295
|
next if type.nil?
|
285
296
|
object = get_object_file(source)
|
286
|
-
dep_filename = calcDepFile(object, type)
|
287
297
|
if File.exist?object
|
288
298
|
puts "Deleting file #{object}" if Bake.options.verbose >= 2
|
289
299
|
FileUtils.rm_rf(object)
|
290
300
|
end
|
291
|
-
if
|
292
|
-
|
293
|
-
|
301
|
+
if not Bake.options.analyze
|
302
|
+
dep_filename = calcDepFile(object, type)
|
303
|
+
if dep_filename and File.exist?dep_filename
|
304
|
+
puts "Deleting file #{dep_filename}" if Bake.options.verbose >= 2
|
305
|
+
FileUtils.rm_rf(dep_filename)
|
306
|
+
end
|
294
307
|
end
|
295
308
|
end
|
296
309
|
end
|
data/lib/blocks/executable.rb
CHANGED
@@ -99,8 +99,15 @@ module Bake
|
|
99
99
|
cmd = Utils.flagSplit(linker[:COMMAND], false) # g++
|
100
100
|
cmd += linker[:MUST_FLAGS].split(" ")
|
101
101
|
cmd += Bake::Utils::flagSplit(linker[:FLAGS],true)
|
102
|
+
|
103
|
+
|
102
104
|
cmd << linker[:EXE_FLAG]
|
103
|
-
|
105
|
+
if linker[:EXE_FLAG_SPACE]
|
106
|
+
cmd << @exe_name
|
107
|
+
else
|
108
|
+
cmd[cmd.length-1] += @exe_name
|
109
|
+
end
|
110
|
+
|
104
111
|
cmd += @compileBlock.objects
|
105
112
|
cmd << linker[:SCRIPT] if @linker_script # -T
|
106
113
|
cmd << @linker_script if @linker_script # xy/xy.dld
|
data/lib/blocks/library.rb
CHANGED
@@ -52,7 +52,13 @@ module Bake
|
|
52
52
|
cmd = Utils.flagSplit(archiver[:COMMAND], false) # ar
|
53
53
|
cmd += Bake::Utils::flagSplit(archiver[:FLAGS],true) # --all_load
|
54
54
|
cmd += archiver[:ARCHIVE_FLAGS].split(" ")
|
55
|
-
|
55
|
+
|
56
|
+
if archiver[:ARCHIVE_FLAGS_SPACE]
|
57
|
+
cmd << archive_name
|
58
|
+
else
|
59
|
+
cmd[cmd.length-1] += archive_name
|
60
|
+
end
|
61
|
+
|
56
62
|
cmd += @compileBlock.objects
|
57
63
|
|
58
64
|
success, consoleOutput = ProcessHelper.run(cmd, false, false)
|
data/lib/common/process.rb
CHANGED
data/lib/common/version.rb
CHANGED
data/lib/tocxx.rb
CHANGED
@@ -102,7 +102,7 @@ module Bake
|
|
102
102
|
|
103
103
|
Blocks::ALL_BLOCKS[config.qname] = block
|
104
104
|
|
105
|
-
if not Bake.options.linkOnly and not Bake.options.prepro and not Bake.options.lint and not Bake.options.docu and not Bake.options.filename
|
105
|
+
if not Bake.options.linkOnly and not Bake.options.prepro and not Bake.options.lint and not Bake.options.docu and not Bake.options.filename and not Bake.options.analyze
|
106
106
|
addSteps(block, block.preSteps, config.preSteps)
|
107
107
|
addSteps(block, block.postSteps, config.postSteps)
|
108
108
|
end
|
@@ -110,7 +110,7 @@ module Bake
|
|
110
110
|
if Bake.options.docu
|
111
111
|
block.mainSteps << Blocks::Docu.new(config, @configTcMap[config])
|
112
112
|
elsif Metamodel::CustomConfig === config
|
113
|
-
if not Bake.options.linkOnly and not Bake.options.prepro and not Bake.options.lint and not Bake.options.docu and not Bake.options.filename
|
113
|
+
if not Bake.options.linkOnly and not Bake.options.prepro and not Bake.options.lint and not Bake.options.docu and not Bake.options.filename and not Bake.options.analyze
|
114
114
|
addSteps(block, block.mainSteps, config) if config.step
|
115
115
|
end
|
116
116
|
elsif Bake.options.lint
|
@@ -119,7 +119,7 @@ module Bake
|
|
119
119
|
compile = Blocks::Compile.new(block, config, @loadedConfig.referencedConfigs, @configTcMap[config])
|
120
120
|
(Blocks::ALL_COMPILE_BLOCKS[projName] ||= []) << compile
|
121
121
|
block.mainSteps << compile
|
122
|
-
if not Bake.options.filename
|
122
|
+
if not Bake.options.filename and not Bake.options.analyze
|
123
123
|
if Metamodel::LibraryConfig === config
|
124
124
|
block.mainSteps << Blocks::Library.new(block, config, @loadedConfig.referencedConfigs, @configTcMap[config], compile)
|
125
125
|
else
|
@@ -219,6 +219,8 @@ module Bake
|
|
219
219
|
@loadedConfig = Config.new
|
220
220
|
@loadedConfig.load
|
221
221
|
|
222
|
+
taskType = "Analyzing" if Bake.options.analyze
|
223
|
+
|
222
224
|
@mainConfig = @loadedConfig.referencedConfigs[Bake.options.main_project_name].select { |c| c.name == Bake.options.build_config }.first
|
223
225
|
|
224
226
|
if Bake.options.lint
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bake-toolkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Schaal
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-03-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rtext
|
@@ -91,6 +91,7 @@ files:
|
|
91
91
|
- lib/bake/options/usage.rb
|
92
92
|
- lib/bake/subst.rb
|
93
93
|
- lib/bake/toolchain/clang.rb
|
94
|
+
- lib/bake/toolchain/clang_analyze.rb
|
94
95
|
- lib/bake/toolchain/colorizing_formatter.rb
|
95
96
|
- lib/bake/toolchain/diab.rb
|
96
97
|
- lib/bake/toolchain/errorparser/diab_compiler_error_parser.rb
|
@@ -103,6 +104,8 @@ files:
|
|
103
104
|
- lib/bake/toolchain/errorparser/keil_compiler_error_parser.rb
|
104
105
|
- lib/bake/toolchain/errorparser/keil_linker_error_parser.rb
|
105
106
|
- lib/bake/toolchain/errorparser/lint_error_parser.rb
|
107
|
+
- lib/bake/toolchain/errorparser/msvc_compiler_error_parser.rb
|
108
|
+
- lib/bake/toolchain/errorparser/msvc_linker_error_parser.rb
|
106
109
|
- lib/bake/toolchain/errorparser/process_output.rb
|
107
110
|
- lib/bake/toolchain/errorparser/ti_compiler_error_parser.rb
|
108
111
|
- lib/bake/toolchain/errorparser/ti_linker_error_parser.rb
|
@@ -111,6 +114,7 @@ files:
|
|
111
114
|
- lib/bake/toolchain/greenhills.rb
|
112
115
|
- lib/bake/toolchain/keil.rb
|
113
116
|
- lib/bake/toolchain/lint.rb
|
117
|
+
- lib/bake/toolchain/msvc.rb
|
114
118
|
- lib/bake/toolchain/provider.rb
|
115
119
|
- lib/bake/toolchain/ti.rb
|
116
120
|
- lib/bake/util.rb
|
@@ -157,6 +161,7 @@ files:
|
|
157
161
|
- doc/concepts/hier.png
|
158
162
|
- doc/concepts/mainproject.html
|
159
163
|
- doc/deployDoc.bat
|
164
|
+
- doc/dyk/clang.html
|
160
165
|
- doc/dyk/keys.png
|
161
166
|
- doc/dyk/lint.html
|
162
167
|
- doc/dyk/tipps.html
|
@@ -201,6 +206,8 @@ files:
|
|
201
206
|
- doc/syntax/syntax.html
|
202
207
|
- doc/vs/create.html
|
203
208
|
- doc/vs/create/cvsp.png
|
209
|
+
- doc/vs/debug.html
|
210
|
+
- doc/vs/echse/echse.png
|
204
211
|
- doc/vs/install.html
|
205
212
|
- doc/vs/install/install1.png
|
206
213
|
- doc/vs/install/install2010.png
|