bake-toolkit 2.0.10 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/dyk/lint.html +11 -0
- data/doc/further/change.html +16 -1
- data/doc/index.html +1 -1
- data/doc/syntax/syntax.html +4 -1
- data/lib/bake/cache.rb +1 -1
- data/lib/bake/config/loader.rb +24 -10
- data/lib/bake/model/loader.rb +2 -2
- data/lib/bake/options/options.rb +9 -9
- data/lib/bake/options/usage.rb +2 -1
- data/lib/bake/subst.rb +3 -2
- data/lib/bake/toolchain/lint.rb +1 -1
- data/lib/blocks/block.rb +6 -5
- data/lib/blocks/blockBase.rb +8 -8
- data/lib/blocks/compile.rb +21 -6
- data/lib/blocks/executable.rb +2 -2
- data/lib/blocks/has_execute_command.rb +3 -3
- data/lib/blocks/library.rb +2 -2
- data/lib/common/cleanup.rb +1 -0
- data/lib/common/version.rb +1 -1
- data/lib/tocxx.rb +15 -0
- metadata +2 -3
- data/lib/bake/process_output.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 55fd9b69d1c25ad937a08eaec9f8d12d055a1fbc
|
4
|
+
data.tar.gz: 269feb7487d2f484ce31f3fa6be8ca629b5c3de8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 75783f20ffd0d0e08b453a2e3dc1394c32c2bb609c9c2873f49d6c18285541f1667e1ce6b9e0e0709562b66c404530e9873bc5b3a30501a98466f00499798f33
|
7
|
+
data.tar.gz: fdd3a74eace9ba8618e611306997846cf63d2c8aeb84d7fb2c0a0e504c58daafe3b689825043884d32a4a0f3e5918f2269be3884c4b921e3a92ce16497486f44
|
data/doc/dyk/lint.html
CHANGED
@@ -53,6 +53,17 @@ To use in bake, add a LintPolicy in Project.meta:
|
|
53
53
|
<pre id="rundrum"><code>LintPolicy ".../your.lnt"</code></pre>
|
54
54
|
|
55
55
|
|
56
|
+
<h3>Output to xml</h3>
|
57
|
+
This is an example how to redirect the output to single xml files placed into the main project folder.
|
58
|
+
<pre id="rundrum"><code>DefaultToolchain GCC {
|
59
|
+
LintPolicy "-os($(MainProjectDir)/$(ProjectName)_$(ConfigName)_lintout.xml)"
|
60
|
+
LintPolicy "-v"
|
61
|
+
LintPolicy "+xml(doc)"
|
62
|
+
LintPolicy "-format=<message><file>%f</file> <line>%l</line> <type>%t</type> <code>%n</code> <desc>%m</desc></message>"
|
63
|
+
LintPolicy "-format_specific= "
|
64
|
+
LintPolicy "-pragma(message)"</code></pre>
|
65
|
+
|
66
|
+
|
56
67
|
<h3>Notes</h3>
|
57
68
|
In rare cases lint has problems if it has to open too many (include) files. If that is the case, use --lint_min and --lint_max command line option of bake. Example:
|
58
69
|
<pre id="rundrum"><code>bake Debug -p MyLibraryProject --lint --lint_max 50 (lints the first 51 files)
|
data/doc/further/change.html
CHANGED
@@ -7,13 +7,28 @@
|
|
7
7
|
<body>
|
8
8
|
<h1>Changelog</h1>
|
9
9
|
|
10
|
+
January 23, 2015 - bake-toolkit 2.1.0<br>
|
11
|
+
<ul>
|
12
|
+
<li><b>Bugfix: fixed crash in warning output if setting variable via cmd did not work</b>
|
13
|
+
<li><b>Workaround: dependent header files are now ignored on Windows if path starts with "/" and file cannot be found</b>
|
14
|
+
<li><b>Changed: output of lint is now ignored, linting will only fails if it cannot be executed</b>
|
15
|
+
<li><b>Changed: introduced new verbose mode <i>-v3</i>, shifted some output to this level</b>
|
16
|
+
<li><b>Added: a dependency project can be specified with parent folders if it is ambiguous, e.g. <i>Dependency "my/folder/proj", config: lib</i></b>
|
17
|
+
<li><b>Added: experimental CC2J output</b>
|
18
|
+
</ul>
|
19
|
+
|
20
|
+
January 23, 2015 - Eclipse plugin 1.2.1<br>
|
21
|
+
<ul>
|
22
|
+
<li><b>Bugfix: importing projects with existing .(c)project files may be placed in wrong folder</b>
|
23
|
+
</ul>
|
24
|
+
|
10
25
|
January 15, 2015 - bake-toolkit 2.0.10<br>
|
11
26
|
<ul>
|
12
27
|
<li><b>Bugfix: spaces in paths were not handled correctly in all cases</b>
|
13
28
|
<li><b>Bugfix: dependency files of Keil compiler not treated correctly</b>
|
14
29
|
<li><b>Added: showing why files are built in verbose mode <i>-v2</i></b>
|
15
30
|
<li><b>Added: whole workspace can be linted now (projects will be linted separately)</b>
|
16
|
-
<li><b>Changed: removed <i>bake-doc</i> command, use <i>bake --doc
|
31
|
+
<li><b>Changed: removed <i>bake-doc</i> command, use <i>bake --doc</i> instead</b>
|
17
32
|
<li><b>Changed: if no default project is specified, possible build configs are shown on command line again like in bake 1.x</b>
|
18
33
|
</ul>
|
19
34
|
|
data/doc/index.html
CHANGED
@@ -72,7 +72,7 @@ bake is used to build software <font color="#009900"><b>fast</b></font> and <fon
|
|
72
72
|
|
73
73
|
<p>
|
74
74
|
<hr>
|
75
|
-
<table width="100%" border="0"><tr><td align="left">Described bake-toolkit version: 2.0
|
75
|
+
<table width="100%" border="0"><tr><td align="left">Described bake-toolkit version: 2.1.0</td><td align="right">January 23, 2015</td></tr></table>
|
76
76
|
|
77
77
|
</body>
|
78
78
|
|
data/doc/syntax/syntax.html
CHANGED
@@ -435,7 +435,10 @@ function showDependency() {
|
|
435
435
|
str = 'Specifies another project to be built before this project.<br>'+
|
436
436
|
'The archive, linker libs and search paths are imported from this project to the this project automatically.<br>'+
|
437
437
|
'If you omit the project, the current project will be used.<br>'+
|
438
|
-
'If you omit the config name, the default config will be used
|
438
|
+
'If you omit the config name, the default config will be used.<br>'+
|
439
|
+
'<b>Examples:</b><br>'+
|
440
|
+
' <i>Dependency gtest, config: lib<br>'+
|
441
|
+
' Dependency "my/folder/proj"</i>'
|
439
442
|
ddrivetip("Dependency", "No","0..n","-",str)
|
440
443
|
}
|
441
444
|
|
data/lib/bake/cache.rb
CHANGED
@@ -130,7 +130,7 @@ module Bake
|
|
130
130
|
end
|
131
131
|
|
132
132
|
if cache != nil
|
133
|
-
Bake.formatter.printInfo("Info: cache is up-to-date, loading cached meta information") if Bake.options.
|
133
|
+
Bake.formatter.printInfo("Info: cache is up-to-date, loading cached meta information") if Bake.options.verbose >= 3
|
134
134
|
Bake.options.build_config = cache.build_config if Bake.options.build_config == ""
|
135
135
|
return cache.referencedConfigs
|
136
136
|
end
|
data/lib/bake/config/loader.rb
CHANGED
@@ -111,14 +111,20 @@ module Bake
|
|
111
111
|
end
|
112
112
|
|
113
113
|
def loadMeta(dep)
|
114
|
-
|
114
|
+
dep_subbed = dep.name.gsub(/\\/,"/")
|
115
|
+
if dep_subbed.include?":" or dep_subbed.include?"../" or dep_subbed.start_with?"/" or dep_subbed.end_with?"/"
|
116
|
+
Bake.formatter.printError("#{dep.name} is invalid", dep)
|
117
|
+
ExitHelper.exit(1)
|
118
|
+
end
|
119
|
+
dep_path, dismiss, dep_name = dep_subbed.rpartition("/")
|
120
|
+
|
115
121
|
# file not loaded yet
|
116
|
-
if not @loadedConfigs.include?
|
122
|
+
if not @loadedConfigs.include?dep_name
|
117
123
|
|
118
124
|
pmeta_filenames = []
|
119
125
|
|
120
126
|
@potentialProjs.each do |pp|
|
121
|
-
if pp.include?("/" +
|
127
|
+
if pp.include?("/" + dep_subbed + "/Project.meta") or pp == (dep_subbed + "/Project.meta")
|
122
128
|
pmeta_filenames << pp
|
123
129
|
end
|
124
130
|
end
|
@@ -137,17 +143,25 @@ module Bake
|
|
137
143
|
end
|
138
144
|
end
|
139
145
|
|
140
|
-
@loadedConfigs[
|
146
|
+
@loadedConfigs[dep_name] = loadProjMeta(pmeta_filenames[0])
|
147
|
+
else
|
148
|
+
folder = @loadedConfigs[dep_name][0].get_project_dir
|
149
|
+
if not folder.include?dep_subbed
|
150
|
+
Bake.formatter.printError("Cannot load #{dep.name}, because #{folder} already loaded", dep)
|
151
|
+
ExitHelper.exit(1)
|
152
|
+
end
|
153
|
+
|
141
154
|
end
|
142
|
-
|
155
|
+
|
143
156
|
# get config
|
144
|
-
config, dep.config = getFullProject(@loadedConfigs[
|
157
|
+
config, dep.config = getFullProject(@loadedConfigs[dep_name], dep.config)
|
158
|
+
dep.name = dep_name
|
145
159
|
|
146
160
|
# config not referenced yet
|
147
|
-
if not @referencedConfigs.include?
|
148
|
-
@referencedConfigs[
|
149
|
-
elsif @referencedConfigs[
|
150
|
-
@referencedConfigs[
|
161
|
+
if not @referencedConfigs.include?dep_name
|
162
|
+
@referencedConfigs[dep_name] = [config]
|
163
|
+
elsif @referencedConfigs[dep_name].index { |c| c.name == dep.config } == nil
|
164
|
+
@referencedConfigs[dep_name] << config
|
151
165
|
else
|
152
166
|
return
|
153
167
|
end
|
data/lib/bake/model/loader.rb
CHANGED
@@ -50,13 +50,13 @@ module Bake
|
|
50
50
|
loader.load(:before_load => proc {|fragment, kind|
|
51
51
|
case kind
|
52
52
|
when :load_update_cache
|
53
|
-
if Bake.options.
|
53
|
+
if Bake.options.verbose >= 3
|
54
54
|
puts "Loading and caching #{fragment.location}"
|
55
55
|
else
|
56
56
|
puts "Loading #{fragment.location}"
|
57
57
|
end
|
58
58
|
when :load_cached
|
59
|
-
if Bake.options.
|
59
|
+
if Bake.options.verbose >= 3
|
60
60
|
puts "Loading cached #{fragment.location}"
|
61
61
|
else
|
62
62
|
puts "Loading #{fragment.location}"
|
data/lib/bake/options/options.rb
CHANGED
@@ -18,13 +18,12 @@ module Bake
|
|
18
18
|
|
19
19
|
class Options < Parser
|
20
20
|
attr_accessor :build_config, :nocache
|
21
|
-
attr_reader :main_dir, :project, :filename, :main_project_name # String
|
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
|
24
24
|
attr_reader :threads, :socket, :lint_min, :lint_max # Fixnum
|
25
25
|
attr_reader :vars # map
|
26
|
-
attr_reader :
|
27
|
-
attr_reader :verboseHigh
|
26
|
+
attr_reader :verbose
|
28
27
|
attr_reader :consoleOutput_fullnames, :consoleOutput_visualStudio
|
29
28
|
|
30
29
|
|
@@ -36,13 +35,13 @@ module Bake
|
|
36
35
|
@consoleOutput_visualStudio = false
|
37
36
|
@prepro = false
|
38
37
|
@stopOnFirstError = false
|
39
|
-
@
|
40
|
-
@verboseHigh = false
|
38
|
+
@verbose = 1
|
41
39
|
@vars = {}
|
42
40
|
@build_config = ""
|
43
41
|
@main_dir = nil
|
44
42
|
@project = nil
|
45
43
|
@filename = nil
|
44
|
+
@cc2j_filename = nil
|
46
45
|
@clean = false
|
47
46
|
@clobber = false
|
48
47
|
@lint = false
|
@@ -84,9 +83,10 @@ module Bake
|
|
84
83
|
|
85
84
|
add_option(Option.new("--docu",false) { @docu = true })
|
86
85
|
|
87
|
-
|
88
|
-
add_option(Option.new("-v1",false) { @
|
89
|
-
add_option(Option.new("-v2",false) { @
|
86
|
+
add_option(Option.new("-v0",false) { @verbose = 0 })
|
87
|
+
add_option(Option.new("-v1",false) { @verbose = 1 })
|
88
|
+
add_option(Option.new("-v2",false) { @verbose = 2 })
|
89
|
+
add_option(Option.new("-v3",false) { @verbose = 3 })
|
90
90
|
|
91
91
|
add_option(Option.new("--debug",false) { @debug = true })
|
92
92
|
add_option(Option.new("--set",true) { |x| set_set(x) })
|
@@ -109,7 +109,7 @@ module Bake
|
|
109
109
|
add_option(Option.new("--doc",false) { Doc.show })
|
110
110
|
add_option(Option.new("--version",false) { ExitHelper.exit(0) })
|
111
111
|
add_option(Option.new("--show_configs",false) { @showConfigs = true })
|
112
|
-
|
112
|
+
add_option(Option.new("--writeCC2J",true) { |x| @cc2j_filename = x.gsub(/[\\]/,'/') })
|
113
113
|
|
114
114
|
end
|
115
115
|
|
data/lib/bake/options/usage.rb
CHANGED
@@ -10,7 +10,7 @@ module Bake
|
|
10
10
|
puts " -f <name> Build/Clean this file only."
|
11
11
|
puts " -c Clean the file/project."
|
12
12
|
puts " -a <scheme> Use ansi color sequences (console must support it). Possible values are 'white' and 'black'."
|
13
|
-
puts " -v<level> Verbose level from 0 to
|
13
|
+
puts " -v<level> Verbose level from 0 to 3, whereas -v0 is less, -v1 is normal (default) and -v2 and -v3 are more verbose."
|
14
14
|
puts " -r Stop on first error."
|
15
15
|
puts " -w <root> Add a workspace root (can be used multiple times)."
|
16
16
|
puts " If no root is specified, the parent directory of the main project is added automatically."
|
@@ -39,6 +39,7 @@ module Bake
|
|
39
39
|
puts " --set <key>=<value> Sets a variable. Overwrites variables defined in Project.metas (can be used multiple times)."
|
40
40
|
puts " --show_include_paths Used by IDEs plugins"
|
41
41
|
puts " --show_incs_and_defs Used by IDEs plugins"
|
42
|
+
puts " --writeCC2J <name> Writes compiler command into a json file (experimental!)"
|
42
43
|
puts ""
|
43
44
|
puts " --version Print version."
|
44
45
|
puts " --doc Open documentation in browser"
|
data/lib/bake/subst.rb
CHANGED
@@ -80,6 +80,7 @@ module Bake
|
|
80
80
|
end
|
81
81
|
else
|
82
82
|
cmd_result = false
|
83
|
+
consoleOutput = ""
|
83
84
|
begin
|
84
85
|
Dir.chdir(@@projDir) do
|
85
86
|
cmd = [substString(s.cmd, s)]
|
@@ -90,7 +91,7 @@ module Bake
|
|
90
91
|
consoleOutput = e.message
|
91
92
|
end
|
92
93
|
if (cmd_result == false)
|
93
|
-
Bake.formatter.printWarning("Command not successful, variable #{s.name}
|
94
|
+
Bake.formatter.printWarning("Command not successful, variable #{s.name} will be set to \"\" (#{consoleOutput.chomp}).", s)
|
94
95
|
@@userVarMap[s.name] = ""
|
95
96
|
end
|
96
97
|
end
|
@@ -187,7 +188,7 @@ module Bake
|
|
187
188
|
elsif ENV[var]
|
188
189
|
substStr << ENV[var]
|
189
190
|
else
|
190
|
-
if Bake.options.
|
191
|
+
if Bake.options.verbose >= 2
|
191
192
|
msg = "Substitute variable '$(#{var})' with empty string"
|
192
193
|
if elem
|
193
194
|
Bake.formatter.printInfo(msg, elem)
|
data/lib/bake/toolchain/lint.rb
CHANGED
@@ -11,7 +11,7 @@ module Bake
|
|
11
11
|
:COMMAND => "lint-nt.exe",
|
12
12
|
:DEFINE_FLAG => "-D",
|
13
13
|
:INCLUDE_PATH_FLAG => "-I",
|
14
|
-
:COMPILE_FLAGS => ["-b","-\"format=%f%(:%l:%) %t %n: %m\"", "-width(0)", "-hF1"], # array, not string!
|
14
|
+
:COMPILE_FLAGS => ["-b","-\"format=%f%(:%l:%) %t %n: %m\"", "-width(0)", "-hF1", "-zero"], # array, not string!
|
15
15
|
})
|
16
16
|
|
17
17
|
LintChain[:COMPILER][:CPP][:ERROR_PARSER] = LintErrorParser.new
|
data/lib/blocks/block.rb
CHANGED
@@ -9,6 +9,7 @@ module Bake
|
|
9
9
|
|
10
10
|
module Blocks
|
11
11
|
|
12
|
+
CC2J = []
|
12
13
|
ALL_BLOCKS = {}
|
13
14
|
ALL_COMPILE_BLOCKS = {}
|
14
15
|
|
@@ -90,7 +91,7 @@ module Bake
|
|
90
91
|
end
|
91
92
|
end
|
92
93
|
else
|
93
|
-
if elem and Bake.options.
|
94
|
+
if elem and Bake.options.verbose >= 2
|
94
95
|
Bake.formatter.printInfo("\"..\" in path name found", elem)
|
95
96
|
end
|
96
97
|
end
|
@@ -166,7 +167,7 @@ module Bake
|
|
166
167
|
|
167
168
|
def execute
|
168
169
|
if (@inDeps)
|
169
|
-
if
|
170
|
+
if Bake.options.verbose >= 1
|
170
171
|
Bake.formatter.printWarning("Circular dependency found including project #{@projectName} with config #{@configName}", @config)
|
171
172
|
end
|
172
173
|
return true
|
@@ -182,7 +183,7 @@ module Bake
|
|
182
183
|
|
183
184
|
Bake::IDEInterface.instance.set_build_info(@projectName, @configName)
|
184
185
|
|
185
|
-
if
|
186
|
+
if Bake.options.verbose >= 1
|
186
187
|
Bake.formatter.printAdditionalInfo "**** Building #{Block.block_counter} of #{@@num_projects}: #{@projectName} (#{@configName}) ****"
|
187
188
|
end
|
188
189
|
|
@@ -197,7 +198,7 @@ module Bake
|
|
197
198
|
depResult = callDeps(:clean)
|
198
199
|
return false if not depResult and Bake.options.stopOnFirstError
|
199
200
|
|
200
|
-
if Bake.options.
|
201
|
+
if Bake.options.verbose >= 2
|
201
202
|
Bake.formatter.printAdditionalInfo "**** Cleaning #{Block.block_counter} of #{@@num_projects}: #{@projectName} (#{@configName}) ****"
|
202
203
|
end
|
203
204
|
|
@@ -206,7 +207,7 @@ module Bake
|
|
206
207
|
if Bake.options.clobber
|
207
208
|
Dir.chdir(@projectDir) do
|
208
209
|
if File.exist?".bake"
|
209
|
-
puts "Deleting folder .bake" if Bake.options.
|
210
|
+
puts "Deleting folder .bake" if Bake.options.verbose >= 2
|
210
211
|
FileUtils.rm_rf(".bake")
|
211
212
|
end
|
212
213
|
end
|
data/lib/blocks/blockBase.rb
CHANGED
@@ -25,14 +25,14 @@ module Bake
|
|
25
25
|
begin
|
26
26
|
FileUtils.touch(@config.file_name)
|
27
27
|
rescue Exception=>e
|
28
|
-
if Bake.options.
|
28
|
+
if Bake.options.verbose >= 2
|
29
29
|
Bake.formatter.printWarning("Could not touch #{@config.file_name}: #{e.message}", @config.file_name)
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
-
def prepareOutput(filename)
|
35
|
+
def self.prepareOutput(filename)
|
36
36
|
begin
|
37
37
|
if File.exists?(filename)
|
38
38
|
FileUtils.rm(filename)
|
@@ -61,19 +61,19 @@ module Bake
|
|
61
61
|
def printCmd(cmd, alternate, reason, forceVerbose)
|
62
62
|
|
63
63
|
if (cmd == @lastCommand)
|
64
|
-
if (Bake.options.
|
64
|
+
if (Bake.options.verbose >= 2 or (@printedCmdAlternate and not forceVerbose))
|
65
65
|
return
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
69
|
@lastCommand = cmd
|
70
70
|
|
71
|
-
return if Bake.options.
|
71
|
+
return if Bake.options.verbose == 0 and not forceVerbose
|
72
72
|
|
73
|
-
if forceVerbose or Bake.options.
|
73
|
+
if forceVerbose or Bake.options.verbose >= 2 or not alternate
|
74
74
|
@printedCmdAlternate = false
|
75
|
-
if Bake.options.
|
76
|
-
|
75
|
+
puts "" if Bake.options.verbose >= 2 # for A.K. :-)
|
76
|
+
if Bake.options.verbose >= 3
|
77
77
|
exedIn = "\n(executed in '#{@projectDir}')"
|
78
78
|
because = reason ? "\n(#{reason})" : ""
|
79
79
|
else
|
@@ -114,7 +114,7 @@ module Bake
|
|
114
114
|
end
|
115
115
|
|
116
116
|
if Bake.options.lint
|
117
|
-
|
117
|
+
# ignore error output
|
118
118
|
else
|
119
119
|
ret = error_descs.any? { |e| e.severity == ErrorParser::SEVERITY_ERROR }
|
120
120
|
end
|
data/lib/blocks/compile.rb
CHANGED
@@ -47,8 +47,19 @@ module Bake
|
|
47
47
|
|
48
48
|
begin
|
49
49
|
File.readlines(dep_filename_conv).map{|line| line.strip}.each do |dep|
|
50
|
-
|
51
|
-
|
50
|
+
dep = "/usr/bla"
|
51
|
+
if not File.exist?(dep)
|
52
|
+
# we need a hack here. with some windows configurations the compiler prints unix paths
|
53
|
+
# into the dep file which cannot be found easily. this will be true for system includes,
|
54
|
+
# e.g. /usr/lib/...xy.h
|
55
|
+
if Bake::Utils::OS.windows? and dep.start_with?"/"
|
56
|
+
puts "Dependency header file #{dep} ignored!" if Bake.options.debug
|
57
|
+
else
|
58
|
+
return "because dependent header #{dep} does not exist"
|
59
|
+
end
|
60
|
+
else
|
61
|
+
return "because dependent header #{dep} is newer than object" if oTime < File.mtime(dep)
|
62
|
+
end
|
52
63
|
end
|
53
64
|
rescue Exception => ex
|
54
65
|
if Bake.options.debug
|
@@ -112,7 +123,7 @@ module Bake
|
|
112
123
|
raise SystemCommandFailed.new
|
113
124
|
end
|
114
125
|
|
115
|
-
prepareOutput(object)
|
126
|
+
BlockBase.prepareOutput(object)
|
116
127
|
|
117
128
|
cmd = Utils.flagSplit(compiler[:COMMAND], false)
|
118
129
|
cmd += compiler[:COMPILE_FLAGS].split(" ")
|
@@ -150,6 +161,10 @@ module Bake
|
|
150
161
|
end
|
151
162
|
cmd << source
|
152
163
|
|
164
|
+
if Bake.options.cc2j_filename
|
165
|
+
Blocks::CC2J << { :directory => @projectDir, :command => cmd, :file => source }
|
166
|
+
end
|
167
|
+
|
153
168
|
success, consoleOutput = ProcessHelper.run(cmd, false, false)
|
154
169
|
outputType = Bake.options.prepro ? "Preprocessing" : "Compiling"
|
155
170
|
process_result(cmd, consoleOutput, compiler[:ERROR_PARSER], "#{outputType} #{source}", reason, success)
|
@@ -270,11 +285,11 @@ module Bake
|
|
270
285
|
object = get_object_file(source)
|
271
286
|
dep_filename = calcDepFile(object, type)
|
272
287
|
if File.exist?object
|
273
|
-
puts "Deleting file #{object}" if Bake.options.
|
288
|
+
puts "Deleting file #{object}" if Bake.options.verbose >= 2
|
274
289
|
FileUtils.rm_rf(object)
|
275
290
|
end
|
276
291
|
if File.exist?dep_filename
|
277
|
-
puts "Deleting file #{dep_filename}" if Bake.options.
|
292
|
+
puts "Deleting file #{dep_filename}" if Bake.options.verbose >= 2
|
278
293
|
FileUtils.rm_rf(dep_filename)
|
279
294
|
end
|
280
295
|
end
|
@@ -298,7 +313,7 @@ module Bake
|
|
298
313
|
if not p.include?"*" and not p.include?"?"
|
299
314
|
Bake.formatter.printError("Source file '#{p}' not found", sources)
|
300
315
|
raise SystemCommandFailed.new
|
301
|
-
elsif
|
316
|
+
elsif Bake.options.verbose >= 1
|
302
317
|
Bake.formatter.printInfo("Source file pattern '#{p}' does not match to any file", sources)
|
303
318
|
end
|
304
319
|
end
|
data/lib/blocks/executable.rb
CHANGED
@@ -92,7 +92,7 @@ module Bake
|
|
92
92
|
reason = needed?(libs)
|
93
93
|
return unless reason
|
94
94
|
|
95
|
-
prepareOutput(@exe_name)
|
95
|
+
BlockBase.prepareOutput(@exe_name)
|
96
96
|
|
97
97
|
linker = @tcs[:LINKER]
|
98
98
|
|
@@ -131,7 +131,7 @@ module Bake
|
|
131
131
|
def clean
|
132
132
|
Dir.chdir(@projectDir) do
|
133
133
|
if File.exist?@output_dir
|
134
|
-
puts "Deleting folder #{@output_dir}" if Bake.options.
|
134
|
+
puts "Deleting folder #{@output_dir}" if Bake.options.verbose >= 2
|
135
135
|
FileUtils.rm_rf(@output_dir)
|
136
136
|
end
|
137
137
|
end unless Bake.options.filename
|
@@ -5,8 +5,8 @@ module Bake
|
|
5
5
|
module HasExecuteCommand
|
6
6
|
|
7
7
|
def executeCommand(commandLine, ignoreStr=nil)
|
8
|
-
puts commandLine if
|
9
|
-
puts "(executed in '#{@projectDir}')" if Bake.options.
|
8
|
+
puts commandLine if Bake.options.verbose >= 1
|
9
|
+
puts "(executed in '#{@projectDir}')" if Bake.options.verbose >= 3
|
10
10
|
cmd_result = false
|
11
11
|
output = ""
|
12
12
|
begin
|
@@ -20,7 +20,7 @@ module Bake
|
|
20
20
|
|
21
21
|
if (cmd_result == false and (not ignoreStr or not output.include?ignoreStr))
|
22
22
|
Bake.formatter.printError("Command \"#{commandLine}\" failed", @config)
|
23
|
-
puts "(executed in '#{@projectDir}')" if
|
23
|
+
puts "(executed in '#{@projectDir}')" if Bake.options.verbose >= 3
|
24
24
|
raise SystemCommandFailed.new
|
25
25
|
end
|
26
26
|
end
|
data/lib/blocks/library.rb
CHANGED
@@ -45,7 +45,7 @@ module Bake
|
|
45
45
|
reason = needed?
|
46
46
|
return unless reason
|
47
47
|
|
48
|
-
prepareOutput(archive_name)
|
48
|
+
BlockBase.prepareOutput(archive_name)
|
49
49
|
|
50
50
|
archiver = @tcs[:ARCHIVER]
|
51
51
|
|
@@ -65,7 +65,7 @@ module Bake
|
|
65
65
|
def clean
|
66
66
|
Dir.chdir(@projectDir) do
|
67
67
|
if File.exist?@output_dir
|
68
|
-
puts "Deleting folder #{@output_dir}" if Bake.options.
|
68
|
+
puts "Deleting folder #{@output_dir}" if Bake.options.verbose >= 2
|
69
69
|
FileUtils.rm_rf(@output_dir)
|
70
70
|
end
|
71
71
|
end unless Bake.options.filename
|
data/lib/common/cleanup.rb
CHANGED
data/lib/common/version.rb
CHANGED
data/lib/tocxx.rb
CHANGED
@@ -254,6 +254,21 @@ module Bake
|
|
254
254
|
ExitHelper.set_exit_code(1)
|
255
255
|
return
|
256
256
|
end
|
257
|
+
|
258
|
+
if Bake.options.cc2j_filename
|
259
|
+
Blocks::BlockBase.prepareOutput(Bake.options.cc2j_filename)
|
260
|
+
File.open(Bake.options.cc2j_filename, 'w') do |f|
|
261
|
+
f.puts "["
|
262
|
+
noComma = Blocks::CC2J.length - 1
|
263
|
+
Blocks::CC2J.each_with_index do |c, index|
|
264
|
+
cmd = c[:command].is_a?(Array) ? c[:command].join(' ') : c[:command]
|
265
|
+
f.puts " { \"directory\": \"" + c[:directory] + "\","
|
266
|
+
f.puts " \"command\": \"" + cmd + "\","
|
267
|
+
f.puts " \"file\": \"" + c[:file] + "\" }#{index == noComma ? "" : ","}"
|
268
|
+
end
|
269
|
+
f.puts "]"
|
270
|
+
end
|
271
|
+
end
|
257
272
|
|
258
273
|
if result == false
|
259
274
|
Bake.formatter.printError("\n#{taskType} failed.")
|
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.0
|
4
|
+
version: 2.1.0
|
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-01-
|
11
|
+
date: 2015-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rtext
|
@@ -89,7 +89,6 @@ files:
|
|
89
89
|
- lib/bake/options/showLicense.rb
|
90
90
|
- lib/bake/options/showToolchains.rb
|
91
91
|
- lib/bake/options/usage.rb
|
92
|
-
- lib/bake/process_output.rb
|
93
92
|
- lib/bake/subst.rb
|
94
93
|
- lib/bake/toolchain/clang.rb
|
95
94
|
- lib/bake/toolchain/colorizing_formatter.rb
|