bake-toolkit 2.20.4 → 2.21.0

Sign up to get free protection for your applications and to get access to all the features.
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