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 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