bake-toolkit 1.7.0 → 1.8.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a490c7db651ab2f105560e8ecd219f374bdc1ea3
4
- data.tar.gz: 5dcc57cb1ff99210057f5a39d5e735962a3ee428
3
+ metadata.gz: 9335abf32a9aa13ca68eb2985babba8ff8a02236
4
+ data.tar.gz: f40783c3c427e83722fb01d319c5b8deb6fe529b
5
5
  SHA512:
6
- metadata.gz: a3db8a4eed4a2d21c891bbe20aecf9622ef0b00bde737f6f009ccfbf9e6f456cc3b777b8fa7190120a846ca7835d107c78a20df6f3950eb28147104c629b6b11
7
- data.tar.gz: fe27f9b7f8807586e244afc439920106152e6216789559d72534e3fa7c340e28ef3dadc67ca4986b549a9df89a92e4d863196f92ab757b7d72767e78478dccbb
6
+ metadata.gz: 89cf35c7cb654d3a58ac1a280163f6c8d07d607697f1cb1bca838b0fe08878619a6add1440b6301033246114af61a0b8d5687aff903108cf765ef9d173b153a5
7
+ data.tar.gz: cf084b8ef730e2a792993f5b941c46308eef3e8c7401718cf5d0496978b25c6d88d660bcb2ec6e27e987381cd8dc812f7c2d96512f37ece7061baa1877633173
@@ -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>
@@ -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
 
@@ -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>
@@ -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.7.0</td><td align="right">November 4, 2014</td></tr></table>
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
 
@@ -109,6 +109,7 @@ z-index: 100;
109
109
  <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
110
110
  &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;<br>
111
111
  &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultDefine()" onMouseout="notip()">Define</span> &#60;define&#62;<br>
112
+ &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showInternalDefines()" onMouseout="notip()">InternalDefines</span> &#60;file&#62;<br>
112
113
  &nbsp; &nbsp; &nbsp; }<br>
113
114
  &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultArchiver()" onMouseout="notip()">Archiver</span>
114
115
  <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
@@ -120,6 +121,7 @@ z-index: 100;
120
121
  &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showLibPrefixFlags()" onMouseout="notip()">LibPrefixFlags</span> &#60;flags&#62;<br>
121
122
  &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showLibPostfixFlags()" onMouseout="notip()">LibPostfixFlags</span> &#60;flags&#62;<br>
122
123
  &nbsp; &nbsp; &nbsp; }<br>
124
+ &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showInternalIncludes()" onMouseout="notip()">InternalIncludes</span> &#60;file&#62;<br>
123
125
  &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultLintPolicy()" onMouseout="notip()">LintPolicy</span> &#60;policy&#62;<br>
124
126
  &nbsp; &nbsp; }<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
  }
@@ -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
@@ -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
- ColorizingFormatter::setColorScheme(x.to_sym)
291
- @color = true
292
- ColorizingFormatter.enabled = true
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
@@ -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: #{elem.file_name}(#{elem.line_number}): substitute variable '$(#{var})' with empty string"
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
+
@@ -130,3 +130,8 @@ def calc_def_roots(dir)
130
130
  end
131
131
  def_roots
132
132
  end
133
+
134
+ def add_line_if_no_comment(array, str)
135
+ s = str.split("#")[0].strip
136
+ array << s unless s.empty?
137
+ end
@@ -1,11 +1,11 @@
1
1
  module Cxxproject
2
2
  class Version
3
3
  def self.bake
4
- "1.7.0"
4
+ "1.8.0.1"
5
5
  end
6
6
  end
7
7
 
8
- expectedCxx = "0.5.75"
8
+ expectedCxx = "0.5.76"
9
9
  expectedRGen = "0.6.0"
10
10
  expectedRText = "0.2.0"
11
11
 
@@ -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
- if @options.show_includes
811
- @bbs.each do |bb|
812
- if HasIncludes === bb
813
- print bb.name
814
- li = bb.local_includes
815
- li.each { |i| print "##{i}" }
816
- print "\n"
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
- exit(0)
820
- end
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.7.0
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-04 00:00:00.000000000 Z
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.75
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.75
26
+ version: 0.5.76
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rtext
29
29
  requirement: !ruby/object:Gem::Requirement