cxxproject 0.5.48 → 0.5.59
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.
- data/Rakefile.rb +116 -116
- data/bin/cxx +10 -10
- data/lib/cxxproject.rb +23 -23
- data/lib/cxxproject/buildingblocks/binary_library.rb +39 -39
- data/lib/cxxproject/buildingblocks/building_block.rb +251 -239
- data/lib/cxxproject/buildingblocks/command_line.rb +79 -79
- data/lib/cxxproject/buildingblocks/custom_building_block.rb +39 -41
- data/lib/cxxproject/buildingblocks/executable.rb +257 -249
- data/lib/cxxproject/buildingblocks/has_dependencies_mixin.rb +83 -83
- data/lib/cxxproject/buildingblocks/has_includes_mixin.rb +20 -20
- data/lib/cxxproject/buildingblocks/has_libraries_mixin.rb +34 -34
- data/lib/cxxproject/buildingblocks/has_sources_mixin.rb +371 -364
- data/lib/cxxproject/buildingblocks/makefile.rb +153 -153
- data/lib/cxxproject/buildingblocks/module.rb +35 -35
- data/lib/cxxproject/buildingblocks/single_source.rb +33 -33
- data/lib/cxxproject/buildingblocks/source_library.rb +124 -124
- data/lib/cxxproject/errorparser/diab_compiler_error_parser.rb +40 -40
- data/lib/cxxproject/errorparser/diab_linker_error_parser.rb +41 -33
- data/lib/cxxproject/errorparser/error_parser.rb +50 -50
- data/lib/cxxproject/errorparser/gcc_compiler_error_parser.rb +35 -30
- data/lib/cxxproject/errorparser/gcc_linker_error_parser.rb +35 -29
- data/lib/cxxproject/errorparser/ti_compiler_error_parser.rb +30 -30
- data/lib/cxxproject/errorparser/ti_linker_error_parser.rb +30 -29
- data/lib/cxxproject/eval_context.rb +144 -136
- data/lib/cxxproject/ext/file.rb +71 -71
- data/lib/cxxproject/ext/filelist.rb +6 -6
- data/lib/cxxproject/ext/progressbar.rb +20 -20
- data/lib/cxxproject/ext/rake.rb +419 -397
- data/lib/cxxproject/ext/rake_dirty.rb +30 -30
- data/lib/cxxproject/ext/rake_listener.rb +59 -59
- data/lib/cxxproject/ext/stdout.rb +44 -44
- data/lib/cxxproject/ext/string.rb +9 -9
- data/lib/cxxproject/ide_interface.rb +187 -181
- data/lib/cxxproject/toolchain/clang.rb +39 -39
- data/lib/cxxproject/toolchain/colorizing_formatter.rb +99 -99
- data/lib/cxxproject/toolchain/diab.rb +3 -1
- data/lib/cxxproject/toolchain/gcc.rb +2 -1
- data/lib/cxxproject/toolchain/provider.rb +131 -128
- data/lib/cxxproject/toolchain/toolchain.rb +38 -38
- data/lib/cxxproject/toolchain/toolchain_benchmark.rb +23 -23
- data/lib/cxxproject/torake.rb +218 -216
- data/lib/cxxproject/utils/cleanup.rb +20 -20
- data/lib/cxxproject/utils/console.rb +6 -6
- data/lib/cxxproject/utils/exit_helper.rb +40 -40
- data/lib/cxxproject/utils/graphstream.rb +154 -154
- data/lib/cxxproject/utils/optional.rb +16 -16
- data/lib/cxxproject/utils/printer.rb +50 -50
- data/lib/cxxproject/utils/process.rb +52 -52
- data/lib/cxxproject/utils/progress.rb +66 -66
- data/lib/cxxproject/utils/progress_helper.rb +77 -77
- data/lib/cxxproject/utils/rbcurse.rb +284 -284
- data/lib/cxxproject/utils/rbcurse_executable_ext.rb +14 -14
- data/lib/cxxproject/utils/rbcurse_progress.rb +71 -71
- data/lib/cxxproject/utils/rbcurse_tasktable.rb +51 -51
- data/lib/cxxproject/utils/stats.rb +60 -60
- data/lib/cxxproject/utils/ubigraph.rb +228 -228
- data/lib/cxxproject/utils/utils.rb +60 -37
- data/lib/cxxproject/utils/valgrind.rb +11 -11
- data/lib/cxxproject/version.rb +7 -7
- data/lib/tools/Rakefile.rb.template +10 -10
- data/lib/tools/project.rb.template +6 -6
- data/lib/tools/project_wizard.rb +66 -66
- data/spec/building_block_spec.rb +56 -56
- data/spec/cxxproject_2_rake_spec.rb +186 -186
- data/spec/file_ext_spec.rb +30 -30
- data/spec/ide_interface_spec.rb +41 -41
- data/spec/object_dependency_spec.rb +83 -83
- data/spec/project_path_spec.rb +71 -71
- data/spec/rake_listener_ext_spec.rb +58 -58
- data/spec/spec_helper.rb +18 -18
- data/spec/string_spec.rb +11 -11
- data/spec/testdata/basic/exe12/project.rb +5 -5
- data/spec/testdata/basic/lib1/project.rb +5 -5
- data/spec/testdata/basic/lib2/project.rb +8 -8
- data/spec/testdata/multiple_levels/libs/lib1/project.rb +5 -5
- data/spec/testdata/multiple_levels/libs/lib2/project.rb +19 -19
- data/spec/testdata/multiple_levels/mainproject/basic/project.rb +8 -8
- data/spec/testdata/onlyOneHeader/Rakefile.rb +4 -4
- data/spec/testdata/onlyOneHeader/project.rb +4 -4
- data/spec/toolchain_spec.rb +29 -29
- metadata +58 -58
@@ -1,38 +1,38 @@
|
|
1
|
-
require 'yaml'
|
2
|
-
|
3
|
-
class Hash
|
4
|
-
def method_missing(m, *args, &block)
|
5
|
-
if m.to_s =~ /(.*)=$/ # was assignment
|
6
|
-
self[$1] = args[0]
|
7
|
-
else
|
8
|
-
fetch(m.to_s, nil)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
def recursive_merge(h)
|
12
|
-
self.merge!(h) {|key, _old, _new| if _old.class == Hash then _old.recursive_merge(_new) else _new end }
|
13
|
-
end
|
14
|
-
|
15
|
-
end
|
16
|
-
|
17
|
-
class Toolchain
|
18
|
-
attr_reader :toolchain
|
19
|
-
def initialize(toolchain_file)
|
20
|
-
@toolchain = YAML::load(File.open(toolchain_file))
|
21
|
-
if @toolchain.base
|
22
|
-
@based_on = @toolchain.base
|
23
|
-
else
|
24
|
-
@based_on = "base"
|
25
|
-
end
|
26
|
-
basechain = YAML::load(File.open(File.join(File.dirname(__FILE__),"#{@based_on}.json")))
|
27
|
-
@toolchain = basechain.recursive_merge(@toolchain)
|
28
|
-
end
|
29
|
-
def method_missing(m, *args, &block)
|
30
|
-
if @toolchain[m.to_s]
|
31
|
-
self.class.send(:define_method, m) { @toolchain[m.to_s] }
|
32
|
-
@toolchain[m.to_s]
|
33
|
-
else
|
34
|
-
return super
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
class Hash
|
4
|
+
def method_missing(m, *args, &block)
|
5
|
+
if m.to_s =~ /(.*)=$/ # was assignment
|
6
|
+
self[$1] = args[0]
|
7
|
+
else
|
8
|
+
fetch(m.to_s, nil)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
def recursive_merge(h)
|
12
|
+
self.merge!(h) {|key, _old, _new| if _old.class == Hash then _old.recursive_merge(_new) else _new end }
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
class Toolchain
|
18
|
+
attr_reader :toolchain
|
19
|
+
def initialize(toolchain_file)
|
20
|
+
@toolchain = YAML::load(File.open(toolchain_file))
|
21
|
+
if @toolchain.base
|
22
|
+
@based_on = @toolchain.base
|
23
|
+
else
|
24
|
+
@based_on = "base"
|
25
|
+
end
|
26
|
+
basechain = YAML::load(File.open(File.join(File.dirname(__FILE__),"#{@based_on}.json")))
|
27
|
+
@toolchain = basechain.recursive_merge(@toolchain)
|
28
|
+
end
|
29
|
+
def method_missing(m, *args, &block)
|
30
|
+
if @toolchain[m.to_s]
|
31
|
+
self.class.send(:define_method, m) { @toolchain[m.to_s] }
|
32
|
+
@toolchain[m.to_s]
|
33
|
+
else
|
34
|
+
return super
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
@@ -1,23 +1,23 @@
|
|
1
|
-
$:.unshift File.dirname(__FILE__)
|
2
|
-
require 'toolchain'
|
3
|
-
require 'benchmark'
|
4
|
-
|
5
|
-
Benchmark.bm do |x|
|
6
|
-
|
7
|
-
n = 1000
|
8
|
-
x.report("load Toolchain #{n}-times") do
|
9
|
-
n.times do
|
10
|
-
tc = Toolchain.new('gcc.json')
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
tc = Toolchain.new('gcc.json')
|
15
|
-
n = 1000000
|
16
|
-
x.report("access fields as methods #{n}-times") do
|
17
|
-
n.times do
|
18
|
-
x = tc.compiler.c.source_file_endings
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
23
|
-
|
1
|
+
$:.unshift File.dirname(__FILE__)
|
2
|
+
require 'toolchain'
|
3
|
+
require 'benchmark'
|
4
|
+
|
5
|
+
Benchmark.bm do |x|
|
6
|
+
|
7
|
+
n = 1000
|
8
|
+
x.report("load Toolchain #{n}-times") do
|
9
|
+
n.times do
|
10
|
+
tc = Toolchain.new('gcc.json')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
tc = Toolchain.new('gcc.json')
|
15
|
+
n = 1000000
|
16
|
+
x.report("access fields as methods #{n}-times") do
|
17
|
+
n.times do
|
18
|
+
x = tc.compiler.c.source_file_endings
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
data/lib/cxxproject/torake.rb
CHANGED
@@ -1,216 +1,218 @@
|
|
1
|
-
require 'logger'
|
2
|
-
require 'pp'
|
3
|
-
require 'pathname'
|
4
|
-
require 'cxxproject/ext/rake'
|
5
|
-
require 'cxxproject/buildingblocks/module'
|
6
|
-
require 'cxxproject/buildingblocks/makefile'
|
7
|
-
require 'cxxproject/buildingblocks/executable'
|
8
|
-
require 'cxxproject/buildingblocks/source_library'
|
9
|
-
require 'cxxproject/buildingblocks/single_source'
|
10
|
-
require 'cxxproject/buildingblocks/binary_library'
|
11
|
-
require 'cxxproject/buildingblocks/custom_building_block'
|
12
|
-
require 'cxxproject/buildingblocks/command_line'
|
13
|
-
require 'cxxproject/toolchain/colorizing_formatter'
|
14
|
-
require 'cxxproject/eval_context'
|
15
|
-
require 'cxxproject/utils/valgrind'
|
16
|
-
|
17
|
-
module Cxxproject
|
18
|
-
class CxxProject2Rake
|
19
|
-
|
20
|
-
attr_accessor :base, :all_tasks
|
21
|
-
|
22
|
-
def initialize(projects, build_dir, toolchain, base='.')
|
23
|
-
@
|
24
|
-
@base
|
25
|
-
|
26
|
-
|
27
|
-
@
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
#
|
60
|
-
|
61
|
-
|
62
|
-
@log.level = Logger::
|
63
|
-
@log.
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
block.
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
@log.debug "
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
1
|
+
require 'logger'
|
2
|
+
require 'pp'
|
3
|
+
require 'pathname'
|
4
|
+
require 'cxxproject/ext/rake'
|
5
|
+
require 'cxxproject/buildingblocks/module'
|
6
|
+
require 'cxxproject/buildingblocks/makefile'
|
7
|
+
require 'cxxproject/buildingblocks/executable'
|
8
|
+
require 'cxxproject/buildingblocks/source_library'
|
9
|
+
require 'cxxproject/buildingblocks/single_source'
|
10
|
+
require 'cxxproject/buildingblocks/binary_library'
|
11
|
+
require 'cxxproject/buildingblocks/custom_building_block'
|
12
|
+
require 'cxxproject/buildingblocks/command_line'
|
13
|
+
require 'cxxproject/toolchain/colorizing_formatter'
|
14
|
+
require 'cxxproject/eval_context'
|
15
|
+
require 'cxxproject/utils/valgrind'
|
16
|
+
|
17
|
+
module Cxxproject
|
18
|
+
class CxxProject2Rake
|
19
|
+
|
20
|
+
attr_accessor :base, :all_tasks
|
21
|
+
|
22
|
+
def initialize(projects, build_dir, toolchain, base='.')
|
23
|
+
@base = base
|
24
|
+
cd(@base, :verbose => false) do
|
25
|
+
@projects = projects.to_a
|
26
|
+
end
|
27
|
+
@build_dir = build_dir
|
28
|
+
@toolchain = toolchain
|
29
|
+
@rel_projects = @projects#.map { |p| File.join(@base, p) }
|
30
|
+
|
31
|
+
# TODO: this should be cleaned up somehow...
|
32
|
+
if Utils::OS.linux?
|
33
|
+
toolchain[:LINKER][:LIB_PREFIX_FLAGS] = "-Wl,--whole-archive"
|
34
|
+
toolchain[:LINKER][:LIB_POSTFIX_FLAGS] = "-Wl,--no-whole-archive"
|
35
|
+
end
|
36
|
+
|
37
|
+
Rake::application.deriveIncludes = true
|
38
|
+
|
39
|
+
initialize_logging
|
40
|
+
@all_tasks = instantiate_tasks
|
41
|
+
|
42
|
+
create_generic_tasks
|
43
|
+
create_console_colorization
|
44
|
+
create_multitask
|
45
|
+
create_bail_on_first_task
|
46
|
+
describe_clean_task
|
47
|
+
create_console_task
|
48
|
+
end
|
49
|
+
|
50
|
+
def create_console_task
|
51
|
+
require 'cxxproject/utils/console'
|
52
|
+
end
|
53
|
+
|
54
|
+
def initialize_logging
|
55
|
+
@log = Logger.new(STDOUT)
|
56
|
+
@log.formatter = proc { |severity, datetime, progname, msg|
|
57
|
+
"#{severity}: #{msg}\n"
|
58
|
+
}
|
59
|
+
# Logger loglevels: fatal, error, warn, info, debug
|
60
|
+
# Rake --verbose -> info
|
61
|
+
# Rake --trace -> debug
|
62
|
+
@log.level = Logger::ERROR
|
63
|
+
@log.level = Logger::INFO if RakeFileUtils.verbose == true
|
64
|
+
@log.level = Logger::DEBUG if Rake::application.options.trace
|
65
|
+
@log.debug "initializing for build_dir: \"#{@build_dir}\", base: \"#{@base}\""
|
66
|
+
end
|
67
|
+
def describe_clean_task
|
68
|
+
Rake::Task[:clean].add_description('clean')
|
69
|
+
end
|
70
|
+
def create_bail_on_first_task
|
71
|
+
desc 'set bail on first error'
|
72
|
+
task :bail_on_first_error do
|
73
|
+
Rake::Task.bail_on_first_error = true
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def create_multitask
|
78
|
+
desc 'set parallelization of multitask'
|
79
|
+
task :multitask, :threads do |t, args|
|
80
|
+
arg = args.threads
|
81
|
+
if arg
|
82
|
+
Rake::application.max_parallel_tasks = arg.to_i
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def create_console_colorization
|
88
|
+
# default is on
|
89
|
+
Cxxproject::ColorizingFormatter.enabled = true
|
90
|
+
desc 'Toggle colorization of console output (use true|t|yes|y|1|on for true ... everything else is false)'
|
91
|
+
task :toggle_colorize, :on_off do |t, args|
|
92
|
+
arg = args[:on_off] || 'false'
|
93
|
+
on_off = arg.match(/(true|t|yes|y|1|on)$/) != nil
|
94
|
+
Cxxproject::ColorizingFormatter.enabled = on_off
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def create_generic_tasks
|
99
|
+
tasks = [:lib, :exe, :run]
|
100
|
+
if Cxxproject::Valgrind::available?
|
101
|
+
tasks << :valgrind
|
102
|
+
end
|
103
|
+
tasks << nil
|
104
|
+
tasks.each { |i| create_filter_task_with_namespace(i) }
|
105
|
+
end
|
106
|
+
|
107
|
+
def create_filter_task_with_namespace(basename)
|
108
|
+
if basename
|
109
|
+
desc "invoke #{basename} with filter"
|
110
|
+
namespace basename do
|
111
|
+
create_filter_task("#{basename}:")
|
112
|
+
end
|
113
|
+
else
|
114
|
+
desc 'invoke with filter'
|
115
|
+
create_filter_task('')
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
def create_filter_task(basename)
|
120
|
+
task :filter, :filter do |t, args|
|
121
|
+
filter = ".*"
|
122
|
+
if args[:filter]
|
123
|
+
filter = "#{args[:filter]}"
|
124
|
+
end
|
125
|
+
filter = Regexp.new("#{basename}#{filter}")
|
126
|
+
Rake::Task.tasks.each do |to_check|
|
127
|
+
name = to_check.name
|
128
|
+
if ("#{basename}:filter" != name)
|
129
|
+
match = filter.match(name)
|
130
|
+
if match
|
131
|
+
to_check.invoke
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
def instantiate_tasks
|
139
|
+
check_for_project_configs
|
140
|
+
|
141
|
+
if @log.debug?
|
142
|
+
@log.debug "project_configs:"
|
143
|
+
@projects.each { |c| @log.debug " * #{c}" }
|
144
|
+
end
|
145
|
+
register_projects()
|
146
|
+
ALL_BUILDING_BLOCKS.values.each do |block|
|
147
|
+
prepare_block(block)
|
148
|
+
end
|
149
|
+
ALL_BUILDING_BLOCKS.values.inject([]) do |memo,block|
|
150
|
+
@log.debug "creating tasks for block: #{block.name}/taskname: #{block.get_task_name} (#{block})"
|
151
|
+
memo << block.convert_to_rake()
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
def check_for_project_configs
|
156
|
+
cd(@base, :verbose => false) do
|
157
|
+
@projects.each do |p|
|
158
|
+
abort "project config #{p} cannot be found!" unless File.exists?(p)
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
def prepare_block(block)
|
164
|
+
block.set_tcs(@toolchain) unless block.has_tcs?
|
165
|
+
block.set_output_dir(Dir.pwd + "/" + @build_dir)
|
166
|
+
block.complete_init()
|
167
|
+
end
|
168
|
+
|
169
|
+
def register_projects()
|
170
|
+
cd(@base,:verbose => false) do |b|
|
171
|
+
@projects.each_with_index do |project_file, i|
|
172
|
+
@log.debug "register project #{project_file}"
|
173
|
+
dirname = File.dirname(project_file)
|
174
|
+
@log.debug "dirname for project was: #{dirname}"
|
175
|
+
cd(dirname,:verbose => false) do | base_dir |
|
176
|
+
@log.debug "register project #{project_file} from within directory: #{Dir.pwd}"
|
177
|
+
eval_file(b, File.basename(project_file))
|
178
|
+
end
|
179
|
+
end
|
180
|
+
end
|
181
|
+
end
|
182
|
+
def eval_file(b, project_file)
|
183
|
+
loadContext = EvalContext.new
|
184
|
+
begin
|
185
|
+
loadContext.eval_project(File.read(File.basename(project_file)), project_file, Dir.pwd)
|
186
|
+
rescue Exception => e
|
187
|
+
puts "problems with #{File.join(b, project_file)} in dir: #{Dir.pwd}"
|
188
|
+
raise e
|
189
|
+
end
|
190
|
+
begin
|
191
|
+
loadContext.myblock.call()
|
192
|
+
rescue Exception => e
|
193
|
+
error_string = "error while evaluating \"#{Dir.pwd}/#{project_file}\""
|
194
|
+
puts error_string
|
195
|
+
raise e
|
196
|
+
end
|
197
|
+
|
198
|
+
loadContext.all_blocks.each do |block|
|
199
|
+
block.
|
200
|
+
set_project_dir(Dir.pwd).
|
201
|
+
set_config_files([Dir.pwd + "/" + project_file])
|
202
|
+
if block.respond_to?(:sources) && block.sources.instance_of?(Rake::FileList)
|
203
|
+
block.set_sources(block.sources.to_a)
|
204
|
+
end
|
205
|
+
end
|
206
|
+
end
|
207
|
+
def define_project_info_task
|
208
|
+
desc "shows your defined projects"
|
209
|
+
task :project_info do
|
210
|
+
p "ProjectBase: #{@base}"
|
211
|
+
ALL_BUILDING_BLOCKS.each_value do |bb|
|
212
|
+
pp bb
|
213
|
+
end
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
217
|
+
end
|
218
|
+
end
|