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.
- checksums.yaml +4 -4
- data/Rakefile.rb +3 -3
- data/bin/bake +46 -46
- data/bin/bake-doc +11 -11
- data/bin/bakery +179 -179
- data/bin/createVSProjects +213 -213
- data/documentation/_build/html/_sources/changelog.txt +456 -451
- data/documentation/_build/html/_sources/commandline/commandline.txt +107 -107
- data/documentation/_build/html/_sources/concepts/build_hierarchy.txt +34 -34
- data/documentation/_build/html/_sources/concepts/concepts.txt +14 -14
- data/documentation/_build/html/_sources/concepts/inject.txt +65 -65
- data/documentation/_build/html/_sources/concepts/link_order.txt +91 -91
- data/documentation/_build/html/_sources/concepts/prebuild.txt +56 -56
- data/documentation/_build/html/_sources/concepts/the_main_project.txt +45 -45
- data/documentation/_build/html/_sources/concepts/the_project_meta_file.txt +72 -72
- data/documentation/_build/html/_sources/ide/eclipse/eclipse.txt +25 -25
- data/documentation/_build/html/_sources/ide/eclipse/how_to_convert_existing_cdt_workspace.txt +31 -31
- data/documentation/_build/html/_sources/ide/eclipse/how_to_create_a_new_project_in_eclipse.txt +18 -18
- data/documentation/_build/html/_sources/ide/eclipse/how_to_create_a_workspace_in_eclipse.txt +27 -27
- data/documentation/_build/html/_sources/ide/eclipse/how_to_debug_in_eclipse.txt +38 -38
- data/documentation/_build/html/_sources/ide/eclipse/how_to_install_eclipse_plugin.txt +44 -44
- data/documentation/_build/html/_sources/ide/eclipse/how_to_use_bake_in_eclipse.txt +86 -86
- data/documentation/_build/html/_sources/ide/ide_integrations.txt +8 -8
- data/documentation/_build/html/_sources/ide/vs/how_to_create_vs_projects.txt +15 -15
- data/documentation/_build/html/_sources/ide/vs/how_to_debug_in_vs.txt +35 -35
- data/documentation/_build/html/_sources/ide/vs/how_to_used_bake_in_vs.txt +35 -35
- data/documentation/_build/html/_sources/ide/vs/vs.txt +10 -10
- data/documentation/_build/html/_sources/ide/vs/vs_install.txt +43 -43
- data/documentation/_build/html/_sources/index.txt +33 -33
- data/documentation/_build/html/_sources/install/install_bake.txt +112 -112
- data/documentation/_build/html/_sources/internal.txt +50 -50
- data/documentation/_build/html/_sources/known_issues.txt +9 -9
- data/documentation/_build/html/_sources/license.txt +4 -4
- data/documentation/_build/html/_sources/performance/performance.txt +104 -104
- data/documentation/_build/html/_sources/quickstart/quickstart.txt +70 -70
- data/documentation/_build/html/_sources/syntax/adapt_configs.txt +143 -143
- data/documentation/_build/html/_sources/syntax/auto_adjustment.txt +43 -43
- data/documentation/_build/html/_sources/syntax/derive_configs.txt +93 -94
- data/documentation/_build/html/_sources/syntax/project_meta_syntax.txt +19 -19
- data/documentation/_build/html/_sources/syntax/syntax.txt +11 -11
- data/documentation/_build/html/_sources/syntax/variable_substitutions.txt +147 -147
- data/documentation/_build/html/_sources/tips_and_tricks/dot.txt +34 -34
- data/documentation/_build/html/_sources/tips_and_tricks/how_to_use_bake_with_cygwin.txt +62 -62
- data/documentation/_build/html/_sources/tips_and_tricks/static_code_analysis.txt +122 -122
- data/documentation/_build/html/_sources/tips_and_tricks/the_bakery.txt +72 -72
- data/documentation/_build/html/_sources/tips_and_tricks/the_clang.txt +43 -43
- data/documentation/_build/html/_sources/tips_and_tricks/tips_and_tricks.txt +34 -34
- data/documentation/_build/html/_sources/why_bake/why_bake.txt +40 -40
- data/documentation/_build/html/changelog.html +7 -0
- data/documentation/_build/html/commandline/commandline.html +2 -2
- data/documentation/_build/html/concepts/link_order.html +2 -2
- data/documentation/_build/html/concepts/prebuild.html +2 -2
- data/documentation/_build/html/index.html +4 -4
- data/documentation/_build/html/performance/performance.html +2 -2
- data/documentation/_build/html/searchindex.js +1 -1
- data/documentation/_build/html/syntax/adapt_configs.html +2 -2
- data/documentation/_build/html/syntax/syntax.html +2 -2
- data/documentation/_build/html/tips_and_tricks/the_clang.html +2 -2
- data/documentation/_build/html/why_bake/why_bake.html +2 -2
- data/lib/adapt/config/loader.rb +112 -112
- data/lib/bake/bundle.rb +158 -158
- data/lib/bake/cache.rb +179 -180
- data/lib/bake/config/checks.rb +68 -68
- data/lib/bake/config/loader.rb +363 -363
- data/lib/bake/libElement.rb +176 -176
- data/lib/bake/mergeConfig.rb +208 -208
- data/lib/bake/model/language.rb +45 -45
- data/lib/bake/model/loader.rb +99 -99
- data/lib/bake/model/metamodel.rb +307 -307
- data/lib/bake/model/metamodel_ext.rb +27 -27
- data/lib/bake/options/create.rb +95 -95
- data/lib/bake/options/options.rb +315 -310
- data/lib/bake/options/showDoc.rb +20 -20
- data/lib/bake/options/showLicense.rb +9 -9
- data/lib/bake/options/showToolchains.rb +38 -38
- data/lib/bake/options/usage.rb +79 -68
- data/lib/bake/subst.rb +313 -313
- data/lib/bake/toolchain/clang.rb +44 -44
- data/lib/bake/toolchain/clang_analyze.rb +31 -31
- data/lib/bake/toolchain/colorizing_formatter.rb +125 -125
- data/lib/bake/toolchain/diab.rb +53 -53
- data/lib/bake/toolchain/errorparser/diab_compiler_error_parser.rb +40 -40
- data/lib/bake/toolchain/errorparser/diab_linker_error_parser.rb +41 -41
- data/lib/bake/toolchain/errorparser/error_parser.rb +71 -71
- data/lib/bake/toolchain/errorparser/gcc_compiler_error_parser.rb +35 -35
- data/lib/bake/toolchain/errorparser/gcc_linker_error_parser.rb +35 -35
- data/lib/bake/toolchain/errorparser/greenhills_compiler_error_parser.rb +32 -32
- data/lib/bake/toolchain/errorparser/greenhills_linker_error_parser.rb +44 -44
- data/lib/bake/toolchain/errorparser/keil_compiler_error_parser.rb +40 -40
- data/lib/bake/toolchain/errorparser/keil_linker_error_parser.rb +30 -30
- data/lib/bake/toolchain/errorparser/lint_error_parser.rb +34 -34
- data/lib/bake/toolchain/errorparser/msvc_compiler_error_parser.rb +63 -63
- data/lib/bake/toolchain/errorparser/msvc_linker_error_parser.rb +42 -42
- data/lib/bake/toolchain/errorparser/process_output.rb +2 -2
- data/lib/bake/toolchain/errorparser/ti_compiler_error_parser.rb +30 -30
- data/lib/bake/toolchain/errorparser/ti_linker_error_parser.rb +30 -30
- data/lib/bake/toolchain/gcc.rb +49 -49
- data/lib/bake/toolchain/gcc_env.rb +55 -55
- data/lib/bake/toolchain/greenhills.rb +52 -52
- data/lib/bake/toolchain/keil.rb +53 -53
- data/lib/bake/toolchain/lint.rb +20 -20
- data/lib/bake/toolchain/msvc.rb +58 -58
- data/lib/bake/toolchain/provider.rb +146 -146
- data/lib/bake/toolchain/ti.rb +47 -47
- data/lib/bake/util.rb +149 -149
- data/lib/bakery/buildPattern.rb +24 -24
- data/lib/bakery/model/language.rb +22 -22
- data/lib/bakery/model/loader.rb +55 -55
- data/lib/bakery/model/metamodel.rb +48 -48
- data/lib/bakery/options/options.rb +87 -87
- data/lib/bakery/toBake.rb +81 -81
- data/lib/blocks/block.rb +324 -324
- data/lib/blocks/blockBase.rb +204 -204
- data/lib/blocks/commandLine.rb +38 -38
- data/lib/blocks/compile.rb +529 -528
- data/lib/blocks/convert.rb +41 -41
- data/lib/blocks/docu.rb +30 -30
- data/lib/blocks/executable.rb +174 -174
- data/lib/blocks/has_execute_command.rb +31 -31
- data/lib/blocks/library.rb +114 -114
- data/lib/blocks/lint.rb +56 -56
- data/lib/blocks/makefile.rb +100 -100
- data/lib/blocks/showIncludes.rb +140 -125
- data/lib/common/abortException.rb +4 -4
- data/lib/common/cleanup.rb +10 -10
- data/lib/common/exit_helper.rb +38 -38
- data/lib/common/ext/file.rb +88 -88
- data/lib/common/ext/rtext.rb +11 -11
- data/lib/common/ext/stdout.rb +45 -45
- data/lib/common/ide_interface.rb +194 -194
- data/lib/common/options/parser.rb +95 -85
- data/lib/common/process.rb +64 -64
- data/lib/common/utils.rb +52 -52
- data/lib/common/version.rb +31 -23
- data/lib/multithread/job.rb +44 -44
- data/lib/tocxx.rb +558 -555
- data/lib/vs/options.rb +69 -69
- data/license.txt +90 -90
- metadata +2 -2
data/lib/bake/util.rb
CHANGED
@@ -1,149 +1,149 @@
|
|
1
|
-
require 'bake/model/metamodel_ext'
|
2
|
-
require 'bake/model/metamodel'
|
3
|
-
require 'set'
|
4
|
-
require 'bake/toolchain/colorizing_formatter'
|
5
|
-
require 'common/exit_helper'
|
6
|
-
require 'common/utils'
|
7
|
-
|
8
|
-
|
9
|
-
def remove_empty_strings_and_join(a, j=' ')
|
10
|
-
return a.reject{|e|e.to_s.empty?}.join(j)
|
11
|
-
end
|
12
|
-
|
13
|
-
def adjustFlags(orgStr, flags)
|
14
|
-
orgSplitted = Bake::Utils::flagSplit(orgStr, false)
|
15
|
-
|
16
|
-
flags.each do |f|
|
17
|
-
if f.overwrite != ""
|
18
|
-
orgSplitted = Bake::Utils::flagSplit(f.overwrite, false)
|
19
|
-
end
|
20
|
-
|
21
|
-
if f.remove != ""
|
22
|
-
rmSplitted = Bake::Utils::flagSplit(f.remove, false)
|
23
|
-
orgSplitted.delete_if {|o| rmSplitted.any? { |r|
|
24
|
-
begin
|
25
|
-
o.match("\\A"+r+"\\Z")
|
26
|
-
rescue Exception => e
|
27
|
-
Bake.formatter.printError(e.message, f)
|
28
|
-
Bake::ExitHelper.exit(1)
|
29
|
-
end
|
30
|
-
}}
|
31
|
-
end
|
32
|
-
|
33
|
-
if f.add != ""
|
34
|
-
Bake::Utils::flagSplit(f.add, false).each do |a|
|
35
|
-
orgSplitted << a unless orgSplitted.any? { |o| o==a }
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
|
41
|
-
orgSplitted.join(" ")
|
42
|
-
end
|
43
|
-
|
44
|
-
def integrateToolchain(tcs, toolchain)
|
45
|
-
return tcs unless toolchain
|
46
|
-
|
47
|
-
tcs[:OUTPUT_DIR] = toolchain.outputDir if toolchain.outputDir != ""
|
48
|
-
integrateLinker(tcs, toolchain.linker) if toolchain.respond_to?"linker"
|
49
|
-
integrateArchiver(tcs, toolchain.archiver)
|
50
|
-
toolchain.compiler.each do |c|
|
51
|
-
integrateCompiler(tcs, c, c.ctype)
|
52
|
-
end
|
53
|
-
integrateLintPolicy(tcs, toolchain.lintPolicy)
|
54
|
-
integrateDocu(tcs, toolchain.docu) if toolchain.docu
|
55
|
-
end
|
56
|
-
|
57
|
-
def integrateLintPolicy(tcs, policies)
|
58
|
-
policies.each do |d|
|
59
|
-
tcs[:LINT_POLICY] << d.name
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
def integrateDocu(tcs, docu)
|
64
|
-
tcs[:DOCU] = docu.name if docu.name != ""
|
65
|
-
end
|
66
|
-
|
67
|
-
def integrateLinker(tcs, linker)
|
68
|
-
return tcs unless linker
|
69
|
-
tcs[:LINKER][:COMMAND] = linker.command if linker.command != ""
|
70
|
-
tcs[:LINKER][:FLAGS] = adjustFlags(tcs[:LINKER][:FLAGS], linker.flags)
|
71
|
-
tcs[:LINKER][:LIB_PREFIX_FLAGS] = adjustFlags(tcs[:LINKER][:LIB_PREFIX_FLAGS], linker.libprefixflags)
|
72
|
-
tcs[:LINKER][:LIB_POSTFIX_FLAGS] = adjustFlags(tcs[:LINKER][:LIB_POSTFIX_FLAGS], linker.libpostfixflags)
|
73
|
-
end
|
74
|
-
|
75
|
-
def integrateArchiver(tcs, archiver)
|
76
|
-
return tcs unless archiver
|
77
|
-
tcs[:ARCHIVER][:COMMAND] = archiver.command if archiver.command != ""
|
78
|
-
tcs[:ARCHIVER][:FLAGS] = adjustFlags(tcs[:ARCHIVER][:FLAGS], archiver.flags)
|
79
|
-
end
|
80
|
-
|
81
|
-
def integrateCompiler(tcs, compiler, type)
|
82
|
-
return tcs unless compiler
|
83
|
-
if compiler.respond_to?"command"
|
84
|
-
tcs[:COMPILER][type][:COMMAND] = compiler.command if compiler.command != ""
|
85
|
-
end
|
86
|
-
tcs[:COMPILER][type][:FLAGS] = adjustFlags(tcs[:COMPILER][type][:FLAGS], compiler.flags)
|
87
|
-
compiler.define.each do |d|
|
88
|
-
tcs[:COMPILER][type][:DEFINES] << d.str unless tcs[:COMPILER][type][:DEFINES].include? d.str
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
def integrateCompilerFile(tcs, compiler)
|
93
|
-
[:CPP, :C, :ASM].each do |t|
|
94
|
-
integrateCompiler(tcs, compiler, t)
|
95
|
-
end
|
96
|
-
return tcs
|
97
|
-
end
|
98
|
-
|
99
|
-
|
100
|
-
def sanitize_filename(filename)
|
101
|
-
filename.strip do |name|
|
102
|
-
# NOTE: File.basename doesn't work right with Windows paths on Unix
|
103
|
-
# get only the filename, not the whole path
|
104
|
-
name.gsub! /^.*(\\|\/)/, ''
|
105
|
-
|
106
|
-
# Finally, replace all non alphanumeric, underscore
|
107
|
-
# or periods with underscore
|
108
|
-
# name.gsub! /[^\w\.\-]/, '_'
|
109
|
-
# Basically strip out the non-ascii alphabets too
|
110
|
-
# and replace with x.
|
111
|
-
# You don't want all _ :)
|
112
|
-
name.gsub!(/[^0-9A-Za-z.\-]/, 'x')
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
def searchRootsFile(dir)
|
117
|
-
rootsFile = dir+"/roots.bake"
|
118
|
-
return rootsFile if File.exist?(rootsFile)
|
119
|
-
|
120
|
-
parent = File.dirname(dir)
|
121
|
-
return searchRootsFile(parent) if parent != dir
|
122
|
-
|
123
|
-
return nil
|
124
|
-
end
|
125
|
-
|
126
|
-
def calc_def_roots(dir)
|
127
|
-
def_roots = []
|
128
|
-
rootsFile = searchRootsFile(dir)
|
129
|
-
if (rootsFile)
|
130
|
-
File.open(rootsFile).each do |line|
|
131
|
-
line = line.split("#")[0].strip.gsub(/[\\]/,'/')
|
132
|
-
if line != ""
|
133
|
-
if File.is_absolute?(line)
|
134
|
-
def_roots << line
|
135
|
-
else
|
136
|
-
def_roots << File.expand_path(File.dirname(rootsFile) + "/" + line)
|
137
|
-
end
|
138
|
-
end
|
139
|
-
end
|
140
|
-
else
|
141
|
-
def_roots << File.dirname(dir)
|
142
|
-
end
|
143
|
-
def_roots
|
144
|
-
end
|
145
|
-
|
146
|
-
def add_line_if_no_comment(array, str)
|
147
|
-
s = str.split("#")[0].strip
|
148
|
-
array << s unless s.empty?
|
149
|
-
end
|
1
|
+
require 'bake/model/metamodel_ext'
|
2
|
+
require 'bake/model/metamodel'
|
3
|
+
require 'set'
|
4
|
+
require 'bake/toolchain/colorizing_formatter'
|
5
|
+
require 'common/exit_helper'
|
6
|
+
require 'common/utils'
|
7
|
+
|
8
|
+
|
9
|
+
def remove_empty_strings_and_join(a, j=' ')
|
10
|
+
return a.reject{|e|e.to_s.empty?}.join(j)
|
11
|
+
end
|
12
|
+
|
13
|
+
def adjustFlags(orgStr, flags)
|
14
|
+
orgSplitted = Bake::Utils::flagSplit(orgStr, false)
|
15
|
+
|
16
|
+
flags.each do |f|
|
17
|
+
if f.overwrite != ""
|
18
|
+
orgSplitted = Bake::Utils::flagSplit(f.overwrite, false)
|
19
|
+
end
|
20
|
+
|
21
|
+
if f.remove != ""
|
22
|
+
rmSplitted = Bake::Utils::flagSplit(f.remove, false)
|
23
|
+
orgSplitted.delete_if {|o| rmSplitted.any? { |r|
|
24
|
+
begin
|
25
|
+
o.match("\\A"+r+"\\Z")
|
26
|
+
rescue Exception => e
|
27
|
+
Bake.formatter.printError(e.message, f)
|
28
|
+
Bake::ExitHelper.exit(1)
|
29
|
+
end
|
30
|
+
}}
|
31
|
+
end
|
32
|
+
|
33
|
+
if f.add != ""
|
34
|
+
Bake::Utils::flagSplit(f.add, false).each do |a|
|
35
|
+
orgSplitted << a unless orgSplitted.any? { |o| o==a }
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
orgSplitted.join(" ")
|
42
|
+
end
|
43
|
+
|
44
|
+
def integrateToolchain(tcs, toolchain)
|
45
|
+
return tcs unless toolchain
|
46
|
+
|
47
|
+
tcs[:OUTPUT_DIR] = toolchain.outputDir if toolchain.outputDir != ""
|
48
|
+
integrateLinker(tcs, toolchain.linker) if toolchain.respond_to?"linker"
|
49
|
+
integrateArchiver(tcs, toolchain.archiver)
|
50
|
+
toolchain.compiler.each do |c|
|
51
|
+
integrateCompiler(tcs, c, c.ctype)
|
52
|
+
end
|
53
|
+
integrateLintPolicy(tcs, toolchain.lintPolicy)
|
54
|
+
integrateDocu(tcs, toolchain.docu) if toolchain.docu
|
55
|
+
end
|
56
|
+
|
57
|
+
def integrateLintPolicy(tcs, policies)
|
58
|
+
policies.each do |d|
|
59
|
+
tcs[:LINT_POLICY] << d.name
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def integrateDocu(tcs, docu)
|
64
|
+
tcs[:DOCU] = docu.name if docu.name != ""
|
65
|
+
end
|
66
|
+
|
67
|
+
def integrateLinker(tcs, linker)
|
68
|
+
return tcs unless linker
|
69
|
+
tcs[:LINKER][:COMMAND] = linker.command if linker.command != ""
|
70
|
+
tcs[:LINKER][:FLAGS] = adjustFlags(tcs[:LINKER][:FLAGS], linker.flags)
|
71
|
+
tcs[:LINKER][:LIB_PREFIX_FLAGS] = adjustFlags(tcs[:LINKER][:LIB_PREFIX_FLAGS], linker.libprefixflags)
|
72
|
+
tcs[:LINKER][:LIB_POSTFIX_FLAGS] = adjustFlags(tcs[:LINKER][:LIB_POSTFIX_FLAGS], linker.libpostfixflags)
|
73
|
+
end
|
74
|
+
|
75
|
+
def integrateArchiver(tcs, archiver)
|
76
|
+
return tcs unless archiver
|
77
|
+
tcs[:ARCHIVER][:COMMAND] = archiver.command if archiver.command != ""
|
78
|
+
tcs[:ARCHIVER][:FLAGS] = adjustFlags(tcs[:ARCHIVER][:FLAGS], archiver.flags)
|
79
|
+
end
|
80
|
+
|
81
|
+
def integrateCompiler(tcs, compiler, type)
|
82
|
+
return tcs unless compiler
|
83
|
+
if compiler.respond_to?"command"
|
84
|
+
tcs[:COMPILER][type][:COMMAND] = compiler.command if compiler.command != ""
|
85
|
+
end
|
86
|
+
tcs[:COMPILER][type][:FLAGS] = adjustFlags(tcs[:COMPILER][type][:FLAGS], compiler.flags)
|
87
|
+
compiler.define.each do |d|
|
88
|
+
tcs[:COMPILER][type][:DEFINES] << d.str unless tcs[:COMPILER][type][:DEFINES].include? d.str
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def integrateCompilerFile(tcs, compiler)
|
93
|
+
[:CPP, :C, :ASM].each do |t|
|
94
|
+
integrateCompiler(tcs, compiler, t)
|
95
|
+
end
|
96
|
+
return tcs
|
97
|
+
end
|
98
|
+
|
99
|
+
|
100
|
+
def sanitize_filename(filename)
|
101
|
+
filename.strip do |name|
|
102
|
+
# NOTE: File.basename doesn't work right with Windows paths on Unix
|
103
|
+
# get only the filename, not the whole path
|
104
|
+
name.gsub! /^.*(\\|\/)/, ''
|
105
|
+
|
106
|
+
# Finally, replace all non alphanumeric, underscore
|
107
|
+
# or periods with underscore
|
108
|
+
# name.gsub! /[^\w\.\-]/, '_'
|
109
|
+
# Basically strip out the non-ascii alphabets too
|
110
|
+
# and replace with x.
|
111
|
+
# You don't want all _ :)
|
112
|
+
name.gsub!(/[^0-9A-Za-z.\-]/, 'x')
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
def searchRootsFile(dir)
|
117
|
+
rootsFile = dir+"/roots.bake"
|
118
|
+
return rootsFile if File.exist?(rootsFile)
|
119
|
+
|
120
|
+
parent = File.dirname(dir)
|
121
|
+
return searchRootsFile(parent) if parent != dir
|
122
|
+
|
123
|
+
return nil
|
124
|
+
end
|
125
|
+
|
126
|
+
def calc_def_roots(dir)
|
127
|
+
def_roots = []
|
128
|
+
rootsFile = searchRootsFile(dir)
|
129
|
+
if (rootsFile)
|
130
|
+
File.open(rootsFile).each do |line|
|
131
|
+
line = line.split("#")[0].strip.gsub(/[\\]/,'/')
|
132
|
+
if line != ""
|
133
|
+
if File.is_absolute?(line)
|
134
|
+
def_roots << line
|
135
|
+
else
|
136
|
+
def_roots << File.expand_path(File.dirname(rootsFile) + "/" + line)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
else
|
141
|
+
def_roots << File.dirname(dir)
|
142
|
+
end
|
143
|
+
def_roots
|
144
|
+
end
|
145
|
+
|
146
|
+
def add_line_if_no_comment(array, str)
|
147
|
+
s = str.split("#")[0].strip
|
148
|
+
array << s unless s.empty?
|
149
|
+
end
|
data/lib/bakery/buildPattern.rb
CHANGED
@@ -1,24 +1,24 @@
|
|
1
|
-
module Bake
|
2
|
-
|
3
|
-
class BuildPattern
|
4
|
-
attr_reader :proj, :conf, :coll_p
|
5
|
-
def initialize(proj, conf, coll_p)
|
6
|
-
@proj = proj
|
7
|
-
@conf = conf
|
8
|
-
@coll_p = coll_p
|
9
|
-
end
|
10
|
-
def getId
|
11
|
-
proj + "*******" + conf
|
12
|
-
end
|
13
|
-
def hash
|
14
|
-
getId.hash
|
15
|
-
end
|
16
|
-
def eql?(comparee)
|
17
|
-
self == comparee
|
18
|
-
end
|
19
|
-
def ==(comparee)
|
20
|
-
self.getId == comparee.getId
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
1
|
+
module Bake
|
2
|
+
|
3
|
+
class BuildPattern
|
4
|
+
attr_reader :proj, :conf, :coll_p
|
5
|
+
def initialize(proj, conf, coll_p)
|
6
|
+
@proj = proj
|
7
|
+
@conf = conf
|
8
|
+
@coll_p = coll_p
|
9
|
+
end
|
10
|
+
def getId
|
11
|
+
proj + "*******" + conf
|
12
|
+
end
|
13
|
+
def hash
|
14
|
+
getId.hash
|
15
|
+
end
|
16
|
+
def eql?(comparee)
|
17
|
+
self == comparee
|
18
|
+
end
|
19
|
+
def ==(comparee)
|
20
|
+
self.getId == comparee.getId
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
@@ -1,22 +1,22 @@
|
|
1
|
-
require 'bake/model/metamodel'
|
2
|
-
require 'rtext/language'
|
3
|
-
|
4
|
-
module Bake
|
5
|
-
|
6
|
-
BakeryLanguage =
|
7
|
-
RText::Language.new(BakeryModel.ecore,
|
8
|
-
:feature_provider => proc {|c|
|
9
|
-
RGen::Serializer::OppositeReferenceFilter.call(c.eAllStructuralFeatures).reject {|f|
|
10
|
-
f.eAnnotations.any? {|a|
|
11
|
-
a.details.any? {|d| d.key == 'internal' && d.value == 'true'}
|
12
|
-
}
|
13
|
-
}
|
14
|
-
},
|
15
|
-
:unlabled_arguments => proc {|c|
|
16
|
-
["name"]
|
17
|
-
},
|
18
|
-
:line_number_attribute => "line_number",
|
19
|
-
:file_name_attribute => "file_name"
|
20
|
-
)
|
21
|
-
|
22
|
-
end
|
1
|
+
require 'bake/model/metamodel'
|
2
|
+
require 'rtext/language'
|
3
|
+
|
4
|
+
module Bake
|
5
|
+
|
6
|
+
BakeryLanguage =
|
7
|
+
RText::Language.new(BakeryModel.ecore,
|
8
|
+
:feature_provider => proc {|c|
|
9
|
+
RGen::Serializer::OppositeReferenceFilter.call(c.eAllStructuralFeatures).reject {|f|
|
10
|
+
f.eAnnotations.any? {|a|
|
11
|
+
a.details.any? {|d| d.key == 'internal' && d.value == 'true'}
|
12
|
+
}
|
13
|
+
}
|
14
|
+
},
|
15
|
+
:unlabled_arguments => proc {|c|
|
16
|
+
["name"]
|
17
|
+
},
|
18
|
+
:line_number_attribute => "line_number",
|
19
|
+
:file_name_attribute => "file_name"
|
20
|
+
)
|
21
|
+
|
22
|
+
end
|
data/lib/bakery/model/loader.rb
CHANGED
@@ -1,56 +1,56 @@
|
|
1
|
-
require 'bakery/model/metamodel'
|
2
|
-
require 'bakery/model/language'
|
3
|
-
require 'common/version'
|
4
|
-
|
5
|
-
require 'rgen/environment'
|
6
|
-
require 'rgen/fragment/fragmented_model'
|
7
|
-
|
8
|
-
require 'rtext/default_loader'
|
9
|
-
|
10
|
-
require 'common/exit_helper'
|
11
|
-
require 'bake/toolchain/colorizing_formatter'
|
12
|
-
|
13
|
-
module Bake
|
14
|
-
|
15
|
-
class BakeryLoader
|
16
|
-
|
17
|
-
attr_reader :model
|
18
|
-
|
19
|
-
def initialize
|
20
|
-
@env = RGen::Environment.new
|
21
|
-
@model = RGen::Fragment::FragmentedModel.new(:env => @env)
|
22
|
-
end
|
23
|
-
|
24
|
-
def load(filename)
|
25
|
-
|
26
|
-
sumErrors = 0
|
27
|
-
|
28
|
-
if not File.exists?filename
|
29
|
-
Bake.formatter.printError("Error: #{filename} does not exist")
|
30
|
-
ExitHelper.exit(1)
|
31
|
-
end
|
32
|
-
|
33
|
-
loader = RText::DefaultLoader.new(
|
34
|
-
Bake::BakeryLanguage,
|
35
|
-
@model,
|
36
|
-
:file_provider => proc { [filename] },
|
37
|
-
:cache => @DumpFileCache)
|
38
|
-
loader.load()
|
39
|
-
|
40
|
-
f = @model.fragments[0]
|
41
|
-
|
42
|
-
f.data[:problems].each do |p|
|
43
|
-
Bake.formatter.printError(p.message, p.file, p.line)
|
44
|
-
end
|
45
|
-
|
46
|
-
if f.data[:problems].length > 0
|
47
|
-
ExitHelper.exit(1)
|
48
|
-
end
|
49
|
-
|
50
|
-
return @env
|
51
|
-
|
52
|
-
end
|
53
|
-
|
54
|
-
|
55
|
-
end
|
1
|
+
require 'bakery/model/metamodel'
|
2
|
+
require 'bakery/model/language'
|
3
|
+
require 'common/version'
|
4
|
+
|
5
|
+
require 'rgen/environment'
|
6
|
+
require 'rgen/fragment/fragmented_model'
|
7
|
+
|
8
|
+
require 'rtext/default_loader'
|
9
|
+
|
10
|
+
require 'common/exit_helper'
|
11
|
+
require 'bake/toolchain/colorizing_formatter'
|
12
|
+
|
13
|
+
module Bake
|
14
|
+
|
15
|
+
class BakeryLoader
|
16
|
+
|
17
|
+
attr_reader :model
|
18
|
+
|
19
|
+
def initialize
|
20
|
+
@env = RGen::Environment.new
|
21
|
+
@model = RGen::Fragment::FragmentedModel.new(:env => @env)
|
22
|
+
end
|
23
|
+
|
24
|
+
def load(filename)
|
25
|
+
|
26
|
+
sumErrors = 0
|
27
|
+
|
28
|
+
if not File.exists?filename
|
29
|
+
Bake.formatter.printError("Error: #{filename} does not exist")
|
30
|
+
ExitHelper.exit(1)
|
31
|
+
end
|
32
|
+
|
33
|
+
loader = RText::DefaultLoader.new(
|
34
|
+
Bake::BakeryLanguage,
|
35
|
+
@model,
|
36
|
+
:file_provider => proc { [filename] },
|
37
|
+
:cache => @DumpFileCache)
|
38
|
+
loader.load()
|
39
|
+
|
40
|
+
f = @model.fragments[0]
|
41
|
+
|
42
|
+
f.data[:problems].each do |p|
|
43
|
+
Bake.formatter.printError(p.message, p.file, p.line)
|
44
|
+
end
|
45
|
+
|
46
|
+
if f.data[:problems].length > 0
|
47
|
+
ExitHelper.exit(1)
|
48
|
+
end
|
49
|
+
|
50
|
+
return @env
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
end
|
56
56
|
end
|