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