bake-toolkit 2.20.4 → 2.21.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 (139) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile.rb +3 -3
  3. data/bin/bake +46 -46
  4. data/bin/bake-doc +11 -11
  5. data/bin/bakery +179 -179
  6. data/bin/createVSProjects +213 -213
  7. data/documentation/_build/html/_sources/changelog.txt +456 -451
  8. data/documentation/_build/html/_sources/commandline/commandline.txt +107 -107
  9. data/documentation/_build/html/_sources/concepts/build_hierarchy.txt +34 -34
  10. data/documentation/_build/html/_sources/concepts/concepts.txt +14 -14
  11. data/documentation/_build/html/_sources/concepts/inject.txt +65 -65
  12. data/documentation/_build/html/_sources/concepts/link_order.txt +91 -91
  13. data/documentation/_build/html/_sources/concepts/prebuild.txt +56 -56
  14. data/documentation/_build/html/_sources/concepts/the_main_project.txt +45 -45
  15. data/documentation/_build/html/_sources/concepts/the_project_meta_file.txt +72 -72
  16. data/documentation/_build/html/_sources/ide/eclipse/eclipse.txt +25 -25
  17. data/documentation/_build/html/_sources/ide/eclipse/how_to_convert_existing_cdt_workspace.txt +31 -31
  18. data/documentation/_build/html/_sources/ide/eclipse/how_to_create_a_new_project_in_eclipse.txt +18 -18
  19. data/documentation/_build/html/_sources/ide/eclipse/how_to_create_a_workspace_in_eclipse.txt +27 -27
  20. data/documentation/_build/html/_sources/ide/eclipse/how_to_debug_in_eclipse.txt +38 -38
  21. data/documentation/_build/html/_sources/ide/eclipse/how_to_install_eclipse_plugin.txt +44 -44
  22. data/documentation/_build/html/_sources/ide/eclipse/how_to_use_bake_in_eclipse.txt +86 -86
  23. data/documentation/_build/html/_sources/ide/ide_integrations.txt +8 -8
  24. data/documentation/_build/html/_sources/ide/vs/how_to_create_vs_projects.txt +15 -15
  25. data/documentation/_build/html/_sources/ide/vs/how_to_debug_in_vs.txt +35 -35
  26. data/documentation/_build/html/_sources/ide/vs/how_to_used_bake_in_vs.txt +35 -35
  27. data/documentation/_build/html/_sources/ide/vs/vs.txt +10 -10
  28. data/documentation/_build/html/_sources/ide/vs/vs_install.txt +43 -43
  29. data/documentation/_build/html/_sources/index.txt +33 -33
  30. data/documentation/_build/html/_sources/install/install_bake.txt +112 -112
  31. data/documentation/_build/html/_sources/internal.txt +50 -50
  32. data/documentation/_build/html/_sources/known_issues.txt +9 -9
  33. data/documentation/_build/html/_sources/license.txt +4 -4
  34. data/documentation/_build/html/_sources/performance/performance.txt +104 -104
  35. data/documentation/_build/html/_sources/quickstart/quickstart.txt +70 -70
  36. data/documentation/_build/html/_sources/syntax/adapt_configs.txt +143 -143
  37. data/documentation/_build/html/_sources/syntax/auto_adjustment.txt +43 -43
  38. data/documentation/_build/html/_sources/syntax/derive_configs.txt +93 -94
  39. data/documentation/_build/html/_sources/syntax/project_meta_syntax.txt +19 -19
  40. data/documentation/_build/html/_sources/syntax/syntax.txt +11 -11
  41. data/documentation/_build/html/_sources/syntax/variable_substitutions.txt +147 -147
  42. data/documentation/_build/html/_sources/tips_and_tricks/dot.txt +34 -34
  43. data/documentation/_build/html/_sources/tips_and_tricks/how_to_use_bake_with_cygwin.txt +62 -62
  44. data/documentation/_build/html/_sources/tips_and_tricks/static_code_analysis.txt +122 -122
  45. data/documentation/_build/html/_sources/tips_and_tricks/the_bakery.txt +72 -72
  46. data/documentation/_build/html/_sources/tips_and_tricks/the_clang.txt +43 -43
  47. data/documentation/_build/html/_sources/tips_and_tricks/tips_and_tricks.txt +34 -34
  48. data/documentation/_build/html/_sources/why_bake/why_bake.txt +40 -40
  49. data/documentation/_build/html/changelog.html +7 -0
  50. data/documentation/_build/html/commandline/commandline.html +2 -2
  51. data/documentation/_build/html/concepts/link_order.html +2 -2
  52. data/documentation/_build/html/concepts/prebuild.html +2 -2
  53. data/documentation/_build/html/index.html +4 -4
  54. data/documentation/_build/html/performance/performance.html +2 -2
  55. data/documentation/_build/html/searchindex.js +1 -1
  56. data/documentation/_build/html/syntax/adapt_configs.html +2 -2
  57. data/documentation/_build/html/syntax/syntax.html +2 -2
  58. data/documentation/_build/html/tips_and_tricks/the_clang.html +2 -2
  59. data/documentation/_build/html/why_bake/why_bake.html +2 -2
  60. data/lib/adapt/config/loader.rb +112 -112
  61. data/lib/bake/bundle.rb +158 -158
  62. data/lib/bake/cache.rb +179 -180
  63. data/lib/bake/config/checks.rb +68 -68
  64. data/lib/bake/config/loader.rb +363 -363
  65. data/lib/bake/libElement.rb +176 -176
  66. data/lib/bake/mergeConfig.rb +208 -208
  67. data/lib/bake/model/language.rb +45 -45
  68. data/lib/bake/model/loader.rb +99 -99
  69. data/lib/bake/model/metamodel.rb +307 -307
  70. data/lib/bake/model/metamodel_ext.rb +27 -27
  71. data/lib/bake/options/create.rb +95 -95
  72. data/lib/bake/options/options.rb +315 -310
  73. data/lib/bake/options/showDoc.rb +20 -20
  74. data/lib/bake/options/showLicense.rb +9 -9
  75. data/lib/bake/options/showToolchains.rb +38 -38
  76. data/lib/bake/options/usage.rb +79 -68
  77. data/lib/bake/subst.rb +313 -313
  78. data/lib/bake/toolchain/clang.rb +44 -44
  79. data/lib/bake/toolchain/clang_analyze.rb +31 -31
  80. data/lib/bake/toolchain/colorizing_formatter.rb +125 -125
  81. data/lib/bake/toolchain/diab.rb +53 -53
  82. data/lib/bake/toolchain/errorparser/diab_compiler_error_parser.rb +40 -40
  83. data/lib/bake/toolchain/errorparser/diab_linker_error_parser.rb +41 -41
  84. data/lib/bake/toolchain/errorparser/error_parser.rb +71 -71
  85. data/lib/bake/toolchain/errorparser/gcc_compiler_error_parser.rb +35 -35
  86. data/lib/bake/toolchain/errorparser/gcc_linker_error_parser.rb +35 -35
  87. data/lib/bake/toolchain/errorparser/greenhills_compiler_error_parser.rb +32 -32
  88. data/lib/bake/toolchain/errorparser/greenhills_linker_error_parser.rb +44 -44
  89. data/lib/bake/toolchain/errorparser/keil_compiler_error_parser.rb +40 -40
  90. data/lib/bake/toolchain/errorparser/keil_linker_error_parser.rb +30 -30
  91. data/lib/bake/toolchain/errorparser/lint_error_parser.rb +34 -34
  92. data/lib/bake/toolchain/errorparser/msvc_compiler_error_parser.rb +63 -63
  93. data/lib/bake/toolchain/errorparser/msvc_linker_error_parser.rb +42 -42
  94. data/lib/bake/toolchain/errorparser/process_output.rb +2 -2
  95. data/lib/bake/toolchain/errorparser/ti_compiler_error_parser.rb +30 -30
  96. data/lib/bake/toolchain/errorparser/ti_linker_error_parser.rb +30 -30
  97. data/lib/bake/toolchain/gcc.rb +49 -49
  98. data/lib/bake/toolchain/gcc_env.rb +55 -55
  99. data/lib/bake/toolchain/greenhills.rb +52 -52
  100. data/lib/bake/toolchain/keil.rb +53 -53
  101. data/lib/bake/toolchain/lint.rb +20 -20
  102. data/lib/bake/toolchain/msvc.rb +58 -58
  103. data/lib/bake/toolchain/provider.rb +146 -146
  104. data/lib/bake/toolchain/ti.rb +47 -47
  105. data/lib/bake/util.rb +149 -149
  106. data/lib/bakery/buildPattern.rb +24 -24
  107. data/lib/bakery/model/language.rb +22 -22
  108. data/lib/bakery/model/loader.rb +55 -55
  109. data/lib/bakery/model/metamodel.rb +48 -48
  110. data/lib/bakery/options/options.rb +87 -87
  111. data/lib/bakery/toBake.rb +81 -81
  112. data/lib/blocks/block.rb +324 -324
  113. data/lib/blocks/blockBase.rb +204 -204
  114. data/lib/blocks/commandLine.rb +38 -38
  115. data/lib/blocks/compile.rb +529 -528
  116. data/lib/blocks/convert.rb +41 -41
  117. data/lib/blocks/docu.rb +30 -30
  118. data/lib/blocks/executable.rb +174 -174
  119. data/lib/blocks/has_execute_command.rb +31 -31
  120. data/lib/blocks/library.rb +114 -114
  121. data/lib/blocks/lint.rb +56 -56
  122. data/lib/blocks/makefile.rb +100 -100
  123. data/lib/blocks/showIncludes.rb +140 -125
  124. data/lib/common/abortException.rb +4 -4
  125. data/lib/common/cleanup.rb +10 -10
  126. data/lib/common/exit_helper.rb +38 -38
  127. data/lib/common/ext/file.rb +88 -88
  128. data/lib/common/ext/rtext.rb +11 -11
  129. data/lib/common/ext/stdout.rb +45 -45
  130. data/lib/common/ide_interface.rb +194 -194
  131. data/lib/common/options/parser.rb +95 -85
  132. data/lib/common/process.rb +64 -64
  133. data/lib/common/utils.rb +52 -52
  134. data/lib/common/version.rb +31 -23
  135. data/lib/multithread/job.rb +44 -44
  136. data/lib/tocxx.rb +558 -555
  137. data/lib/vs/options.rb +69 -69
  138. data/license.txt +90 -90
  139. metadata +2 -2
@@ -1,45 +1,45 @@
1
- require 'bake/model/metamodel'
2
-
3
- require 'rtext/language'
4
-
5
-
6
-
7
- module Bake
8
-
9
- class Idp
10
- def call(e,notUsed1,notUsed2,notUsed3)
11
- e.respond_to?(:ident) ? e.ident() : nil
12
- end
13
- end
14
-
15
-
16
- Language =
17
- RText::Language.new(Metamodel.ecore,
18
- :feature_provider => proc {|c|
19
- RGen::Serializer::OppositeReferenceFilter.call(c.eAllStructuralFeatures).reject {|f|
20
- f.eAnnotations.any? {|a|
21
- a.details.any? {|d| d.key == 'internal' && d.value == 'true'}
22
- }
23
- }
24
- },
25
- :unlabled_arguments => proc {|c|
26
- if c.name == "Compiler" or c.name == "CompilerAdaptions"
27
- ["ctype"]
28
- elsif c.name == "Define"
29
- ["str"]
30
- elsif c.name == "Flags" or c.name == "LibPostfixFlags" or c.name == "LibPrefixFlags"
31
- ["overwrite"]
32
- elsif c.name == "DefaultToolchain"
33
- ["basedOn"]
34
- elsif c.name == "Description"
35
- ["text"]
36
- else
37
- ["name"]
38
- end
39
- },
40
- :identifier_provider => Idp.new,
41
- :line_number_attribute => "line_number",
42
- :fragment_ref_attribute => "fragment_ref"
43
- )
44
-
45
- end
1
+ require 'bake/model/metamodel'
2
+
3
+ require 'rtext/language'
4
+
5
+
6
+
7
+ module Bake
8
+
9
+ class Idp
10
+ def call(e,notUsed1,notUsed2,notUsed3)
11
+ e.respond_to?(:ident) ? e.ident() : nil
12
+ end
13
+ end
14
+
15
+
16
+ Language =
17
+ RText::Language.new(Metamodel.ecore,
18
+ :feature_provider => proc {|c|
19
+ RGen::Serializer::OppositeReferenceFilter.call(c.eAllStructuralFeatures).reject {|f|
20
+ f.eAnnotations.any? {|a|
21
+ a.details.any? {|d| d.key == 'internal' && d.value == 'true'}
22
+ }
23
+ }
24
+ },
25
+ :unlabled_arguments => proc {|c|
26
+ if c.name == "Compiler" or c.name == "CompilerAdaptions"
27
+ ["ctype"]
28
+ elsif c.name == "Define"
29
+ ["str"]
30
+ elsif c.name == "Flags" or c.name == "LibPostfixFlags" or c.name == "LibPrefixFlags"
31
+ ["overwrite"]
32
+ elsif c.name == "DefaultToolchain"
33
+ ["basedOn"]
34
+ elsif c.name == "Description"
35
+ ["text"]
36
+ else
37
+ ["name"]
38
+ end
39
+ },
40
+ :identifier_provider => Idp.new,
41
+ :line_number_attribute => "line_number",
42
+ :fragment_ref_attribute => "fragment_ref"
43
+ )
44
+
45
+ end
@@ -1,100 +1,100 @@
1
- require 'bake/model/metamodel'
2
- require 'bake/model/language'
3
- require 'common/version'
4
-
5
- require 'rgen/environment'
6
- require 'rgen/fragment/dump_file_cache'
7
- require 'rgen/fragment/fragmented_model'
8
- require 'rgen/util/file_cache_map'
9
-
10
- require 'rtext/default_loader'
11
-
12
- require 'common/exit_helper'
13
- require 'bake/toolchain/colorizing_formatter'
14
- require 'bake/options/options'
15
-
16
- module Bake
17
-
18
- class Loader
19
-
20
- attr_reader :model
21
-
22
- def initialize
23
- @env = RGen::Environment.new
24
-
25
- fcm = RGen::Util::FileCacheMap.new(".bake", ".cache")
26
- fcm.version_info = Version.number
27
- @DumpFileCache = RGen::Fragment::DumpFileCache.new(fcm)
28
- @model = RGen::Fragment::FragmentedModel.new(:env => @env)
29
- end
30
-
31
- def load_internal(filename, silent = false)
32
- silent = false if Bake.options.debug
33
- loader = RText::DefaultLoader.new(
34
- Bake::Language,
35
- @model,
36
- :file_provider => proc { [filename] },
37
- :cache => @DumpFileCache)
38
- loader.load(:before_load => proc {|fragment, kind|
39
- case kind
40
- when :load_update_cache
41
- if Bake.options.verbose >= 3
42
- puts "Loading and caching #{fragment.location}" unless silent
43
- else
44
- puts "Loading #{fragment.location}" unless silent
45
- end
46
- when :load_cached
47
- if Bake.options.verbose >= 3
48
- puts "Loading cached #{fragment.location}" unless silent
49
- else
50
- puts "Loading #{fragment.location}" unless silent
51
- end
52
- when :load
53
- puts "Loading #{fragment.location}" unless silent
54
- else
55
- Bake.formatter.printError("Error: Could not load #{fragment.location}")
56
- ExitHelper.exit(1)
57
- end
58
- })
59
-
60
- frag = @model.fragments[0]
61
- @model.remove_fragment(frag)
62
- frag
63
- end
64
-
65
-
66
- def load(filename)
67
- sumErrors = 0
68
-
69
- if not File.exists?filename
70
- Bake.formatter.printError("Error: #{filename} does not exist")
71
- ExitHelper.exit(1)
72
- end
73
-
74
- frag = nil
75
- if not Bake.options.nocache
76
- frag = load_internal(filename) # regular load
77
- frag = nil if frag.root_elements.length > 0 and filename != frag.root_elements[0].file_name
78
- end
79
-
80
- if frag.nil?
81
- def @DumpFileCache.load(fragment)
82
- :invalid
83
- end
84
- frag = load_internal(filename, !Bake.options.nocache)
85
- end
86
-
87
- frag.data[:problems].each do |p|
88
- Bake.formatter.printError(p.message, p.file, p.line)
89
- end
90
-
91
- if frag.data[:problems].length > 0
92
- ExitHelper.exit(1)
93
- end
94
-
95
- return frag
96
-
97
- end
98
-
99
- end
1
+ require 'bake/model/metamodel'
2
+ require 'bake/model/language'
3
+ require 'common/version'
4
+
5
+ require 'rgen/environment'
6
+ require 'rgen/fragment/dump_file_cache'
7
+ require 'rgen/fragment/fragmented_model'
8
+ require 'rgen/util/file_cache_map'
9
+
10
+ require 'rtext/default_loader'
11
+
12
+ require 'common/exit_helper'
13
+ require 'bake/toolchain/colorizing_formatter'
14
+ require 'bake/options/options'
15
+
16
+ module Bake
17
+
18
+ class Loader
19
+
20
+ attr_reader :model
21
+
22
+ def initialize
23
+ @env = RGen::Environment.new
24
+
25
+ fcm = RGen::Util::FileCacheMap.new(".bake", ".cache")
26
+ fcm.version_info = Version.number
27
+ @DumpFileCache = RGen::Fragment::DumpFileCache.new(fcm)
28
+ @model = RGen::Fragment::FragmentedModel.new(:env => @env)
29
+ end
30
+
31
+ def load_internal(filename, silent = false)
32
+ silent = false if Bake.options.debug
33
+ loader = RText::DefaultLoader.new(
34
+ Bake::Language,
35
+ @model,
36
+ :file_provider => proc { [filename] },
37
+ :cache => @DumpFileCache)
38
+ loader.load(:before_load => proc {|fragment, kind|
39
+ case kind
40
+ when :load_update_cache
41
+ if Bake.options.verbose >= 3
42
+ puts "Loading and caching #{fragment.location}" unless silent
43
+ else
44
+ puts "Loading #{fragment.location}" unless silent
45
+ end
46
+ when :load_cached
47
+ if Bake.options.verbose >= 3
48
+ puts "Loading cached #{fragment.location}" unless silent
49
+ else
50
+ puts "Loading #{fragment.location}" unless silent
51
+ end
52
+ when :load
53
+ puts "Loading #{fragment.location}" unless silent
54
+ else
55
+ Bake.formatter.printError("Error: Could not load #{fragment.location}")
56
+ ExitHelper.exit(1)
57
+ end
58
+ })
59
+
60
+ frag = @model.fragments[0]
61
+ @model.remove_fragment(frag)
62
+ frag
63
+ end
64
+
65
+
66
+ def load(filename)
67
+ sumErrors = 0
68
+
69
+ if not File.exists?filename
70
+ Bake.formatter.printError("Error: #{filename} does not exist")
71
+ ExitHelper.exit(1)
72
+ end
73
+
74
+ frag = nil
75
+ if not Bake.options.nocache
76
+ frag = load_internal(filename) # regular load
77
+ frag = nil if frag.root_elements.length > 0 and filename != frag.root_elements[0].file_name
78
+ end
79
+
80
+ if frag.nil?
81
+ def @DumpFileCache.load(fragment)
82
+ :invalid
83
+ end
84
+ frag = load_internal(filename, !Bake.options.nocache)
85
+ end
86
+
87
+ frag.data[:problems].each do |p|
88
+ Bake.formatter.printError(p.message, p.file, p.line)
89
+ end
90
+
91
+ if frag.data[:problems].length > 0
92
+ ExitHelper.exit(1)
93
+ end
94
+
95
+ return frag
96
+
97
+ end
98
+
99
+ end
100
100
  end
@@ -1,307 +1,307 @@
1
- require 'rgen/metamodel_builder'
2
- require 'rgen/metamodel_builder/data_types'
3
-
4
- module Bake
5
-
6
- module Metamodel
7
- extend RGen::MetamodelBuilder::ModuleExtension
8
-
9
- class ModelElement < RGen::MetamodelBuilder::MMBase
10
- abstract
11
- has_attr 'line_number', Integer do
12
- annotation :details => {'internal' => 'true'}
13
- end
14
- module ClassModule
15
- def fragment_ref=(fref)
16
- @fname = fref.fragment.location
17
- end
18
-
19
- def file_name
20
- @fname
21
- end
22
-
23
- def file_name=(name)
24
- @fname = name
25
- end
26
- end
27
- end
28
-
29
- CompilerType = RGen::MetamodelBuilder::DataTypes::Enum.new( :name => "CompilerType", :literals => [:CPP, :C, :ASM])
30
-
31
- class Flags < ModelElement
32
- has_attr 'overwrite', String, :defaultValueLiteral => ""
33
- has_attr 'add', String, :defaultValueLiteral => ""
34
- has_attr 'remove', String, :defaultValueLiteral => ""
35
- end
36
- class LibPrefixFlags < ModelElement
37
- has_attr 'overwrite', String, :defaultValueLiteral => ""
38
- has_attr 'add', String, :defaultValueLiteral => ""
39
- has_attr 'remove', String, :defaultValueLiteral => ""
40
- end
41
- class LibPostfixFlags < ModelElement
42
- has_attr 'overwrite', String, :defaultValueLiteral => ""
43
- has_attr 'add', String, :defaultValueLiteral => ""
44
- has_attr 'remove', String, :defaultValueLiteral => ""
45
- end
46
- class Define < ModelElement
47
- has_attr 'str', String, :defaultValueLiteral => ""
48
- end
49
-
50
- class InternalIncludes < ModelElement
51
- has_attr 'name', String, :defaultValueLiteral => ""
52
- end
53
-
54
- class InternalDefines < ModelElement
55
- has_attr 'name', String, :defaultValueLiteral => ""
56
- end
57
-
58
- class Archiver < ModelElement
59
- has_attr 'command', String, :defaultValueLiteral => ""
60
- contains_many 'flags', Flags, 'parent'
61
- end
62
-
63
- class Linker < ModelElement
64
- has_attr 'command', String, :defaultValueLiteral => ""
65
- contains_many 'flags', Flags, 'parent'
66
- contains_many 'libprefixflags', LibPrefixFlags, 'parent'
67
- contains_many 'libpostfixflags', LibPostfixFlags, 'parent'
68
- end
69
-
70
- class Compiler < ModelElement
71
- has_attr 'ctype', CompilerType
72
- has_attr 'command', String, :defaultValueLiteral => ""
73
- contains_many 'define', Define, 'parent'
74
- contains_many 'flags', Flags, 'parent'
75
- contains_one 'internalDefines', InternalDefines, 'parent'
76
- end
77
-
78
- class LintPolicy < ModelElement
79
- has_attr 'name', String, :defaultValueLiteral => ""
80
- end
81
-
82
- class Docu < ModelElement
83
- has_attr 'name', String, :defaultValueLiteral => ""
84
- end
85
-
86
- class DefaultToolchain < ModelElement
87
- has_attr 'basedOn', String, :defaultValueLiteral => ""
88
- has_attr 'outputDir', String, :defaultValueLiteral => ""
89
- has_attr 'eclipseOrder', Boolean, :defaultValueLiteral => "false"
90
- contains_many 'compiler', Compiler, 'parent'
91
- contains_one 'archiver', Archiver, 'parent'
92
- contains_one 'linker', Linker, 'parent'
93
- contains_many 'lintPolicy', LintPolicy, 'parent'
94
- contains_one 'internalIncludes', InternalIncludes, 'parent'
95
- contains_one 'docu', Docu, 'parent'
96
- end
97
-
98
- class Toolchain < ModelElement
99
- has_attr 'outputDir', String, :defaultValueLiteral => ""
100
- contains_many 'compiler', Compiler, 'parent'
101
- contains_one 'archiver', Archiver, 'parent'
102
- contains_one 'linker', Linker, 'parent'
103
- contains_many 'lintPolicy', LintPolicy, 'parent'
104
- contains_one 'docu', Docu, 'parent'
105
- end
106
-
107
- class Person < ModelElement
108
- has_attr 'name', String, :defaultValueLiteral => ""
109
- has_attr 'email', String, :defaultValueLiteral => ""
110
- end
111
-
112
- class Description < ModelElement
113
- has_attr 'text', String, :defaultValueLiteral => ""
114
- end
115
-
116
- class RequiredBakeVersion < ModelElement
117
- has_attr 'minimum', String, :defaultValueLiteral => ""
118
- has_attr 'maximum', String, :defaultValueLiteral => ""
119
- end
120
-
121
- class Responsible < ModelElement
122
- contains_many "person", Person, 'parent'
123
- end
124
-
125
- class Files < ModelElement
126
- has_attr 'name', String, :defaultValueLiteral => ""
127
- contains_many 'define', Define, 'parent'
128
- contains_many 'flags', Flags, 'parent'
129
- end
130
-
131
- class ExcludeFiles < ModelElement
132
- has_attr 'name', String, :defaultValueLiteral => ""
133
- end
134
-
135
- class IncludeDir < ModelElement
136
- has_attr 'name', String, :defaultValueLiteral => ""
137
- has_attr 'infix', String, :defaultValueLiteral => ""
138
- has_attr 'inject', String, :defaultValueLiteral => ""
139
- has_attr 'inherit', Boolean, :defaultValueLiteral => "false"
140
- end
141
-
142
- class LibStuff < ModelElement
143
- end
144
-
145
- class ExternalLibrary < LibStuff
146
- has_attr 'name', String, :defaultValueLiteral => ""
147
- has_attr 'search', Boolean, :defaultValueLiteral => "true"
148
- end
149
-
150
- class ExternalLibrarySearchPath < LibStuff
151
- has_attr 'name', String, :defaultValueLiteral => ""
152
- end
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
- has_attr 'inject', String, :defaultValueLiteral => ""
162
- end
163
-
164
- class Except < ModelElement
165
- has_attr 'name', String, :defaultValueLiteral => ""
166
- has_attr 'config', String, :defaultValueLiteral => ""
167
- end
168
-
169
- class Prebuild < ModelElement
170
- contains_many 'except', Except, 'parent'
171
- end
172
-
173
- class Step < ModelElement
174
- has_attr 'name', String, :defaultValueLiteral => ""
175
- has_attr 'default', String, :defaultValueLiteral => "on"
176
- has_attr 'filter', String, :defaultValueLiteral => ""
177
- has_many_attr 'validExitCodes', Integer
178
- end
179
-
180
- class Makefile < Step
181
- has_attr 'lib', String, :defaultValueLiteral => ""
182
- has_attr 'target', String, :defaultValueLiteral => ""
183
- has_attr 'pathTo', String, :defaultValueLiteral => ""
184
- contains_many 'flags', Flags, 'parent'
185
- end
186
-
187
- class CommandLine < Step
188
- end
189
-
190
- class PreSteps < ModelElement
191
- contains_many 'step', Step, 'parent'
192
- end
193
-
194
- class PostSteps < ModelElement
195
- contains_many 'step', Step, 'parent'
196
- end
197
-
198
- class ExitSteps < ModelElement
199
- contains_many 'step', Step, 'parent'
200
- end
201
-
202
- class StartupSteps < ModelElement
203
- contains_many 'step', Step, 'parent'
204
- end
205
-
206
- class LinkerScript < ModelElement
207
- has_attr 'name', String, :defaultValueLiteral => ""
208
- end
209
-
210
- class MapFile < ModelElement
211
- has_attr 'name', String, :defaultValueLiteral => ""
212
- end
213
-
214
- class ArtifactName < ModelElement
215
- has_attr 'name', String, :defaultValueLiteral => ""
216
- end
217
-
218
- class Set < ModelElement
219
- has_attr 'name', String, :defaultValueLiteral => ""
220
- has_attr 'value', String, :defaultValueLiteral => ""
221
- has_attr 'cmd', String, :defaultValueLiteral => ""
222
- has_attr 'env', Boolean, :defaultValueLiteral => "false"
223
- end
224
-
225
- class BaseConfig_INTERNAL < ModelElement
226
- has_attr 'name', String, :defaultValueLiteral => ""
227
- has_attr 'extends', String, :defaultValueLiteral => ""
228
- has_attr 'type', String, :defaultValueLiteral => ""
229
- has_attr 'project', String, :defaultValueLiteral => ""
230
- contains_one 'description', Description, 'parent'
231
- contains_one 'startupSteps', StartupSteps, 'parent'
232
- contains_one 'preSteps', PreSteps, 'parent'
233
- contains_one 'postSteps', PostSteps, 'parent'
234
- contains_one 'exitSteps', ExitSteps, 'parent'
235
- contains_many 'libStuff', LibStuff, 'parent'
236
- contains_one 'defaultToolchain', DefaultToolchain, 'parent'
237
- contains_one 'toolchain', Toolchain, 'parent'
238
- contains_many 'set', Set, 'parent'
239
- contains_many 'includeDir', IncludeDir, 'parent'
240
- contains_many 'prebuild', Prebuild, 'parent'
241
-
242
- module ClassModule
243
- def ident
244
- s = file_name.split("/")
245
- s[s.length-2] + "/" + name
246
- end
247
- end
248
-
249
- end
250
-
251
- class BuildConfig_INTERNAL < BaseConfig_INTERNAL
252
- contains_many 'files', Files, 'parent'
253
- contains_many 'excludeFiles', ExcludeFiles, 'parent'
254
- contains_one 'artifactName', ArtifactName, 'parent'
255
- end
256
-
257
- class ExecutableConfig < BuildConfig_INTERNAL
258
- contains_one 'linkerScript', LinkerScript, 'parent'
259
- contains_one 'mapFile', MapFile, 'parent'
260
- module ClassModule
261
- def color
262
- "green"
263
- end
264
- end
265
- end
266
-
267
- class LibraryConfig < BuildConfig_INTERNAL
268
- module ClassModule
269
- def color
270
- "cyan"
271
- end
272
- end
273
- end
274
-
275
- class CustomConfig < BaseConfig_INTERNAL
276
- contains_one 'step', Step, 'parent'
277
- module ClassModule
278
- def color
279
- "red"
280
- end
281
- end
282
- end
283
-
284
- class Project < ModelElement
285
- has_attr 'default', String, :defaultValueLiteral => ""
286
- contains_one 'description', Description, 'parent'
287
- contains_one 'requiredBakeVersion', RequiredBakeVersion, 'parent'
288
- contains_one 'responsible', Responsible, 'parent'
289
- contains_many 'config', BaseConfig_INTERNAL, 'parent'
290
-
291
- module ClassModule
292
- def name
293
- splitted = file_name.split("/")
294
- x = splitted[splitted.length-2]
295
- x
296
- end
297
- end
298
-
299
- end
300
-
301
- class Adapt < ModelElement
302
- contains_many 'config', BaseConfig_INTERNAL, 'parent'
303
- end
304
-
305
- end
306
-
307
- end
1
+ require 'rgen/metamodel_builder'
2
+ require 'rgen/metamodel_builder/data_types'
3
+
4
+ module Bake
5
+
6
+ module Metamodel
7
+ extend RGen::MetamodelBuilder::ModuleExtension
8
+
9
+ class ModelElement < RGen::MetamodelBuilder::MMBase
10
+ abstract
11
+ has_attr 'line_number', Integer do
12
+ annotation :details => {'internal' => 'true'}
13
+ end
14
+ module ClassModule
15
+ def fragment_ref=(fref)
16
+ @fname = fref.fragment.location
17
+ end
18
+
19
+ def file_name
20
+ @fname
21
+ end
22
+
23
+ def file_name=(name)
24
+ @fname = name
25
+ end
26
+ end
27
+ end
28
+
29
+ CompilerType = RGen::MetamodelBuilder::DataTypes::Enum.new( :name => "CompilerType", :literals => [:CPP, :C, :ASM])
30
+
31
+ class Flags < ModelElement
32
+ has_attr 'overwrite', String, :defaultValueLiteral => ""
33
+ has_attr 'add', String, :defaultValueLiteral => ""
34
+ has_attr 'remove', String, :defaultValueLiteral => ""
35
+ end
36
+ class LibPrefixFlags < ModelElement
37
+ has_attr 'overwrite', String, :defaultValueLiteral => ""
38
+ has_attr 'add', String, :defaultValueLiteral => ""
39
+ has_attr 'remove', String, :defaultValueLiteral => ""
40
+ end
41
+ class LibPostfixFlags < ModelElement
42
+ has_attr 'overwrite', String, :defaultValueLiteral => ""
43
+ has_attr 'add', String, :defaultValueLiteral => ""
44
+ has_attr 'remove', String, :defaultValueLiteral => ""
45
+ end
46
+ class Define < ModelElement
47
+ has_attr 'str', String, :defaultValueLiteral => ""
48
+ end
49
+
50
+ class InternalIncludes < ModelElement
51
+ has_attr 'name', String, :defaultValueLiteral => ""
52
+ end
53
+
54
+ class InternalDefines < ModelElement
55
+ has_attr 'name', String, :defaultValueLiteral => ""
56
+ end
57
+
58
+ class Archiver < ModelElement
59
+ has_attr 'command', String, :defaultValueLiteral => ""
60
+ contains_many 'flags', Flags, 'parent'
61
+ end
62
+
63
+ class Linker < ModelElement
64
+ has_attr 'command', String, :defaultValueLiteral => ""
65
+ contains_many 'flags', Flags, 'parent'
66
+ contains_many 'libprefixflags', LibPrefixFlags, 'parent'
67
+ contains_many 'libpostfixflags', LibPostfixFlags, 'parent'
68
+ end
69
+
70
+ class Compiler < ModelElement
71
+ has_attr 'ctype', CompilerType
72
+ has_attr 'command', String, :defaultValueLiteral => ""
73
+ contains_many 'define', Define, 'parent'
74
+ contains_many 'flags', Flags, 'parent'
75
+ contains_one 'internalDefines', InternalDefines, 'parent'
76
+ end
77
+
78
+ class LintPolicy < ModelElement
79
+ has_attr 'name', String, :defaultValueLiteral => ""
80
+ end
81
+
82
+ class Docu < ModelElement
83
+ has_attr 'name', String, :defaultValueLiteral => ""
84
+ end
85
+
86
+ class DefaultToolchain < ModelElement
87
+ has_attr 'basedOn', String, :defaultValueLiteral => ""
88
+ has_attr 'outputDir', String, :defaultValueLiteral => ""
89
+ has_attr 'eclipseOrder', Boolean, :defaultValueLiteral => "false"
90
+ contains_many 'compiler', Compiler, 'parent'
91
+ contains_one 'archiver', Archiver, 'parent'
92
+ contains_one 'linker', Linker, 'parent'
93
+ contains_many 'lintPolicy', LintPolicy, 'parent'
94
+ contains_one 'internalIncludes', InternalIncludes, 'parent'
95
+ contains_one 'docu', Docu, 'parent'
96
+ end
97
+
98
+ class Toolchain < ModelElement
99
+ has_attr 'outputDir', String, :defaultValueLiteral => ""
100
+ contains_many 'compiler', Compiler, 'parent'
101
+ contains_one 'archiver', Archiver, 'parent'
102
+ contains_one 'linker', Linker, 'parent'
103
+ contains_many 'lintPolicy', LintPolicy, 'parent'
104
+ contains_one 'docu', Docu, 'parent'
105
+ end
106
+
107
+ class Person < ModelElement
108
+ has_attr 'name', String, :defaultValueLiteral => ""
109
+ has_attr 'email', String, :defaultValueLiteral => ""
110
+ end
111
+
112
+ class Description < ModelElement
113
+ has_attr 'text', String, :defaultValueLiteral => ""
114
+ end
115
+
116
+ class RequiredBakeVersion < ModelElement
117
+ has_attr 'minimum', String, :defaultValueLiteral => ""
118
+ has_attr 'maximum', String, :defaultValueLiteral => ""
119
+ end
120
+
121
+ class Responsible < ModelElement
122
+ contains_many "person", Person, 'parent'
123
+ end
124
+
125
+ class Files < ModelElement
126
+ has_attr 'name', String, :defaultValueLiteral => ""
127
+ contains_many 'define', Define, 'parent'
128
+ contains_many 'flags', Flags, 'parent'
129
+ end
130
+
131
+ class ExcludeFiles < ModelElement
132
+ has_attr 'name', String, :defaultValueLiteral => ""
133
+ end
134
+
135
+ class IncludeDir < ModelElement
136
+ has_attr 'name', String, :defaultValueLiteral => ""
137
+ has_attr 'infix', String, :defaultValueLiteral => ""
138
+ has_attr 'inject', String, :defaultValueLiteral => ""
139
+ has_attr 'inherit', Boolean, :defaultValueLiteral => "false"
140
+ end
141
+
142
+ class LibStuff < ModelElement
143
+ end
144
+
145
+ class ExternalLibrary < LibStuff
146
+ has_attr 'name', String, :defaultValueLiteral => ""
147
+ has_attr 'search', Boolean, :defaultValueLiteral => "true"
148
+ end
149
+
150
+ class ExternalLibrarySearchPath < LibStuff
151
+ has_attr 'name', String, :defaultValueLiteral => ""
152
+ end
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
+ has_attr 'inject', String, :defaultValueLiteral => ""
162
+ end
163
+
164
+ class Except < ModelElement
165
+ has_attr 'name', String, :defaultValueLiteral => ""
166
+ has_attr 'config', String, :defaultValueLiteral => ""
167
+ end
168
+
169
+ class Prebuild < ModelElement
170
+ contains_many 'except', Except, 'parent'
171
+ end
172
+
173
+ class Step < ModelElement
174
+ has_attr 'name', String, :defaultValueLiteral => ""
175
+ has_attr 'default', String, :defaultValueLiteral => "on"
176
+ has_attr 'filter', String, :defaultValueLiteral => ""
177
+ has_many_attr 'validExitCodes', Integer
178
+ end
179
+
180
+ class Makefile < Step
181
+ has_attr 'lib', String, :defaultValueLiteral => ""
182
+ has_attr 'target', String, :defaultValueLiteral => ""
183
+ has_attr 'pathTo', String, :defaultValueLiteral => ""
184
+ contains_many 'flags', Flags, 'parent'
185
+ end
186
+
187
+ class CommandLine < Step
188
+ end
189
+
190
+ class PreSteps < ModelElement
191
+ contains_many 'step', Step, 'parent'
192
+ end
193
+
194
+ class PostSteps < ModelElement
195
+ contains_many 'step', Step, 'parent'
196
+ end
197
+
198
+ class ExitSteps < ModelElement
199
+ contains_many 'step', Step, 'parent'
200
+ end
201
+
202
+ class StartupSteps < ModelElement
203
+ contains_many 'step', Step, 'parent'
204
+ end
205
+
206
+ class LinkerScript < ModelElement
207
+ has_attr 'name', String, :defaultValueLiteral => ""
208
+ end
209
+
210
+ class MapFile < ModelElement
211
+ has_attr 'name', String, :defaultValueLiteral => ""
212
+ end
213
+
214
+ class ArtifactName < ModelElement
215
+ has_attr 'name', String, :defaultValueLiteral => ""
216
+ end
217
+
218
+ class Set < ModelElement
219
+ has_attr 'name', String, :defaultValueLiteral => ""
220
+ has_attr 'value', String, :defaultValueLiteral => ""
221
+ has_attr 'cmd', String, :defaultValueLiteral => ""
222
+ has_attr 'env', Boolean, :defaultValueLiteral => "false"
223
+ end
224
+
225
+ class BaseConfig_INTERNAL < ModelElement
226
+ has_attr 'name', String, :defaultValueLiteral => ""
227
+ has_attr 'extends', String, :defaultValueLiteral => ""
228
+ has_attr 'type', String, :defaultValueLiteral => ""
229
+ has_attr 'project', String, :defaultValueLiteral => ""
230
+ contains_one 'description', Description, 'parent'
231
+ contains_one 'startupSteps', StartupSteps, 'parent'
232
+ contains_one 'preSteps', PreSteps, 'parent'
233
+ contains_one 'postSteps', PostSteps, 'parent'
234
+ contains_one 'exitSteps', ExitSteps, 'parent'
235
+ contains_many 'libStuff', LibStuff, 'parent'
236
+ contains_one 'defaultToolchain', DefaultToolchain, 'parent'
237
+ contains_one 'toolchain', Toolchain, 'parent'
238
+ contains_many 'set', Set, 'parent'
239
+ contains_many 'includeDir', IncludeDir, 'parent'
240
+ contains_many 'prebuild', Prebuild, 'parent'
241
+
242
+ module ClassModule
243
+ def ident
244
+ s = file_name.split("/")
245
+ s[s.length-2] + "/" + name
246
+ end
247
+ end
248
+
249
+ end
250
+
251
+ class BuildConfig_INTERNAL < BaseConfig_INTERNAL
252
+ contains_many 'files', Files, 'parent'
253
+ contains_many 'excludeFiles', ExcludeFiles, 'parent'
254
+ contains_one 'artifactName', ArtifactName, 'parent'
255
+ end
256
+
257
+ class ExecutableConfig < BuildConfig_INTERNAL
258
+ contains_one 'linkerScript', LinkerScript, 'parent'
259
+ contains_one 'mapFile', MapFile, 'parent'
260
+ module ClassModule
261
+ def color
262
+ "green"
263
+ end
264
+ end
265
+ end
266
+
267
+ class LibraryConfig < BuildConfig_INTERNAL
268
+ module ClassModule
269
+ def color
270
+ "cyan"
271
+ end
272
+ end
273
+ end
274
+
275
+ class CustomConfig < BaseConfig_INTERNAL
276
+ contains_one 'step', Step, 'parent'
277
+ module ClassModule
278
+ def color
279
+ "red"
280
+ end
281
+ end
282
+ end
283
+
284
+ class Project < ModelElement
285
+ has_attr 'default', String, :defaultValueLiteral => ""
286
+ contains_one 'description', Description, 'parent'
287
+ contains_one 'requiredBakeVersion', RequiredBakeVersion, 'parent'
288
+ contains_one 'responsible', Responsible, 'parent'
289
+ contains_many 'config', BaseConfig_INTERNAL, 'parent'
290
+
291
+ module ClassModule
292
+ def name
293
+ splitted = file_name.split("/")
294
+ x = splitted[splitted.length-2]
295
+ x
296
+ end
297
+ end
298
+
299
+ end
300
+
301
+ class Adapt < ModelElement
302
+ contains_many 'config', BaseConfig_INTERNAL, 'parent'
303
+ end
304
+
305
+ end
306
+
307
+ end