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
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