cxxproject 0.5.76 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile.rb +116 -116
- data/bin/cxx +10 -10
- data/lib/cxxproject/buildingblocks/binary_library.rb +39 -39
- data/lib/cxxproject/buildingblocks/building_block.rb +251 -234
- data/lib/cxxproject/buildingblocks/command_line.rb +79 -86
- data/lib/cxxproject/buildingblocks/custom_building_block.rb +39 -39
- data/lib/cxxproject/buildingblocks/executable.rb +246 -258
- 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 -379
- 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 -111
- data/lib/cxxproject/errorparser/diab_compiler_error_parser.rb +40 -40
- data/lib/cxxproject/errorparser/diab_linker_error_parser.rb +41 -41
- data/lib/cxxproject/errorparser/error_parser.rb +50 -71
- data/lib/cxxproject/errorparser/gcc_compiler_error_parser.rb +35 -35
- data/lib/cxxproject/errorparser/gcc_linker_error_parser.rb +35 -35
- data/lib/cxxproject/errorparser/ti_compiler_error_parser.rb +30 -30
- data/lib/cxxproject/errorparser/ti_linker_error_parser.rb +30 -30
- data/lib/cxxproject/eval_context.rb +144 -144
- data/lib/cxxproject/ext/file.rb +71 -81
- data/lib/cxxproject/ext/filelist.rb +6 -6
- data/lib/cxxproject/ext/progressbar.rb +20 -0
- data/lib/cxxproject/ext/rake.rb +419 -434
- 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 -189
- data/lib/cxxproject/toolchain/clang.rb +39 -43
- data/lib/cxxproject/toolchain/colorizing_formatter.rb +99 -99
- data/lib/cxxproject/toolchain/diab.rb +1 -1
- data/lib/cxxproject/toolchain/gcc.rb +1 -1
- data/lib/cxxproject/toolchain/provider.rb +131 -143
- data/lib/cxxproject/toolchain/toolchain.rb +38 -38
- data/lib/cxxproject/toolchain/toolchain_benchmark.rb +23 -23
- data/lib/cxxproject/torake.rb +259 -218
- data/lib/cxxproject/utils/cleanup.rb +20 -24
- 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 -58
- data/lib/cxxproject/utils/progress.rb +66 -0
- data/lib/cxxproject/utils/progress_helper.rb +77 -0
- data/lib/cxxproject/utils/rbcurse.rb +284 -0
- data/lib/cxxproject/utils/rbcurse_executable_ext.rb +14 -0
- data/lib/cxxproject/utils/rbcurse_progress.rb +71 -0
- data/lib/cxxproject/utils/rbcurse_tasktable.rb +51 -0
- data/lib/cxxproject/utils/stats.rb +60 -60
- data/lib/cxxproject/utils/ubigraph.rb +228 -228
- data/lib/cxxproject/utils/utils.rb +37 -69
- data/lib/cxxproject/version.rb +7 -7
- data/lib/cxxproject.rb +23 -19
- 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 +116 -107
- checksums.yaml +0 -7
- data/lib/cxxproject/buildingblocks/lint.rb +0 -89
- data/lib/cxxproject/errorparser/gcc_lint_error_parser.rb +0 -34
- data/lib/cxxproject/errorparser/greenhills_compiler_error_parser.rb +0 -32
- data/lib/cxxproject/errorparser/greenhills_linker_error_parser.rb +0 -44
- data/lib/cxxproject/errorparser/keil_compiler_error_parser.rb +0 -40
- data/lib/cxxproject/errorparser/keil_linker_error_parser.rb +0 -30
- data/lib/cxxproject/toolchain/gcc_lint.rb +0 -21
- data/lib/cxxproject/toolchain/gcc_param.rb +0 -7
- data/lib/cxxproject/toolchain/greenhills.rb +0 -51
- data/lib/cxxproject/toolchain/keil.rb +0 -52
- data/lib/cxxproject/utils/valgrind.rb +0 -11
@@ -1,83 +1,83 @@
|
|
1
|
-
module Cxxproject
|
2
|
-
module HasDependencies
|
3
|
-
|
4
|
-
def dependencies
|
5
|
-
@dependencies ||= []
|
6
|
-
end
|
7
|
-
|
8
|
-
def helper_dependencies
|
9
|
-
@helper_dependencies ||= []
|
10
|
-
end
|
11
|
-
|
12
|
-
def set_dependencies(deps)
|
13
|
-
@dependencies = deps.map { |dep| dep.instance_of?(String) ? dep : dep.name }
|
14
|
-
self
|
15
|
-
end
|
16
|
-
|
17
|
-
def set_helper_dependencies(deps)
|
18
|
-
@helper_dependencies = deps.map { |dep| dep.instance_of?(String) ? dep : dep.name }
|
19
|
-
self
|
20
|
-
end
|
21
|
-
|
22
|
-
def direct_deps
|
23
|
-
return @direct_deps if @direct_deps
|
24
|
-
|
25
|
-
@all_dependencies_set = Set.new
|
26
|
-
@all_dependencies_set << self
|
27
|
-
@all_dependencies = [self]
|
28
|
-
|
29
|
-
depList = helper_dependencies.length > 0 ? helper_dependencies : dependencies
|
30
|
-
|
31
|
-
depList.each do |d|
|
32
|
-
bb = ALL_BUILDING_BLOCKS[d]
|
33
|
-
if not bb
|
34
|
-
raise "Error: while reading config file for #{self.name}: dependent building block \"#{d}\" was specified but not found!"
|
35
|
-
end
|
36
|
-
next if @all_dependencies_set.include?bb
|
37
|
-
|
38
|
-
@all_dependencies << bb
|
39
|
-
@all_dependencies_set << bb
|
40
|
-
|
41
|
-
# deps in modules may be splitted into its contents
|
42
|
-
if ModuleBuildingBlock === bb
|
43
|
-
bb.contents.each do |c|
|
44
|
-
next if @all_dependencies_set.include?c
|
45
|
-
@all_dependencies << c
|
46
|
-
@all_dependencies_set << c
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
|
-
@direct_deps = @all_dependencies.dup
|
53
|
-
@direct_deps
|
54
|
-
end
|
55
|
-
|
56
|
-
def all_dependencies()
|
57
|
-
return @all_dependencies if @all_deps_calculated
|
58
|
-
|
59
|
-
direct_deps.each do |d|
|
60
|
-
d.all_dependencies_recursive(@all_dependencies, @all_dependencies_set)
|
61
|
-
end
|
62
|
-
|
63
|
-
@all_deps_calculated = true
|
64
|
-
@all_dependencies
|
65
|
-
end
|
66
|
-
|
67
|
-
def all_dependencies_recursive(all_deps, all_deps_set)
|
68
|
-
deps = [] # needed to keep order
|
69
|
-
|
70
|
-
direct_deps.each do |d|
|
71
|
-
next if all_deps_set.include?d
|
72
|
-
all_deps << d
|
73
|
-
all_deps_set << d
|
74
|
-
deps << d
|
75
|
-
end
|
76
|
-
|
77
|
-
deps.each do |d|
|
78
|
-
d.all_dependencies_recursive(all_deps, all_deps_set)
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
end
|
83
|
-
end
|
1
|
+
module Cxxproject
|
2
|
+
module HasDependencies
|
3
|
+
|
4
|
+
def dependencies
|
5
|
+
@dependencies ||= []
|
6
|
+
end
|
7
|
+
|
8
|
+
def helper_dependencies
|
9
|
+
@helper_dependencies ||= []
|
10
|
+
end
|
11
|
+
|
12
|
+
def set_dependencies(deps)
|
13
|
+
@dependencies = deps.map { |dep| dep.instance_of?(String) ? dep : dep.name }
|
14
|
+
self
|
15
|
+
end
|
16
|
+
|
17
|
+
def set_helper_dependencies(deps)
|
18
|
+
@helper_dependencies = deps.map { |dep| dep.instance_of?(String) ? dep : dep.name }
|
19
|
+
self
|
20
|
+
end
|
21
|
+
|
22
|
+
def direct_deps
|
23
|
+
return @direct_deps if @direct_deps
|
24
|
+
|
25
|
+
@all_dependencies_set = Set.new
|
26
|
+
@all_dependencies_set << self
|
27
|
+
@all_dependencies = [self]
|
28
|
+
|
29
|
+
depList = helper_dependencies.length > 0 ? helper_dependencies : dependencies
|
30
|
+
|
31
|
+
depList.each do |d|
|
32
|
+
bb = ALL_BUILDING_BLOCKS[d]
|
33
|
+
if not bb
|
34
|
+
raise "Error: while reading config file for #{self.name}: dependent building block \"#{d}\" was specified but not found!"
|
35
|
+
end
|
36
|
+
next if @all_dependencies_set.include?bb
|
37
|
+
|
38
|
+
@all_dependencies << bb
|
39
|
+
@all_dependencies_set << bb
|
40
|
+
|
41
|
+
# deps in modules may be splitted into its contents
|
42
|
+
if ModuleBuildingBlock === bb
|
43
|
+
bb.contents.each do |c|
|
44
|
+
next if @all_dependencies_set.include?c
|
45
|
+
@all_dependencies << c
|
46
|
+
@all_dependencies_set << c
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
@direct_deps = @all_dependencies.dup
|
53
|
+
@direct_deps
|
54
|
+
end
|
55
|
+
|
56
|
+
def all_dependencies()
|
57
|
+
return @all_dependencies if @all_deps_calculated
|
58
|
+
|
59
|
+
direct_deps.each do |d|
|
60
|
+
d.all_dependencies_recursive(@all_dependencies, @all_dependencies_set)
|
61
|
+
end
|
62
|
+
|
63
|
+
@all_deps_calculated = true
|
64
|
+
@all_dependencies
|
65
|
+
end
|
66
|
+
|
67
|
+
def all_dependencies_recursive(all_deps, all_deps_set)
|
68
|
+
deps = [] # needed to keep order
|
69
|
+
|
70
|
+
direct_deps.each do |d|
|
71
|
+
next if all_deps_set.include?d
|
72
|
+
all_deps << d
|
73
|
+
all_deps_set << d
|
74
|
+
deps << d
|
75
|
+
end
|
76
|
+
|
77
|
+
deps.each do |d|
|
78
|
+
d.all_dependencies_recursive(all_deps, all_deps_set)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
end
|
@@ -1,20 +1,20 @@
|
|
1
|
-
module Cxxproject
|
2
|
-
module HasIncludes
|
3
|
-
def includes
|
4
|
-
@includes ||= []
|
5
|
-
end
|
6
|
-
def set_includes(x)
|
7
|
-
@includes = x
|
8
|
-
self
|
9
|
-
end
|
10
|
-
|
11
|
-
def local_includes
|
12
|
-
@local_includes ||= []
|
13
|
-
end
|
14
|
-
def set_local_includes(x)
|
15
|
-
@local_includes = x
|
16
|
-
self
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
1
|
+
module Cxxproject
|
2
|
+
module HasIncludes
|
3
|
+
def includes
|
4
|
+
@includes ||= []
|
5
|
+
end
|
6
|
+
def set_includes(x)
|
7
|
+
@includes = x
|
8
|
+
self
|
9
|
+
end
|
10
|
+
|
11
|
+
def local_includes
|
12
|
+
@local_includes ||= []
|
13
|
+
end
|
14
|
+
def set_local_includes(x)
|
15
|
+
@local_includes = x
|
16
|
+
self
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
@@ -1,34 +1,34 @@
|
|
1
|
-
module Cxxproject
|
2
|
-
module HasLibraries
|
3
|
-
LIB = 1
|
4
|
-
USERLIB = 2
|
5
|
-
LIB_WITH_PATH = 3
|
6
|
-
SEARCH_PATH = 4
|
7
|
-
DEPENDENCY = 5
|
8
|
-
|
9
|
-
def lib_elements
|
10
|
-
@lib_elements ||= []
|
11
|
-
end
|
12
|
-
|
13
|
-
# value: can be string or building block
|
14
|
-
def add_lib_element(type, value, front = false)
|
15
|
-
elem = [type, value.instance_of?(String) ? value : value.name]
|
16
|
-
if front
|
17
|
-
lib_elements.unshift(elem)
|
18
|
-
else
|
19
|
-
lib_elements << elem
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
# 1. element: type
|
24
|
-
# 2. element: name, must not be a building block
|
25
|
-
def add_lib_elements(array_of_tuples, front = false)
|
26
|
-
if front
|
27
|
-
@lib_elements = array_of_tuples+lib_elements
|
28
|
-
else
|
29
|
-
lib_elements.concat(array_of_tuples)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|
34
|
-
end
|
1
|
+
module Cxxproject
|
2
|
+
module HasLibraries
|
3
|
+
LIB = 1
|
4
|
+
USERLIB = 2
|
5
|
+
LIB_WITH_PATH = 3
|
6
|
+
SEARCH_PATH = 4
|
7
|
+
DEPENDENCY = 5
|
8
|
+
|
9
|
+
def lib_elements
|
10
|
+
@lib_elements ||= []
|
11
|
+
end
|
12
|
+
|
13
|
+
# value: can be string or building block
|
14
|
+
def add_lib_element(type, value, front = false)
|
15
|
+
elem = [type, value.instance_of?(String) ? value : value.name]
|
16
|
+
if front
|
17
|
+
lib_elements.unshift(elem)
|
18
|
+
else
|
19
|
+
lib_elements << elem
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# 1. element: type
|
24
|
+
# 2. element: name, must not be a building block
|
25
|
+
def add_lib_elements(array_of_tuples, front = false)
|
26
|
+
if front
|
27
|
+
@lib_elements = array_of_tuples+lib_elements
|
28
|
+
else
|
29
|
+
lib_elements.concat(array_of_tuples)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|