bake-toolkit 1.7.0 → 1.8.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/further/change.html +8 -6
- data/doc/further/issues.html +0 -1
- data/doc/further/wish.html +0 -1
- data/doc/index.html +1 -1
- data/doc/syntax/syntax.html +10 -0
- data/lib/bake/model/metamodel.rb +10 -1
- data/lib/bake/options.rb +18 -7
- data/lib/bake/subst.rb +5 -3
- data/lib/bake/util.rb +5 -0
- data/lib/bake/version.rb +2 -2
- data/lib/tocxx.rb +78 -9
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9335abf32a9aa13ca68eb2985babba8ff8a02236
|
4
|
+
data.tar.gz: f40783c3c427e83722fb01d319c5b8deb6fe529b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89cf35c7cb654d3a58ac1a280163f6c8d07d607697f1cb1bca838b0fe08878619a6add1440b6301033246114af61a0b8d5687aff903108cf765ef9d173b153a5
|
7
|
+
data.tar.gz: cf084b8ef730e2a792993f5b941c46308eef3e8c7401718cf5d0496978b25c6d88d660bcb2ec6e27e987381cd8dc812f7c2d96512f37ece7061baa1877633173
|
data/doc/further/change.html
CHANGED
@@ -7,19 +7,25 @@
|
|
7
7
|
<body>
|
8
8
|
<h1>Changelog</h1>
|
9
9
|
|
10
|
+
November 7, 2014 - bake-toolkit 1.8.0, Eclipse plugin 1.1.0<br>
|
11
|
+
<ul>
|
12
|
+
<li><b>Added: InternalIncludes and InternalDefines in DefaultToolchain, which are forwarded to the IDE.</b>
|
13
|
+
<li><b>Changed: No default options for PC-lint in combination with GCC will be provided anymore.
|
14
|
+
Use the official way, see co-gcc.lnt in PC-lint installation.</b>
|
15
|
+
<li><b>Bugfix: verbose output for replacing non-existing environment variables broken.</b>
|
16
|
+
</ul>
|
17
|
+
|
10
18
|
November 4, 2014 - bake-toolkit 1.7.0<br>
|
11
19
|
<ul>
|
12
20
|
<li><b>Added: Option to define output directory relative/absolute for each project or for all projects.</b>
|
13
21
|
<li><b>Added: --set command line option to set variables</b>
|
14
22
|
<li><b>Added: Optional "Description" tag for projects in Project.meta</b>
|
15
23
|
<li><b>Changed: Variables in DefaultToolchain will be substituted separately for each project.</b>
|
16
|
-
</b>
|
17
24
|
</ul>
|
18
25
|
|
19
26
|
August 8, 2014 - bake-toolkit 1.6.3<br>
|
20
27
|
<ul>
|
21
28
|
<li><b>Fixed: possible uninitialized variable could lead to crash bake</b>
|
22
|
-
</b>
|
23
29
|
</ul>
|
24
30
|
|
25
31
|
August 6, 2014 - bake-toolkit 1.6.2<br>
|
@@ -27,7 +33,6 @@ August 6, 2014 - bake-toolkit 1.6.2<br>
|
|
27
33
|
<li><b>Fixed: clear clearn- and clobber-lists at startup</b>
|
28
34
|
<li><b>Fixed: Variables not substituted in ArtifactName and ArtifactNameBase</b>
|
29
35
|
<li><b>Added: Cyclic variable substitution</b>
|
30
|
-
</b>
|
31
36
|
</ul>
|
32
37
|
|
33
38
|
August 5, 2014 - bake-toolkit 1.6.1<br>
|
@@ -39,21 +44,18 @@ August 5, 2014 - bake-toolkit 1.6.1<br>
|
|
39
44
|
August 1, 2014 - bake-toolkit 1.6.0<br>
|
40
45
|
<ul>
|
41
46
|
<li><b>Added: The value of a variable can be the result of a command line</b>
|
42
|
-
</b>
|
43
47
|
</ul>
|
44
48
|
|
45
49
|
July 18, 2014 - bake-toolkit 1.5.0<br>
|
46
50
|
<ul>
|
47
51
|
<li><b>Added: Dependencies can be overwritten in inherited projects</b>
|
48
52
|
<li><b>Removed: defines cannot be filtered anymore via command line</b>
|
49
|
-
</b>
|
50
53
|
</ul>
|
51
54
|
|
52
55
|
June 6, 2014 - bake-toolkit 1.4.0<br>
|
53
56
|
<ul>
|
54
57
|
<li><b>Bugfix: variables can be used in "Set" now</b>
|
55
58
|
<li><b>Added: variable "MainProjectDir"
|
56
|
-
</b>
|
57
59
|
</ul>
|
58
60
|
|
59
61
|
May 23, 2014 - bake-toolkit 1.3.0<br>
|
data/doc/further/issues.html
CHANGED
@@ -11,7 +11,6 @@
|
|
11
11
|
<b>Workaround 1</b>: Clean the project.<br>
|
12
12
|
<b>Workaround 2</b>: Delete the archive/executable manually.<br>
|
13
13
|
<b>Workaround 3</b>: Touch, edit, create another source file.<br>
|
14
|
-
<li>Pathes given to lint may be unit pathes, must be converted (will be fixed soon).
|
15
14
|
</ul>
|
16
15
|
|
17
16
|
|
data/doc/further/wish.html
CHANGED
@@ -30,7 +30,6 @@ Reason: require statements take round about two seconds before the build can be
|
|
30
30
|
<li>Better annotations undefined symbol errors (if e.g. filename is given in error message)
|
31
31
|
<li>Doxygen parameter to generate Doxygen, maybe with AutoOpen from Eclipse?
|
32
32
|
<li>Even shorter command line options
|
33
|
-
<li>Export defines to Eclipse
|
34
33
|
<li>Better error log in Eclipse if plugin does not work
|
35
34
|
<li>Doxygen support or even better generic docu support
|
36
35
|
</ul>
|
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: 1.
|
75
|
+
<table width="100%" border="0"><tr><td align="left">Described bake-toolkit version: 1.8.0</td><td align="right">November 7, 2014</td></tr></table>
|
76
76
|
|
77
77
|
</body>
|
78
78
|
|
data/doc/syntax/syntax.html
CHANGED
@@ -109,6 +109,7 @@ z-index: 100;
|
|
109
109
|
<span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: <cmd> {</i><br>
|
110
110
|
<span class="help" onMouseover="showDefaultFlags()" onMouseout="notip()">Flags</span> <flags><br>
|
111
111
|
<span class="help" onMouseover="showDefaultDefine()" onMouseout="notip()">Define</span> <define><br>
|
112
|
+
<span class="help" onMouseover="showInternalDefines()" onMouseout="notip()">InternalDefines</span> <file><br>
|
112
113
|
}<br>
|
113
114
|
<span class="help" onMouseover="showDefaultArchiver()" onMouseout="notip()">Archiver</span>
|
114
115
|
<span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: <cmd> {</i><br>
|
@@ -120,6 +121,7 @@ z-index: 100;
|
|
120
121
|
<span class="help" onMouseover="showLibPrefixFlags()" onMouseout="notip()">LibPrefixFlags</span> <flags><br>
|
121
122
|
<span class="help" onMouseover="showLibPostfixFlags()" onMouseout="notip()">LibPostfixFlags</span> <flags><br>
|
122
123
|
}<br>
|
124
|
+
<span class="help" onMouseover="showInternalIncludes()" onMouseout="notip()">InternalIncludes</span> <file><br>
|
123
125
|
<span class="help" onMouseover="showDefaultLintPolicy()" onMouseout="notip()">LintPolicy</span> <policy><br>
|
124
126
|
}<br></span><br></span>
|
125
127
|
|
@@ -525,6 +527,14 @@ function showDefaultDefine() {
|
|
525
527
|
ddrivetip("Define", "No","0..n","-","Defines which are valid for all files.")
|
526
528
|
}
|
527
529
|
|
530
|
+
function showInternalDefines() {
|
531
|
+
ddrivetip("InternalDefines", "No","0..1","-","File with list of compiler internal defines.<br>One define per line.<br>Empty lines and comments with # are allowed.")
|
532
|
+
}
|
533
|
+
|
534
|
+
function showInternalIncludes() {
|
535
|
+
ddrivetip("InternalIncludes", "No","0..1","-","File with list of compiler internal include folders.<br>One folder per line.<br>Empty lines and comments with # are allowed.")
|
536
|
+
}
|
537
|
+
|
528
538
|
function showDefaultCompiler() {
|
529
539
|
ddrivetip("Compiler", "No","0..3 (for each compiler type: ASM, CPP, C)","-","Default compiler settings.")
|
530
540
|
}
|
data/lib/bake/model/metamodel.rb
CHANGED
@@ -46,7 +46,14 @@ module Cxxproject
|
|
46
46
|
has_attr 'str', String, :defaultValueLiteral => ""
|
47
47
|
end
|
48
48
|
|
49
|
-
|
49
|
+
class InternalIncludes < ModelElement
|
50
|
+
has_attr 'name', String, :defaultValueLiteral => ""
|
51
|
+
end
|
52
|
+
|
53
|
+
class InternalDefines < ModelElement
|
54
|
+
has_attr 'name', String, :defaultValueLiteral => ""
|
55
|
+
end
|
56
|
+
|
50
57
|
class Archiver < ModelElement
|
51
58
|
has_attr 'command', String, :defaultValueLiteral => ""
|
52
59
|
contains_many 'flags', Flags, 'parent'
|
@@ -64,6 +71,7 @@ module Cxxproject
|
|
64
71
|
has_attr 'command', String, :defaultValueLiteral => ""
|
65
72
|
contains_many 'define', Define, 'parent'
|
66
73
|
contains_many 'flags', Flags, 'parent'
|
74
|
+
contains_one 'internalDefines', InternalDefines, 'parent'
|
67
75
|
end
|
68
76
|
|
69
77
|
class LintPolicy < ModelElement
|
@@ -77,6 +85,7 @@ module Cxxproject
|
|
77
85
|
contains_one 'archiver', Archiver, 'parent'
|
78
86
|
contains_one 'linker', Linker, 'parent'
|
79
87
|
contains_many 'lintPolicy', LintPolicy, 'parent'
|
88
|
+
contains_one 'internalIncludes', InternalIncludes, 'parent'
|
80
89
|
end
|
81
90
|
|
82
91
|
class Toolchain < ModelElement
|
data/lib/bake/options.rb
CHANGED
@@ -8,7 +8,7 @@ module Cxxproject
|
|
8
8
|
class Options < Parser
|
9
9
|
attr_reader :build_config, :main_dir, :project, :filename, :eclipse_version, :alias_filename # String
|
10
10
|
attr_reader :roots, :include_filter, :exclude_filter # String List
|
11
|
-
attr_reader :clean, :rebuild, :single, :verbose, :nocache, :color, :show_includes, :linkOnly, :check_uninc, :printLess, :no_autodir, :clobber, :lint, :debug, :cmake # Boolean
|
11
|
+
attr_reader :clean, :rebuild, :single, :verbose, :nocache, :color, :show_includes, :show_includes_and_defines, :linkOnly, :check_uninc, :printLess, :no_autodir, :clobber, :lint, :debug, :cmake # Boolean
|
12
12
|
attr_reader :threads, :socket, :lint_min, :lint_max # Fixnum
|
13
13
|
attr_reader :vars # map
|
14
14
|
|
@@ -31,6 +31,7 @@ module Cxxproject
|
|
31
31
|
@check_uninc = false
|
32
32
|
@color = false
|
33
33
|
@show_includes = false
|
34
|
+
@show_includes_and_defines = false
|
34
35
|
@linkOnly = false
|
35
36
|
@printLess = false
|
36
37
|
@no_autodir = false
|
@@ -85,6 +86,7 @@ module Cxxproject
|
|
85
86
|
add_option(Option.new("-h",false) { usage; ExitHelper.exit(0) })
|
86
87
|
add_option(Option.new("--help",false) { usage; ExitHelper.exit(0) })
|
87
88
|
add_option(Option.new("--show_include_paths",false) { set_show_inc })
|
89
|
+
add_option(Option.new("--show_incs_and_defs",false) { set_show_inc_def })
|
88
90
|
add_option(Option.new("--eclipse_version",true) { |x| set_eclipse_version(x) })
|
89
91
|
add_option(Option.new("--show_license",false) { show_license })
|
90
92
|
add_option(Option.new("--version",false) { ExitHelper.exit(0) })
|
@@ -282,14 +284,19 @@ module Cxxproject
|
|
282
284
|
end
|
283
285
|
|
284
286
|
def set_color(x)
|
285
|
-
if (x != "black" and x != "white")
|
287
|
+
if (x != "black" and x != "white" and x != "none")
|
286
288
|
Printer.printError "Error: color scheme must be 'black' or 'white'"
|
287
289
|
ExitHelper.exit(1)
|
288
290
|
end
|
289
|
-
begin
|
290
|
-
|
291
|
-
|
292
|
-
|
291
|
+
begin
|
292
|
+
if (x == "none")
|
293
|
+
@color = false
|
294
|
+
ColorizingFormatter.enabled = false
|
295
|
+
else
|
296
|
+
ColorizingFormatter::setColorScheme(x.to_sym)
|
297
|
+
@color = true
|
298
|
+
ColorizingFormatter.enabled = true
|
299
|
+
end
|
293
300
|
rescue Exception => e
|
294
301
|
Printer.printError "Error: colored gem not installed (#{e.message})"
|
295
302
|
puts e.backtrace if @verbose
|
@@ -308,7 +315,11 @@ module Cxxproject
|
|
308
315
|
def set_show_inc
|
309
316
|
@show_includes = true
|
310
317
|
end
|
311
|
-
|
318
|
+
|
319
|
+
def set_show_inc_def
|
320
|
+
@show_includes_and_defines = true
|
321
|
+
end
|
322
|
+
|
312
323
|
def set_show_fullnames
|
313
324
|
Rake::application.consoleOutput_fullnames = true
|
314
325
|
end
|
data/lib/bake/subst.rb
CHANGED
@@ -10,6 +10,7 @@ module Cxxproject
|
|
10
10
|
@@options = options
|
11
11
|
@@mainProjectName = File::basename(options.main_dir)
|
12
12
|
@@resolvedVars = 0
|
13
|
+
@@configFilename = config.file_name
|
13
14
|
|
14
15
|
@@artifactName = ""
|
15
16
|
if Metamodel::ExecutableConfig === config
|
@@ -42,7 +43,7 @@ module Cxxproject
|
|
42
43
|
cmd_result = false
|
43
44
|
begin
|
44
45
|
rd, wr = IO.pipe
|
45
|
-
cmd = [s.cmd]
|
46
|
+
cmd = [substString(s.cmd)]
|
46
47
|
cmd << {
|
47
48
|
:err=>wr,
|
48
49
|
:out=>wr
|
@@ -138,7 +139,7 @@ module Cxxproject
|
|
138
139
|
substStr << ENV[var]
|
139
140
|
else
|
140
141
|
if @@options.verbose
|
141
|
-
Printer.printInfo "Info: #{
|
142
|
+
Printer.printInfo "Info: #{@@configFilename}: substitute variable '$(#{var})' with empty string"
|
142
143
|
end
|
143
144
|
substStr << ""
|
144
145
|
end
|
@@ -177,4 +178,5 @@ module Cxxproject
|
|
177
178
|
|
178
179
|
end
|
179
180
|
|
180
|
-
end
|
181
|
+
end
|
182
|
+
|
data/lib/bake/util.rb
CHANGED
data/lib/bake/version.rb
CHANGED
data/lib/tocxx.rb
CHANGED
@@ -346,6 +346,15 @@ module Cxxproject
|
|
346
346
|
end
|
347
347
|
end
|
348
348
|
|
349
|
+
if config.respond_to?("toolchain") and config.toolchain
|
350
|
+
config.toolchain.compiler.each do |c|
|
351
|
+
if not c.internalDefines.nil? and c.internalDefines != ""
|
352
|
+
Printer.printError "Error: #{c.file_name}(#{c.internalDefines.line_number}): InternalDefines only allowed in DefaultToolchain'"
|
353
|
+
ExitHelper.exit(1)
|
354
|
+
end
|
355
|
+
end
|
356
|
+
end
|
357
|
+
|
349
358
|
config.dependency.each do |d|
|
350
359
|
pname = d.name
|
351
360
|
cname = d.config
|
@@ -807,17 +816,77 @@ module Cxxproject
|
|
807
816
|
@num_modules = calc_needed_bbs(startBBName, @bbs)
|
808
817
|
end
|
809
818
|
|
810
|
-
|
811
|
-
@
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
819
|
+
begin # show incs and stuff
|
820
|
+
if @options.show_includes
|
821
|
+
@bbs.each do |bb|
|
822
|
+
if HasIncludes === bb
|
823
|
+
print bb.name
|
824
|
+
li = bb.local_includes
|
825
|
+
li.each { |i| print "##{i}" }
|
826
|
+
print "\n"
|
827
|
+
end
|
817
828
|
end
|
829
|
+
ExitHelper.exit(0)
|
818
830
|
end
|
819
|
-
|
820
|
-
|
831
|
+
|
832
|
+
if @options.show_includes_and_defines
|
833
|
+
intIncs = []
|
834
|
+
intDefs = {:CPP => [], :C => [], :ASM => []}
|
835
|
+
Dir.chdir(@options.main_dir) do
|
836
|
+
|
837
|
+
if (@mainConfig.defaultToolchain.internalIncludes)
|
838
|
+
iname = convPath(@mainConfig.defaultToolchain.internalIncludes.name, @mainConfig)
|
839
|
+
if iname != ""
|
840
|
+
if not File.exists?(iname)
|
841
|
+
Printer.printError "Error: InternalIncludes file #{iname} does not exist"
|
842
|
+
ExitHelper.exit(1)
|
843
|
+
end
|
844
|
+
IO.foreach(iname) {|x| add_line_if_no_comment(intIncs,x) }
|
845
|
+
end
|
846
|
+
end
|
847
|
+
|
848
|
+
@mainConfig.defaultToolchain.compiler.each do |c|
|
849
|
+
if (c.internalDefines)
|
850
|
+
dname = convPath(c.internalDefines.name, @mainConfig)
|
851
|
+
if dname != ""
|
852
|
+
if not File.exists?(dname)
|
853
|
+
Printer.printError "Error: InternalDefines file #{dname} does not exist"
|
854
|
+
ExitHelper.exit(1)
|
855
|
+
end
|
856
|
+
IO.foreach(dname) {|x| add_line_if_no_comment(intDefs[c.ctype],x) }
|
857
|
+
end
|
858
|
+
end
|
859
|
+
end
|
860
|
+
|
861
|
+
end
|
862
|
+
|
863
|
+
|
864
|
+
@bbs.each do |bb|
|
865
|
+
if HasIncludes === bb
|
866
|
+
puts bb.name
|
867
|
+
|
868
|
+
puts " includes"
|
869
|
+
(bb.local_includes + intIncs).each { |i| puts " #{i}" }
|
870
|
+
|
871
|
+
[:CPP, :C, :ASM].each do |type|
|
872
|
+
puts " #{type} defines"
|
873
|
+
(bb.tcs[:COMPILER][type][:DEFINES] + intDefs[type]).each { |d| puts " #{d}" }
|
874
|
+
end
|
875
|
+
puts " done"
|
876
|
+
end
|
877
|
+
end
|
878
|
+
ExitHelper.exit(0)
|
879
|
+
end
|
880
|
+
rescue Exception => e
|
881
|
+
if (not SystemExit === e)
|
882
|
+
puts e
|
883
|
+
puts e.backtrace
|
884
|
+
ExitHelper.exit(1)
|
885
|
+
else
|
886
|
+
raise e
|
887
|
+
end
|
888
|
+
end
|
889
|
+
|
821
890
|
|
822
891
|
theExeBB = nil
|
823
892
|
@bbs.each do |bb|
|
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: 1.
|
4
|
+
version: 1.8.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Schaal
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cxxproject
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.5.
|
19
|
+
version: 0.5.76
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.5.
|
26
|
+
version: 0.5.76
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rtext
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|