cxxproject 0.5.76 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. data/Rakefile.rb +116 -116
  2. data/bin/cxx +10 -10
  3. data/lib/cxxproject/buildingblocks/binary_library.rb +39 -39
  4. data/lib/cxxproject/buildingblocks/building_block.rb +251 -234
  5. data/lib/cxxproject/buildingblocks/command_line.rb +79 -86
  6. data/lib/cxxproject/buildingblocks/custom_building_block.rb +39 -39
  7. data/lib/cxxproject/buildingblocks/executable.rb +246 -258
  8. data/lib/cxxproject/buildingblocks/has_dependencies_mixin.rb +83 -83
  9. data/lib/cxxproject/buildingblocks/has_includes_mixin.rb +20 -20
  10. data/lib/cxxproject/buildingblocks/has_libraries_mixin.rb +34 -34
  11. data/lib/cxxproject/buildingblocks/has_sources_mixin.rb +371 -379
  12. data/lib/cxxproject/buildingblocks/makefile.rb +153 -153
  13. data/lib/cxxproject/buildingblocks/module.rb +35 -35
  14. data/lib/cxxproject/buildingblocks/single_source.rb +33 -33
  15. data/lib/cxxproject/buildingblocks/source_library.rb +124 -111
  16. data/lib/cxxproject/errorparser/diab_compiler_error_parser.rb +40 -40
  17. data/lib/cxxproject/errorparser/diab_linker_error_parser.rb +41 -41
  18. data/lib/cxxproject/errorparser/error_parser.rb +50 -71
  19. data/lib/cxxproject/errorparser/gcc_compiler_error_parser.rb +35 -35
  20. data/lib/cxxproject/errorparser/gcc_linker_error_parser.rb +35 -35
  21. data/lib/cxxproject/errorparser/ti_compiler_error_parser.rb +30 -30
  22. data/lib/cxxproject/errorparser/ti_linker_error_parser.rb +30 -30
  23. data/lib/cxxproject/eval_context.rb +144 -144
  24. data/lib/cxxproject/ext/file.rb +71 -81
  25. data/lib/cxxproject/ext/filelist.rb +6 -6
  26. data/lib/cxxproject/ext/progressbar.rb +20 -0
  27. data/lib/cxxproject/ext/rake.rb +419 -434
  28. data/lib/cxxproject/ext/rake_dirty.rb +30 -30
  29. data/lib/cxxproject/ext/rake_listener.rb +59 -59
  30. data/lib/cxxproject/ext/stdout.rb +44 -44
  31. data/lib/cxxproject/ext/string.rb +9 -9
  32. data/lib/cxxproject/ide_interface.rb +187 -189
  33. data/lib/cxxproject/toolchain/clang.rb +39 -43
  34. data/lib/cxxproject/toolchain/colorizing_formatter.rb +99 -99
  35. data/lib/cxxproject/toolchain/diab.rb +1 -1
  36. data/lib/cxxproject/toolchain/gcc.rb +1 -1
  37. data/lib/cxxproject/toolchain/provider.rb +131 -143
  38. data/lib/cxxproject/toolchain/toolchain.rb +38 -38
  39. data/lib/cxxproject/toolchain/toolchain_benchmark.rb +23 -23
  40. data/lib/cxxproject/torake.rb +259 -218
  41. data/lib/cxxproject/utils/cleanup.rb +20 -24
  42. data/lib/cxxproject/utils/console.rb +6 -6
  43. data/lib/cxxproject/utils/exit_helper.rb +40 -40
  44. data/lib/cxxproject/utils/graphstream.rb +154 -154
  45. data/lib/cxxproject/utils/optional.rb +16 -16
  46. data/lib/cxxproject/utils/printer.rb +50 -50
  47. data/lib/cxxproject/utils/process.rb +52 -58
  48. data/lib/cxxproject/utils/progress.rb +66 -0
  49. data/lib/cxxproject/utils/progress_helper.rb +77 -0
  50. data/lib/cxxproject/utils/rbcurse.rb +284 -0
  51. data/lib/cxxproject/utils/rbcurse_executable_ext.rb +14 -0
  52. data/lib/cxxproject/utils/rbcurse_progress.rb +71 -0
  53. data/lib/cxxproject/utils/rbcurse_tasktable.rb +51 -0
  54. data/lib/cxxproject/utils/stats.rb +60 -60
  55. data/lib/cxxproject/utils/ubigraph.rb +228 -228
  56. data/lib/cxxproject/utils/utils.rb +37 -69
  57. data/lib/cxxproject/version.rb +7 -7
  58. data/lib/cxxproject.rb +23 -19
  59. data/lib/tools/Rakefile.rb.template +10 -10
  60. data/lib/tools/project.rb.template +6 -6
  61. data/lib/tools/project_wizard.rb +66 -66
  62. data/spec/building_block_spec.rb +56 -56
  63. data/spec/cxxproject_2_rake_spec.rb +186 -186
  64. data/spec/file_ext_spec.rb +30 -30
  65. data/spec/ide_interface_spec.rb +41 -41
  66. data/spec/object_dependency_spec.rb +83 -83
  67. data/spec/project_path_spec.rb +71 -71
  68. data/spec/rake_listener_ext_spec.rb +58 -58
  69. data/spec/spec_helper.rb +18 -18
  70. data/spec/string_spec.rb +11 -11
  71. data/spec/testdata/basic/exe12/project.rb +5 -5
  72. data/spec/testdata/basic/lib1/project.rb +5 -5
  73. data/spec/testdata/basic/lib2/project.rb +8 -8
  74. data/spec/testdata/multiple_levels/libs/lib1/project.rb +5 -5
  75. data/spec/testdata/multiple_levels/libs/lib2/project.rb +19 -19
  76. data/spec/testdata/multiple_levels/mainproject/basic/project.rb +8 -8
  77. data/spec/testdata/onlyOneHeader/Rakefile.rb +4 -4
  78. data/spec/testdata/onlyOneHeader/project.rb +4 -4
  79. data/spec/toolchain_spec.rb +29 -29
  80. metadata +116 -107
  81. checksums.yaml +0 -7
  82. data/lib/cxxproject/buildingblocks/lint.rb +0 -89
  83. data/lib/cxxproject/errorparser/gcc_lint_error_parser.rb +0 -34
  84. data/lib/cxxproject/errorparser/greenhills_compiler_error_parser.rb +0 -32
  85. data/lib/cxxproject/errorparser/greenhills_linker_error_parser.rb +0 -44
  86. data/lib/cxxproject/errorparser/keil_compiler_error_parser.rb +0 -40
  87. data/lib/cxxproject/errorparser/keil_linker_error_parser.rb +0 -30
  88. data/lib/cxxproject/toolchain/gcc_lint.rb +0 -21
  89. data/lib/cxxproject/toolchain/gcc_param.rb +0 -7
  90. data/lib/cxxproject/toolchain/greenhills.rb +0 -51
  91. data/lib/cxxproject/toolchain/keil.rb +0 -52
  92. 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