cxxproject 0.5.76 → 0.6.0

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.
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
data/Rakefile.rb CHANGED
@@ -1,116 +1,116 @@
1
- require 'rake/clean'
2
- require './rake_helper/spec.rb'
3
-
4
- desc "Default Task"
5
- task :default => [:install]
6
-
7
-
8
- begin
9
- require 'rubygems/package_task'
10
- spec = Gem::Specification.load('cxx.gemspec')
11
- Gem::PackageTask.new(spec){|pkg|}
12
-
13
- desc "install gem globally"
14
- task :install => [:gem] do
15
- sh "gem install pkg/#{spec.name}-#{spec.version}.gem"
16
- end
17
-
18
-
19
- begin
20
- require 'rdoc'
21
- require 'rdoc/task'
22
- RDoc::Task.new do |rd|
23
- rd.rdoc_files.include(spec.files)
24
- end
25
- rescue LoadError => e
26
- task :rdoc do
27
- puts 'please gem install rdoc'
28
- end
29
- end
30
- begin
31
- require 'roodi'
32
- require 'roodi_task'
33
- class RoodiTask
34
- def define
35
- # copied from roodi_task.rb
36
- desc "Check for design issues in: #{patterns.join(', ')}"
37
- task name do
38
- runner = Roodi::Core::Runner.new
39
- runner.config = config if config
40
- patterns.each do |pattern|
41
- Dir.glob(pattern).each { |file| runner.check_file(file) }
42
- end
43
- runner.errors.each {|error| puts error}
44
- # raise "Found #{runner.errors.size} errors." unless runner.errors.empty?
45
- end
46
- self
47
- end
48
- end
49
- RoodiTask.new('roodi', spec.files)
50
- task :gem => [:roodi]
51
- rescue LoadError # don't bail out when people do not have roodi installed!
52
- puts 'please gem install roodi'
53
- end
54
- rescue LoadError => e
55
- puts "please missing gems #{e}"
56
- end
57
-
58
- def two_digits(x)
59
- if x.length > 1
60
- x
61
- else
62
- "0#{x}"
63
- end
64
- end
65
-
66
- begin
67
- require 'grit'
68
- include Grit
69
-
70
- def git_history
71
- repo = Repo.new('.')
72
- tag_names = repo.tags.collect {|t| t.name }
73
- relevant_tags = repo.tags.reject {|t| !t.name.start_with?("v_")}
74
- sorted_tags = relevant_tags.sort_by.each do |t|
75
- /v_(?<x>\d+)\.(?<y>\d+)\.(?<z>\d+)/ =~ t.name
76
- "#{two_digits(x)}-#{two_digits(y)}-#{two_digits(z)}"
77
- end
78
-
79
- change_text = []
80
- zipped = sorted_tags[0..-2].zip(sorted_tags[1..-1])
81
- zipped.reverse.each do |a,b|
82
- change_text << ""
83
- change_text << "#{a.name} => #{b.name}"
84
- change_text << ""
85
- cs = repo.commits_between(a.commit, b.commit)
86
- cm = cs.each do |c|
87
- change_lines = c.message.lines.to_a
88
- first = change_lines.first
89
- change_text << " * " + first + "#{change_lines[1..-1].collect {|l| " #{l}"}.join("")}"
90
- end
91
- end
92
- change_text
93
- end
94
-
95
- desc 'generate version history'
96
- task :generate_history do
97
- puts git_history
98
- end
99
-
100
- desc 'generate and update version history'
101
- task :update_version_history do
102
- change_line = "## Change History:"
103
- readme = 'README.md'
104
- content = File.read(readme)
105
- File.open(readme, 'w') do |f|
106
- f.puts content.gsub(/^#{change_line}.*/m, ([change_line] << git_history).join("\n"))
107
- end
108
- end
109
-
110
- rescue LoadError => e
111
- puts 'to build the version history please gem install grit'
112
- end
113
-
114
-
115
- require './rake_helper/perftools'
116
-
1
+ require 'rake/clean'
2
+ require './rake_helper/spec.rb'
3
+
4
+ desc "Default Task"
5
+ task :default => [:install]
6
+
7
+
8
+ begin
9
+ require 'rubygems/package_task'
10
+ spec = Gem::Specification.load('cxx.gemspec')
11
+ Gem::PackageTask.new(spec){|pkg|}
12
+
13
+ desc "install gem globally"
14
+ task :install => [:gem] do
15
+ sh "gem install pkg/#{spec.name}-#{spec.version}.gem"
16
+ end
17
+
18
+
19
+ begin
20
+ require 'rdoc'
21
+ require 'rdoc/task'
22
+ RDoc::Task.new do |rd|
23
+ rd.rdoc_files.include(spec.files)
24
+ end
25
+ rescue LoadError => e
26
+ task :rdoc do
27
+ puts 'please gem install rdoc'
28
+ end
29
+ end
30
+ begin
31
+ require 'roodi'
32
+ require 'roodi_task'
33
+ class RoodiTask
34
+ def define
35
+ # copied from roodi_task.rb
36
+ desc "Check for design issues in: #{patterns.join(', ')}"
37
+ task name do
38
+ runner = Roodi::Core::Runner.new
39
+ runner.config = config if config
40
+ patterns.each do |pattern|
41
+ Dir.glob(pattern).each { |file| runner.check_file(file) }
42
+ end
43
+ runner.errors.each {|error| puts error}
44
+ # raise "Found #{runner.errors.size} errors." unless runner.errors.empty?
45
+ end
46
+ self
47
+ end
48
+ end
49
+ RoodiTask.new('roodi', spec.files)
50
+ task :gem => [:roodi]
51
+ rescue LoadError # don't bail out when people do not have roodi installed!
52
+ puts 'please gem install roodi'
53
+ end
54
+ rescue LoadError => e
55
+ puts "please missing gems #{e}"
56
+ end
57
+
58
+ def two_digits(x)
59
+ if x.length > 1
60
+ x
61
+ else
62
+ "0#{x}"
63
+ end
64
+ end
65
+
66
+ begin
67
+ require 'grit'
68
+ include Grit
69
+
70
+ def git_history
71
+ repo = Repo.new('.')
72
+ tag_names = repo.tags.collect {|t| t.name }
73
+ relevant_tags = repo.tags.reject {|t| !t.name.start_with?("v_")}
74
+ sorted_tags = relevant_tags.sort_by.each do |t|
75
+ /v_(?<x>\d+)\.(?<y>\d+)\.(?<z>\d+)/ =~ t.name
76
+ "#{two_digits(x)}-#{two_digits(y)}-#{two_digits(z)}"
77
+ end
78
+
79
+ change_text = []
80
+ zipped = sorted_tags[0..-2].zip(sorted_tags[1..-1])
81
+ zipped.reverse.each do |a,b|
82
+ change_text << ""
83
+ change_text << "#{a.name} => #{b.name}"
84
+ change_text << ""
85
+ cs = repo.commits_between(a.commit, b.commit)
86
+ cm = cs.each do |c|
87
+ change_lines = c.message.lines.to_a
88
+ first = change_lines.first
89
+ change_text << " * " + first + "#{change_lines[1..-1].collect {|l| " #{l}"}.join("")}"
90
+ end
91
+ end
92
+ change_text
93
+ end
94
+
95
+ desc 'generate version history'
96
+ task :generate_history do
97
+ puts git_history
98
+ end
99
+
100
+ desc 'generate and update version history'
101
+ task :update_version_history do
102
+ change_line = "## Change History:"
103
+ readme = 'README.md'
104
+ content = File.read(readme)
105
+ File.open(readme, 'w') do |f|
106
+ f.puts content.gsub(/^#{change_line}.*/m, ([change_line] << git_history).join("\n"))
107
+ end
108
+ end
109
+
110
+ rescue LoadError => e
111
+ puts 'to build the version history please gem install grit'
112
+ end
113
+
114
+
115
+ require './rake_helper/perftools'
116
+
data/bin/cxx CHANGED
@@ -1,10 +1,10 @@
1
- #!/usr/bin/env ruby
2
- $:.unshift File.join(File.dirname(__FILE__),"..","lib")
3
-
4
- require 'tools/project_wizard'
5
-
6
- if ARGV.size < 1
7
- puts "usage: cxx project-dir"
8
- exit 0
9
- end
10
- prepare_project(ARGV[0])
1
+ #!/usr/bin/env ruby
2
+ $:.unshift File.join(File.dirname(__FILE__),"..","lib")
3
+
4
+ require 'tools/project_wizard'
5
+
6
+ if ARGV.size < 1
7
+ puts "usage: cxx project-dir"
8
+ exit 0
9
+ end
10
+ prepare_project(ARGV[0])
@@ -1,39 +1,39 @@
1
- require 'cxxproject/buildingblocks/building_block'
2
- require 'cxxproject/buildingblocks/has_libraries_mixin'
3
- require 'cxxproject/buildingblocks/has_includes_mixin'
4
-
5
- module Cxxproject
6
-
7
- class BinaryLibrary < BuildingBlock
8
- include HasLibraries
9
- include HasIncludes
10
-
11
- def initialize(name, useNameAsLib = true)
12
- super(name)
13
- if useNameAsLib
14
- @useNameAsLib = name
15
- add_lib_element(HasLibraries::LIB, name, true)
16
- else
17
- @useNameAsLib = nil
18
- end
19
- end
20
-
21
- def get_task_name()
22
- return @useNameAsLib if @useNameAsLib
23
- @name
24
- end
25
-
26
-
27
- def convert_to_rake()
28
- res = task get_task_name
29
- def res.needed?
30
- return false
31
- end
32
- res.transparent_timestamp = true
33
- res.type = Rake::Task::BINARY
34
- setup_rake_dependencies(res)
35
- res
36
- end
37
-
38
- end
39
- end
1
+ require 'cxxproject/buildingblocks/building_block'
2
+ require 'cxxproject/buildingblocks/has_libraries_mixin'
3
+ require 'cxxproject/buildingblocks/has_includes_mixin'
4
+
5
+ module Cxxproject
6
+
7
+ class BinaryLibrary < BuildingBlock
8
+ include HasLibraries
9
+ include HasIncludes
10
+
11
+ def initialize(name, useNameAsLib = true)
12
+ super(name)
13
+ if useNameAsLib
14
+ @useNameAsLib = name
15
+ add_lib_element(HasLibraries::LIB, name, true)
16
+ else
17
+ @useNameAsLib = nil
18
+ end
19
+ end
20
+
21
+ def get_task_name()
22
+ return @useNameAsLib if @useNameAsLib
23
+ @name
24
+ end
25
+
26
+
27
+ def convert_to_rake()
28
+ res = task get_task_name
29
+ def res.needed?
30
+ return false
31
+ end
32
+ res.transparent_timestamp = true
33
+ res.type = Rake::Task::BINARY
34
+ setup_rake_dependencies(res)
35
+ res
36
+ end
37
+
38
+ end
39
+ end