bake-toolkit 2.13.1 → 2.14.0

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.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/documentation/_build/html/_sources/changelog.txt +7 -0
  3. data/documentation/_build/html/_sources/index.txt +1 -1
  4. data/documentation/_build/html/_sources/syntax/adapt_configs.txt +143 -0
  5. data/documentation/_build/html/_sources/syntax/derive_configs.txt +48 -60
  6. data/documentation/_build/html/_sources/syntax/syntax.txt +1 -0
  7. data/documentation/_build/html/_static/syntax.html +9 -6
  8. data/documentation/_build/html/changelog.html +14 -4
  9. data/documentation/_build/html/commandline/commandline.html +6 -6
  10. data/documentation/_build/html/concepts/build_hierarchy.html +4 -4
  11. data/documentation/_build/html/concepts/concepts.html +4 -4
  12. data/documentation/_build/html/concepts/the_main_project.html +4 -4
  13. data/documentation/_build/html/concepts/the_project_meta_file.html +4 -4
  14. data/documentation/_build/html/genindex.html +4 -4
  15. data/documentation/_build/html/ide/eclipse/eclipse.html +4 -4
  16. data/documentation/_build/html/ide/eclipse/how_to_convert_existing_cdt_workspace.html +4 -4
  17. data/documentation/_build/html/ide/eclipse/how_to_create_a_new_project_in_eclipse.html +4 -4
  18. data/documentation/_build/html/ide/eclipse/how_to_create_a_workspace_in_eclipse.html +4 -4
  19. data/documentation/_build/html/ide/eclipse/how_to_install_eclipse_plugin.html +4 -4
  20. data/documentation/_build/html/ide/eclipse/how_to_use_bake_in_eclipse.html +4 -4
  21. data/documentation/_build/html/ide/ide_integrations.html +4 -4
  22. data/documentation/_build/html/ide/vs/how_to_create_vs_projects.html +4 -4
  23. data/documentation/_build/html/ide/vs/how_to_debug_in_vs.html +4 -4
  24. data/documentation/_build/html/ide/vs/how_to_used_bake_in_vs.html +4 -4
  25. data/documentation/_build/html/ide/vs/vs.html +4 -4
  26. data/documentation/_build/html/ide/vs/vs_install.html +4 -4
  27. data/documentation/_build/html/index.html +8 -7
  28. data/documentation/_build/html/install/install_bake.html +4 -4
  29. data/documentation/_build/html/internal.html +4 -4
  30. data/documentation/_build/html/known_issues.html +4 -4
  31. data/documentation/_build/html/license.html +4 -4
  32. data/documentation/_build/html/performance/performance.html +4 -4
  33. data/documentation/_build/html/quickstart/quickstart.html +4 -4
  34. data/documentation/_build/html/search.html +4 -4
  35. data/documentation/_build/html/searchindex.js +1 -1
  36. data/documentation/_build/html/syntax/adapt_configs.html +287 -0
  37. data/documentation/_build/html/syntax/derive_configs.html +57 -116
  38. data/documentation/_build/html/syntax/project_meta_syntax.html +13 -10
  39. data/documentation/_build/html/syntax/syntax.html +11 -4
  40. data/documentation/_build/html/syntax/variable_substitutions.html +4 -4
  41. data/documentation/_build/html/tips_and_tricks/how_to_use_bake_with_cygwin.html +4 -4
  42. data/documentation/_build/html/tips_and_tricks/static_code_analysis.html +4 -4
  43. data/documentation/_build/html/tips_and_tricks/the_bakery.html +4 -4
  44. data/documentation/_build/html/tips_and_tricks/the_clang.html +4 -4
  45. data/documentation/_build/html/tips_and_tricks/tips_and_tricks.html +4 -4
  46. data/documentation/_build/html/why_bake/why_bake.html +6 -6
  47. data/lib/adapt/config/loader.rb +111 -0
  48. data/lib/bake/cache.rb +25 -1
  49. data/lib/bake/config/checks.rb +61 -0
  50. data/lib/bake/config/loader.rb +41 -40
  51. data/lib/bake/libElement.rb +54 -55
  52. data/lib/bake/mergeConfig.rb +170 -154
  53. data/lib/bake/model/language.rb +2 -4
  54. data/lib/bake/model/metamodel.rb +31 -19
  55. data/lib/bake/model/metamodel_ext.rb +4 -1
  56. data/lib/bake/options/options.rb +12 -3
  57. data/lib/bake/options/usage.rb +1 -0
  58. data/lib/blocks/block.rb +0 -4
  59. data/lib/blocks/blockBase.rb +2 -1
  60. data/lib/blocks/compile.rb +5 -5
  61. data/lib/blocks/makefile.rb +1 -1
  62. data/lib/blocks/showIncludes.rb +13 -2
  63. data/lib/common/version.rb +3 -3
  64. data/lib/tocxx.rb +7 -2
  65. metadata +10 -6
@@ -7,8 +7,8 @@ require 'rtext/language'
7
7
  module Bake
8
8
 
9
9
  class Idp
10
- def call(e,unused)
11
- e.respond_to?(:ident) ? e.ident() : nil # IdentifierProvider.qualified_name(e)
10
+ def call(e,notUsed1,notUsed2,notUsed3)
11
+ e.respond_to?(:ident) ? e.ident() : nil
12
12
  end
13
13
  end
14
14
 
@@ -29,8 +29,6 @@ module Bake
29
29
  ["str"]
30
30
  elsif c.name == "Flags" or c.name == "LibPostfixFlags" or c.name == "LibPrefixFlags"
31
31
  ["overwrite"]
32
- elsif c.name == "UserLibrary"
33
- ["lib"]
34
32
  elsif c.name == "DefaultToolchain"
35
33
  ["basedOn"]
36
34
  elsif c.name == "Description"
@@ -12,9 +12,16 @@ module Bake
12
12
  annotation :details => {'internal' => 'true'}
13
13
  end
14
14
  module ClassModule
15
- attr_accessor :fragment_ref
15
+ def fragment_ref=(fref)
16
+ @fname = fref.fragment.location
17
+ end
18
+
16
19
  def file_name
17
- @fragment_ref.fragment.location
20
+ @fname
21
+ end
22
+
23
+ def file_name=(name)
24
+ @fname = name
18
25
  end
19
26
  end
20
27
  end
@@ -132,15 +139,27 @@ module Bake
132
139
  has_attr 'inherit', Boolean, :defaultValueLiteral => "false"
133
140
  end
134
141
 
135
- class ExternalLibrary < ModelElement
142
+ class LibStuff < ModelElement
143
+ end
144
+
145
+ class ExternalLibrary < LibStuff
136
146
  has_attr 'name', String, :defaultValueLiteral => ""
137
147
  has_attr 'search', Boolean, :defaultValueLiteral => "true"
138
148
  end
139
149
 
140
- class ExternalLibrarySearchPath < ModelElement
150
+ class ExternalLibrarySearchPath < LibStuff
141
151
  has_attr 'name', String, :defaultValueLiteral => ""
142
152
  end
143
153
 
154
+ class UserLibrary < LibStuff
155
+ has_attr 'name', String, :defaultValueLiteral => ""
156
+ end
157
+
158
+ class Dependency < LibStuff
159
+ has_attr 'name', String, :defaultValueLiteral => ""
160
+ has_attr 'config', String, :defaultValueLiteral => ""
161
+ end
162
+
144
163
  class Step < ModelElement
145
164
  has_attr 'name', String, :defaultValueLiteral => ""
146
165
  has_attr 'default', String, :defaultValueLiteral => "on"
@@ -174,10 +193,6 @@ module Bake
174
193
  contains_many 'step', Step, 'parent'
175
194
  end
176
195
 
177
- class UserLibrary < ModelElement
178
- has_attr 'lib', String, :defaultValueLiteral => ""
179
- end
180
-
181
196
  class LinkerScript < ModelElement
182
197
  has_attr 'name', String, :defaultValueLiteral => ""
183
198
  end
@@ -200,17 +215,18 @@ module Bake
200
215
  class BaseConfig_INTERNAL < ModelElement
201
216
  has_attr 'name', String, :defaultValueLiteral => ""
202
217
  has_attr 'extends', String, :defaultValueLiteral => ""
218
+ has_attr 'type', String, :defaultValueLiteral => ""
219
+ has_attr 'project', String, :defaultValueLiteral => ""
203
220
  contains_one 'description', Description, 'parent'
204
221
  contains_one 'startupSteps', StartupSteps, 'parent'
205
222
  contains_one 'preSteps', PreSteps, 'parent'
206
223
  contains_one 'postSteps', PostSteps, 'parent'
207
224
  contains_one 'exitSteps', ExitSteps, 'parent'
208
- contains_many 'userLibrary', UserLibrary, 'parent'
209
- contains_many 'exLib', ExternalLibrary, 'parent'
210
- contains_many 'exLibSearchPath', ExternalLibrarySearchPath, 'parent'
225
+ contains_many 'libStuff', LibStuff, 'parent'
211
226
  contains_one 'defaultToolchain', DefaultToolchain, 'parent'
212
227
  contains_one 'toolchain', Toolchain, 'parent'
213
228
  contains_many 'set', Set, 'parent'
229
+ contains_many 'includeDir', IncludeDir, 'parent'
214
230
 
215
231
  module ClassModule
216
232
  def ident
@@ -224,7 +240,6 @@ module Bake
224
240
  class BuildConfig_INTERNAL < BaseConfig_INTERNAL
225
241
  contains_many 'files', Files, 'parent'
226
242
  contains_many 'excludeFiles', ExcludeFiles, 'parent'
227
- contains_many 'includeDir', IncludeDir, 'parent'
228
243
  end
229
244
 
230
245
  class ExecutableConfig < BuildConfig_INTERNAL
@@ -257,13 +272,10 @@ module Bake
257
272
 
258
273
  end
259
274
 
260
- class Dependency < ModelElement
261
- has_attr 'name', String, :defaultValueLiteral => ""
262
- has_attr 'config', String, :defaultValueLiteral => ""
263
- end
264
-
265
- BaseConfig_INTERNAL.contains_many 'dependency', Dependency, 'parent'
266
-
275
+ class Adapt < ModelElement
276
+ contains_many 'config', BaseConfig_INTERNAL, 'parent'
277
+ end
278
+
267
279
  end
268
280
 
269
281
  end
@@ -14,7 +14,10 @@ module Bake
14
14
  def qname
15
15
  @qname ||= parent.name + "," + name
16
16
  end
17
+ def dependency
18
+ libStuff.find_all { |l| Dependency === l }
19
+ end
17
20
  end
18
-
21
+
19
22
  end
20
23
  end
@@ -19,7 +19,7 @@ module Bake
19
19
  class Options < Parser
20
20
  attr_accessor :build_config, :nocache, :analyze, :eclipseOrder, :envToolchain
21
21
  attr_reader :main_dir, :project, :filename, :main_project_name, :cc2j_filename # String
22
- attr_reader :roots, :include_filter, :exclude_filter # String List
22
+ attr_reader :roots, :include_filter, :exclude_filter, :adapt # String List
23
23
  attr_reader :conversion_info, :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
@@ -66,6 +66,7 @@ module Bake
66
66
  @exclude_filter = []
67
67
  @def_roots = []
68
68
  @main_project_name = ""
69
+ @adapt = []
69
70
 
70
71
  add_option(["-b", "" ], lambda { |x| set_build_config(x) })
71
72
  add_option(["-m" ], lambda { |x| set_main_dir(x) })
@@ -84,10 +85,12 @@ module Bake
84
85
  add_option(["--lint-max", "--lint_max" ], lambda { |x| @lint_max = String === x ? x.to_i : x })
85
86
 
86
87
  add_option(["--create" ], lambda { |x| Bake::Create.proj(x) })
87
- add_option(["--conversion-info", "--conversion_info" ], lambda { @conversion_info = true })
88
+ add_option(["--conversion-info", "--conversion_info" ], lambda { @conversion_info = true })
88
89
 
89
90
  add_option(["--generate-doc", "--docu" ], lambda { @docu = true })
90
-
91
+
92
+ add_option(["--adapt" ], lambda { |x| set_adapt(x) })
93
+
91
94
  add_option(["-v0" ], lambda { @verbose = 0 })
92
95
  add_option(["-v1" ], lambda { @verbose = 1 })
93
96
  add_option(["-v2" ], lambda { @verbose = 2 })
@@ -128,6 +131,8 @@ module Bake
128
131
  parse_internal()
129
132
  set_main_dir(Dir.pwd) if @main_dir.nil?
130
133
  @roots = @def_roots if @roots.length == 0
134
+ @roots.uniq!
135
+ @adapt.uniq!
131
136
 
132
137
  if @project
133
138
  if @project.split(',').length > 2
@@ -232,6 +237,10 @@ module Bake
232
237
  r = File.expand_path(dir.gsub(/[\\]/,'/'))
233
238
  @roots << r if not @roots.include?r
234
239
  end
240
+
241
+ def set_adapt(name)
242
+ @adapt << name if not @adapt.include?name
243
+ end
235
244
 
236
245
  def set_threads(num)
237
246
  @threads = String === num ? num.to_i : num
@@ -37,6 +37,7 @@ module Bake
37
37
  puts " --abs-paths Compiler prints absolute filename paths instead of relative paths."
38
38
  puts " --no-autodir Disable auto completion of paths like in IncludeDir"
39
39
  puts " --set <key>=<value> Sets a variable. Overwrites variables defined in Project.metas (can be used multiple times)."
40
+ puts " --adapt <name> Specifies an adapt project to manipulate the configs (can be used multiple times)"
40
41
  puts " --incs-and-defs Used by IDEs plugins"
41
42
  puts " --conversion-info Prints infos for an external tool which converts bake configs for other build systems"
42
43
  puts " --writeCC2J <name> Writes compiler command into a json file (experimental!)"
data/lib/blocks/block.rb CHANGED
@@ -70,10 +70,6 @@ module Bake
70
70
  @lib_elements = Bake::LibElements.calcLibElements(self)
71
71
  end
72
72
 
73
- def add_lib_element(elem)
74
- @lib_elements[2000000000] = [elem]
75
- end
76
-
77
73
  def convPath(dir, elem=nil)
78
74
  if dir.respond_to?("name")
79
75
  d = dir.name
@@ -4,6 +4,7 @@ module Bake
4
4
  class BlockBase
5
5
 
6
6
  attr_reader :tcs
7
+ attr_reader :projectDir
7
8
 
8
9
  def initialize(block, config, referencedConfigs, tcs)
9
10
  @block = block
@@ -56,7 +57,7 @@ module Bake
56
57
  cmdTime = File.mtime(cmdLineFile)
57
58
  return "because config file has been changed" if cmdTime < File.mtime(@config.file_name)
58
59
  return "because DefaultToolchain has been changed" if cmdTime < defaultToolchainTime
59
- return "because command line has been changed (IncludeDir inherit/inject, environment variables, ...)"
60
+ return "because command line has been changed"
60
61
  end
61
62
 
62
63
  def self.isCmdLineEqual?(cmd, cmdLineFile)
@@ -365,25 +365,25 @@ module Bake
365
365
  end
366
366
  res.each do |f|
367
367
  next if exclude_files.include?(f)
368
+ next if source_files.include?(f)
368
369
  source_files << f
370
+ @source_files << f
369
371
  end
370
372
  end
371
373
 
372
374
  if Bake.options.filename
373
- source_files.keep_if do |source|
375
+ @source_files.keep_if do |source|
374
376
  source.include?Bake.options.filename
375
377
  end
376
- if source_files.length == 0 and cleaning == false
378
+ if @source_files.length == 0 and cleaning == false
377
379
  Bake.formatter.printInfo("#{Bake.options.filename} does not match to any source", @config)
378
380
  end
379
381
  end
380
382
 
381
- @source_files = source_files.sort.to_a
382
-
383
383
  if Bake.options.eclipseOrder # directories reverse order, files in directories in alphabetical order
384
384
  dirs = []
385
385
  filemap = {}
386
- @source_files.reverse.each do |o|
386
+ @source_files.sort.reverse.each do |o|
387
387
  d = File.dirname(o)
388
388
  if filemap.include?(d)
389
389
  filemap[d] << o
@@ -22,7 +22,7 @@ module Bake
22
22
  calcCommandLine
23
23
  calcCleanLine
24
24
 
25
- block.lib_elements[config.line_number] = [LibElement.new(LibElement::LIB_WITH_PATH, config.lib)] if config.lib != ""
25
+ block.lib_elements << LibElement.new(LibElement::LIB_WITH_PATH, config.lib) if config.lib != ""
26
26
  end
27
27
 
28
28
  def calcCommandLine
@@ -21,7 +21,14 @@ module Bake
21
21
  Blocks::ALL_COMPILE_BLOCKS.sort.each do |projName, blocks|
22
22
  print projName
23
23
  incs = []
24
- blocks.each { |block| incs += block.include_list }
24
+ blocks.each do |block|
25
+ if Bake.options.consoleOutput_fullnames
26
+ incs += block.include_list.map { |i| File.expand_path(i, block.projectDir) }
27
+ else
28
+ incs += block.include_list
29
+ end
30
+ end
31
+
25
32
  incs.uniq.each { |inc| print "##{inc}" }
26
33
  print "\n"
27
34
  end
@@ -92,7 +99,11 @@ module Bake
92
99
  blockIncs = []
93
100
  blockDefs = {:CPP => [], :C => [], :ASM => []}
94
101
  blocks.each do |block|
95
- blockIncs += block.include_list
102
+ if Bake.options.consoleOutput_fullnames
103
+ blockIncs += block.include_list.map { |i| File.expand_path(i, block.projectDir) }
104
+ else
105
+ blockIncs += block.include_list
106
+ end
96
107
  [:CPP, :C, :ASM].each { |type| blockDefs[type] += block.tcs[:COMPILER][type][:DEFINES] }
97
108
  end
98
109
 
@@ -1,12 +1,12 @@
1
1
  module Bake
2
2
  class Version
3
3
  def self.number
4
- "2.13.1"
4
+ "2.14.0"
5
5
  end
6
6
  end
7
7
 
8
- expectedRGen = "0.6.0"
9
- expectedRText = "0.2.0"
8
+ expectedRGen = "0.8.0"
9
+ expectedRText = "0.8.1"
10
10
 
11
11
  begin
12
12
  gem "rgen", "=#{expectedRGen}"
data/lib/tocxx.rb CHANGED
@@ -34,6 +34,8 @@ require 'socket'
34
34
  require 'blocks/showIncludes'
35
35
  require 'common/abortException'
36
36
 
37
+ require 'adapt/config/loader'
38
+
37
39
  module Bake
38
40
 
39
41
  class SystemCommandFailed < Exception
@@ -254,8 +256,11 @@ module Bake
254
256
  end
255
257
 
256
258
  begin
259
+ al = AdaptConfig.new
260
+ adaptConfigs = al.load()
261
+
257
262
  @loadedConfig = Config.new
258
- @loadedConfig.load
263
+ @loadedConfig.load(adaptConfigs)
259
264
 
260
265
  taskType = "Analyzing" if Bake.options.analyze
261
266
 
@@ -267,7 +272,7 @@ module Bake
267
272
  basedOn = @mainConfig.defaultToolchain.basedOn
268
273
  basedOnToolchain = Bake::Toolchain::Provider[basedOn]
269
274
  if basedOnToolchain.nil?
270
- Bake.formatter.printError("DefaultToolchain based on unknown compiler '#{basedOn}'", config.defaultToolchain)
275
+ Bake.formatter.printError("DefaultToolchain based on unknown compiler '#{basedOn}'", @mainConfig.defaultToolchain)
271
276
  ExitHelper.exit(1)
272
277
  end
273
278
 
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.13.1
4
+ version: 2.14.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-12-23 00:00:00.000000000 Z
11
+ date: 2016-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rtext
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.2.0
19
+ version: 0.8.1
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.2.0
26
+ version: 0.8.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rgen
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.6.0
33
+ version: 0.8.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 0.6.0
40
+ version: 0.8.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: highline
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -76,7 +76,9 @@ executables:
76
76
  extensions: []
77
77
  extra_rdoc_files: []
78
78
  files:
79
+ - lib/adapt/config/loader.rb
79
80
  - lib/bake/cache.rb
81
+ - lib/bake/config/checks.rb
80
82
  - lib/bake/config/loader.rb
81
83
  - lib/bake/libElement.rb
82
84
  - lib/bake/mergeConfig.rb
@@ -217,6 +219,7 @@ files:
217
219
  - documentation/_build/html/_sources/license.txt
218
220
  - documentation/_build/html/_sources/performance/performance.txt
219
221
  - documentation/_build/html/_sources/quickstart/quickstart.txt
222
+ - documentation/_build/html/_sources/syntax/adapt_configs.txt
220
223
  - documentation/_build/html/_sources/syntax/derive_configs.txt
221
224
  - documentation/_build/html/_sources/syntax/project_meta_syntax.txt
222
225
  - documentation/_build/html/_sources/syntax/syntax.txt
@@ -412,6 +415,7 @@ files:
412
415
  - documentation/_build/html/quickstart/quickstart.html
413
416
  - documentation/_build/html/search.html
414
417
  - documentation/_build/html/searchindex.js
418
+ - documentation/_build/html/syntax/adapt_configs.html
415
419
  - documentation/_build/html/syntax/derive_configs.html
416
420
  - documentation/_build/html/syntax/project_meta_syntax.html
417
421
  - documentation/_build/html/syntax/syntax.html