cxxproject 0.5.48 → 0.5.59
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.rb +23 -23
- data/lib/cxxproject/buildingblocks/binary_library.rb +39 -39
- data/lib/cxxproject/buildingblocks/building_block.rb +251 -239
- data/lib/cxxproject/buildingblocks/command_line.rb +79 -79
- data/lib/cxxproject/buildingblocks/custom_building_block.rb +39 -41
- data/lib/cxxproject/buildingblocks/executable.rb +257 -249
- 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 -364
- 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 -124
- data/lib/cxxproject/errorparser/diab_compiler_error_parser.rb +40 -40
- data/lib/cxxproject/errorparser/diab_linker_error_parser.rb +41 -33
- data/lib/cxxproject/errorparser/error_parser.rb +50 -50
- data/lib/cxxproject/errorparser/gcc_compiler_error_parser.rb +35 -30
- data/lib/cxxproject/errorparser/gcc_linker_error_parser.rb +35 -29
- data/lib/cxxproject/errorparser/ti_compiler_error_parser.rb +30 -30
- data/lib/cxxproject/errorparser/ti_linker_error_parser.rb +30 -29
- data/lib/cxxproject/eval_context.rb +144 -136
- data/lib/cxxproject/ext/file.rb +71 -71
- data/lib/cxxproject/ext/filelist.rb +6 -6
- data/lib/cxxproject/ext/progressbar.rb +20 -20
- data/lib/cxxproject/ext/rake.rb +419 -397
- 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 -181
- data/lib/cxxproject/toolchain/clang.rb +39 -39
- data/lib/cxxproject/toolchain/colorizing_formatter.rb +99 -99
- data/lib/cxxproject/toolchain/diab.rb +3 -1
- data/lib/cxxproject/toolchain/gcc.rb +2 -1
- data/lib/cxxproject/toolchain/provider.rb +131 -128
- data/lib/cxxproject/toolchain/toolchain.rb +38 -38
- data/lib/cxxproject/toolchain/toolchain_benchmark.rb +23 -23
- data/lib/cxxproject/torake.rb +218 -216
- data/lib/cxxproject/utils/cleanup.rb +20 -20
- 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 -52
- data/lib/cxxproject/utils/progress.rb +66 -66
- data/lib/cxxproject/utils/progress_helper.rb +77 -77
- data/lib/cxxproject/utils/rbcurse.rb +284 -284
- data/lib/cxxproject/utils/rbcurse_executable_ext.rb +14 -14
- data/lib/cxxproject/utils/rbcurse_progress.rb +71 -71
- data/lib/cxxproject/utils/rbcurse_tasktable.rb +51 -51
- data/lib/cxxproject/utils/stats.rb +60 -60
- data/lib/cxxproject/utils/ubigraph.rb +228 -228
- data/lib/cxxproject/utils/utils.rb +60 -37
- data/lib/cxxproject/utils/valgrind.rb +11 -11
- data/lib/cxxproject/version.rb +7 -7
- 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 +58 -58
@@ -1,40 +1,40 @@
|
|
1
|
-
require 'cxxproject/errorparser/error_parser'
|
2
|
-
|
3
|
-
module Cxxproject
|
4
|
-
class DiabCompilerErrorParser < ErrorParser
|
5
|
-
|
6
|
-
def initialize()
|
7
|
-
@error_expression_start = /\"(.+)\", line ([0-9]+): (catastrophic |fatal )*([A-Za-z]+) (.+)/
|
8
|
-
@error_expression_end = /^[ \t]*\^/ # well, it may end without "^"... in this case the error will last the next one starts or console text ends
|
9
|
-
end
|
10
|
-
|
11
|
-
def scan_lines(consoleOutput, proj_dir)
|
12
|
-
res = []
|
13
|
-
error_severity = 255
|
14
|
-
consoleOutputFullnames = ""
|
15
|
-
consoleOutput.each_line do |l|
|
16
|
-
d = ErrorDesc.new
|
17
|
-
lstripped = l.rstrip
|
18
|
-
scan_res = lstripped.scan(@error_expression_start)
|
19
|
-
if scan_res.length == 0
|
20
|
-
d.severity = error_severity
|
21
|
-
d.message = lstripped
|
22
|
-
if lstripped.scan(@error_expression_end).length > 0
|
23
|
-
error_severity = 255
|
24
|
-
end
|
25
|
-
else
|
26
|
-
d.file_name = File.expand_path(scan_res[0][0])
|
27
|
-
d.line_number = scan_res[0][1].to_i
|
28
|
-
d.message = scan_res[0][4]
|
29
|
-
d.severity = get_severity(scan_res[0][3])
|
30
|
-
error_severity = d.severity
|
31
|
-
l.gsub!(scan_res[0][0],d.file_name)
|
32
|
-
end
|
33
|
-
res << d
|
34
|
-
consoleOutputFullnames << l
|
35
|
-
end
|
36
|
-
[res, consoleOutputFullnames]
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
end
|
1
|
+
require 'cxxproject/errorparser/error_parser'
|
2
|
+
|
3
|
+
module Cxxproject
|
4
|
+
class DiabCompilerErrorParser < ErrorParser
|
5
|
+
|
6
|
+
def initialize()
|
7
|
+
@error_expression_start = /\"(.+)\", line ([0-9]+): (?!included)(catastrophic |fatal )*([A-Za-z]+)[:]* (.+)/
|
8
|
+
@error_expression_end = /^[ \t]*\^/ # well, it may end without "^"... in this case the error will last the next one starts or console text ends
|
9
|
+
end
|
10
|
+
|
11
|
+
def scan_lines(consoleOutput, proj_dir)
|
12
|
+
res = []
|
13
|
+
error_severity = 255
|
14
|
+
consoleOutputFullnames = ""
|
15
|
+
consoleOutput.each_line do |l|
|
16
|
+
d = ErrorDesc.new
|
17
|
+
lstripped = l.rstrip
|
18
|
+
scan_res = lstripped.scan(@error_expression_start)
|
19
|
+
if scan_res.length == 0
|
20
|
+
d.severity = error_severity
|
21
|
+
d.message = lstripped
|
22
|
+
if lstripped.scan(@error_expression_end).length > 0
|
23
|
+
error_severity = 255
|
24
|
+
end
|
25
|
+
else
|
26
|
+
d.file_name = File.expand_path(scan_res[0][0])
|
27
|
+
d.line_number = scan_res[0][1].to_i
|
28
|
+
d.message = scan_res[0][4]
|
29
|
+
d.severity = get_severity(scan_res[0][3])
|
30
|
+
error_severity = d.severity
|
31
|
+
l.gsub!(scan_res[0][0],d.file_name)
|
32
|
+
end
|
33
|
+
res << d
|
34
|
+
consoleOutputFullnames << l
|
35
|
+
end
|
36
|
+
[res, consoleOutputFullnames]
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
@@ -1,33 +1,41 @@
|
|
1
|
-
require 'cxxproject/errorparser/error_parser'
|
2
|
-
|
3
|
-
module Cxxproject
|
4
|
-
class DiabLinkerErrorParser < ErrorParser
|
5
|
-
|
6
|
-
def initialize()
|
7
|
-
@error_expression = /dld: ([A-Za-z]+): (.+)/
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
d.
|
22
|
-
|
23
|
-
d.
|
24
|
-
d.
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
1
|
+
require 'cxxproject/errorparser/error_parser'
|
2
|
+
|
3
|
+
module Cxxproject
|
4
|
+
class DiabLinkerErrorParser < ErrorParser
|
5
|
+
|
6
|
+
def initialize()
|
7
|
+
@error_expression = /dld: ([A-Za-z]+): (.+)/
|
8
|
+
@error_expression_linkerscript = /dld: \"([^\"]+)\", line ([0-9]+): (.+)/
|
9
|
+
end
|
10
|
+
|
11
|
+
def scan_lines(consoleOutput, proj_dir)
|
12
|
+
res = []
|
13
|
+
error_severity = 255
|
14
|
+
consoleOutput.each_line do |l|
|
15
|
+
l.rstrip!
|
16
|
+
d = ErrorDesc.new
|
17
|
+
scan_res = l.scan(@error_expression)
|
18
|
+
scan_res2 = l.scan(@error_expression_linkerscript)
|
19
|
+
if scan_res.length == 0 and scan_res2.length == 0 # msg will end with the beginning of the next message
|
20
|
+
d.severity = error_severity
|
21
|
+
d.message = l
|
22
|
+
elsif scan_res.length > 0
|
23
|
+
d.file_name = proj_dir
|
24
|
+
d.line_number = 0
|
25
|
+
d.message = scan_res[0][1]
|
26
|
+
d.severity = get_severity(scan_res[0][0])
|
27
|
+
error_severity = d.severity
|
28
|
+
else
|
29
|
+
d.file_name = proj_dir+"/"+scan_res2[0][0]
|
30
|
+
d.line_number = scan_res2[0][1].to_i
|
31
|
+
d.message = scan_res2[0][2]
|
32
|
+
d.severity = SEVERITY_ERROR
|
33
|
+
error_severity = d.severity
|
34
|
+
end
|
35
|
+
res << d
|
36
|
+
end
|
37
|
+
[res, consoleOutput]
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
@@ -1,50 +1,50 @@
|
|
1
|
-
module Cxxproject
|
2
|
-
|
3
|
-
class ErrorDesc
|
4
|
-
def initialize
|
5
|
-
@severity = 255
|
6
|
-
end
|
7
|
-
attr_accessor :severity
|
8
|
-
attr_accessor :line_number
|
9
|
-
attr_accessor :message
|
10
|
-
attr_accessor :file_name
|
11
|
-
end
|
12
|
-
|
13
|
-
class ErrorParser
|
14
|
-
|
15
|
-
SEVERITY_INFO = 0
|
16
|
-
SEVERITY_WARNING = 1
|
17
|
-
SEVERITY_ERROR = 2
|
18
|
-
SEVERITY_OK = 255
|
19
|
-
|
20
|
-
def scan(consoleOutput, proj_dir)
|
21
|
-
raise "Use specialized classes only"
|
22
|
-
end
|
23
|
-
|
24
|
-
def get_severity(str)
|
25
|
-
if str == "info" || str == "note"
|
26
|
-
SEVERITY_INFO
|
27
|
-
elsif str == "warning"
|
28
|
-
SEVERITY_WARNING
|
29
|
-
elsif str == "error"
|
30
|
-
SEVERITY_ERROR
|
31
|
-
else
|
32
|
-
raise "Unknown severity: #{str}"
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
# scan the output from the console line by line and return a list of ErrorDesc objects.
|
37
|
-
# for none-error/warning lines the description object will indicate that as severity 255
|
38
|
-
# for single line errors/warnings: description will contain severity, line-number, message and file-name
|
39
|
-
#
|
40
|
-
# for multi-line errors/warnings:
|
41
|
-
# one description object for each line, first one will contain all single line error information,
|
42
|
-
# all following desc.objects will just repeat the severity and include the message
|
43
|
-
#
|
44
|
-
def scan_lines(consoleOutput, proj_dir)
|
45
|
-
raise "Use specialized classes only"
|
46
|
-
end
|
47
|
-
|
48
|
-
|
49
|
-
end
|
50
|
-
end
|
1
|
+
module Cxxproject
|
2
|
+
|
3
|
+
class ErrorDesc
|
4
|
+
def initialize
|
5
|
+
@severity = 255
|
6
|
+
end
|
7
|
+
attr_accessor :severity
|
8
|
+
attr_accessor :line_number
|
9
|
+
attr_accessor :message
|
10
|
+
attr_accessor :file_name
|
11
|
+
end
|
12
|
+
|
13
|
+
class ErrorParser
|
14
|
+
|
15
|
+
SEVERITY_INFO = 0
|
16
|
+
SEVERITY_WARNING = 1
|
17
|
+
SEVERITY_ERROR = 2
|
18
|
+
SEVERITY_OK = 255
|
19
|
+
|
20
|
+
def scan(consoleOutput, proj_dir)
|
21
|
+
raise "Use specialized classes only"
|
22
|
+
end
|
23
|
+
|
24
|
+
def get_severity(str)
|
25
|
+
if str == "info" || str == "note"
|
26
|
+
SEVERITY_INFO
|
27
|
+
elsif str == "warning"
|
28
|
+
SEVERITY_WARNING
|
29
|
+
elsif str == "error"
|
30
|
+
SEVERITY_ERROR
|
31
|
+
else
|
32
|
+
raise "Unknown severity: #{str}"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
# scan the output from the console line by line and return a list of ErrorDesc objects.
|
37
|
+
# for none-error/warning lines the description object will indicate that as severity 255
|
38
|
+
# for single line errors/warnings: description will contain severity, line-number, message and file-name
|
39
|
+
#
|
40
|
+
# for multi-line errors/warnings:
|
41
|
+
# one description object for each line, first one will contain all single line error information,
|
42
|
+
# all following desc.objects will just repeat the severity and include the message
|
43
|
+
#
|
44
|
+
def scan_lines(consoleOutput, proj_dir)
|
45
|
+
raise "Use specialized classes only"
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
@@ -1,30 +1,35 @@
|
|
1
|
-
require 'cxxproject/errorparser/error_parser'
|
2
|
-
|
3
|
-
module Cxxproject
|
4
|
-
class GCCCompilerErrorParser < ErrorParser
|
5
|
-
|
6
|
-
def initialize()
|
7
|
-
@error_expression = /([^:]+):([0-9]+)[:0-9]* (catastrophic |fatal )*([A-Za-z]+): (.+)/
|
8
|
-
end
|
9
|
-
|
10
|
-
def scan_lines(consoleOutput, proj_dir)
|
11
|
-
res = []
|
12
|
-
consoleOutputFullnames = ""
|
13
|
-
consoleOutput.each_line do |l|
|
14
|
-
d = ErrorDesc.new
|
15
|
-
scan_res = l.gsub(/\r\n?/, "").scan(@error_expression)
|
16
|
-
if scan_res.length > 0
|
17
|
-
d.file_name = File.expand_path(scan_res[0][0])
|
18
|
-
d.line_number = scan_res[0][1].to_i
|
19
|
-
d.message = scan_res[0][4]
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
end
|
1
|
+
require 'cxxproject/errorparser/error_parser'
|
2
|
+
|
3
|
+
module Cxxproject
|
4
|
+
class GCCCompilerErrorParser < ErrorParser
|
5
|
+
|
6
|
+
def initialize()
|
7
|
+
@error_expression = /([^:]+):([0-9]+)[:0-9]* (catastrophic |fatal )*([A-Za-z\._]+): (.+)/
|
8
|
+
end
|
9
|
+
|
10
|
+
def scan_lines(consoleOutput, proj_dir)
|
11
|
+
res = []
|
12
|
+
consoleOutputFullnames = ""
|
13
|
+
consoleOutput.each_line do |l|
|
14
|
+
d = ErrorDesc.new
|
15
|
+
scan_res = l.gsub(/\r\n?/, "").scan(@error_expression)
|
16
|
+
if scan_res.length > 0
|
17
|
+
d.file_name = File.expand_path(scan_res[0][0])
|
18
|
+
d.line_number = scan_res[0][1].to_i
|
19
|
+
d.message = scan_res[0][4]
|
20
|
+
if (scan_res[0][3].include?".")
|
21
|
+
d.severity = SEVERITY_ERROR
|
22
|
+
d.message = scan_res[0][3] + ": " + d.message
|
23
|
+
else
|
24
|
+
d.severity = get_severity(scan_res[0][3])
|
25
|
+
end
|
26
|
+
l.gsub!(scan_res[0][0],d.file_name)
|
27
|
+
end
|
28
|
+
res << d
|
29
|
+
consoleOutputFullnames << l
|
30
|
+
end
|
31
|
+
[res, consoleOutputFullnames]
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
@@ -1,29 +1,35 @@
|
|
1
|
-
require 'cxxproject/errorparser/error_parser'
|
2
|
-
|
3
|
-
module Cxxproject
|
4
|
-
class GCCLinkerErrorParser < ErrorParser
|
5
|
-
|
6
|
-
def initialize()
|
7
|
-
# todo: is every line an error?
|
8
|
-
# todo: some linker errors look like simple text, dunno how to parse properly...
|
9
|
-
# @error_expression1 = /(.*:\(\..*\)): (.*)/ # e.g. /c/Tool/Temp/ccAlar4R.o:x.cpp:(.text+0x17): undefined reference to `_a'
|
10
|
-
# @error_expression2 = /(.*):([0-9]+): (.*)/ # e.g. /usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/bin/ld:roodi.yml.a:1: syntax error
|
11
|
-
end
|
12
|
-
|
13
|
-
def scan_lines(consoleOutput, proj_dir)
|
14
|
-
res = []
|
15
|
-
consoleOutput.each_line do |l|
|
16
|
-
l.rstrip!
|
17
|
-
d = ErrorDesc.new
|
18
|
-
d.file_name = proj_dir
|
19
|
-
d.line_number = 0
|
20
|
-
d.message = l
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
end
|
1
|
+
require 'cxxproject/errorparser/error_parser'
|
2
|
+
|
3
|
+
module Cxxproject
|
4
|
+
class GCCLinkerErrorParser < ErrorParser
|
5
|
+
|
6
|
+
def initialize()
|
7
|
+
# todo: is every line an error?
|
8
|
+
# todo: some linker errors look like simple text, dunno how to parse properly...
|
9
|
+
# @error_expression1 = /(.*:\(\..*\)): (.*)/ # e.g. /c/Tool/Temp/ccAlar4R.o:x.cpp:(.text+0x17): undefined reference to `_a'
|
10
|
+
# @error_expression2 = /(.*):([0-9]+): (.*)/ # e.g. /usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/bin/ld:roodi.yml.a:1: syntax error
|
11
|
+
end
|
12
|
+
|
13
|
+
def scan_lines(consoleOutput, proj_dir)
|
14
|
+
res = []
|
15
|
+
consoleOutput.each_line do |l|
|
16
|
+
l.rstrip!
|
17
|
+
d = ErrorDesc.new
|
18
|
+
d.file_name = proj_dir
|
19
|
+
d.line_number = 0
|
20
|
+
d.message = l
|
21
|
+
if l.length == 0
|
22
|
+
d.severity = SEVERITY_OK
|
23
|
+
elsif l.include?" Warning:"
|
24
|
+
d.severity = SEVERITY_WARNING
|
25
|
+
else
|
26
|
+
d.severity = SEVERITY_ERROR
|
27
|
+
end
|
28
|
+
res << d
|
29
|
+
end
|
30
|
+
[res, consoleOutput]
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
@@ -1,30 +1,30 @@
|
|
1
|
-
require 'cxxproject/errorparser/error_parser'
|
2
|
-
|
3
|
-
module Cxxproject
|
4
|
-
class TICompilerErrorParser < ErrorParser
|
5
|
-
|
6
|
-
def initialize()
|
7
|
-
@error_expression = /\"([^,^\"]+)\", line ([0-9]+)[:0-9]* (catastrophic |fatal )*([A-Za-z]+): (.+)/
|
8
|
-
end
|
9
|
-
|
10
|
-
def scan_lines(consoleOutput, proj_dir)
|
11
|
-
res = []
|
12
|
-
consoleOutputFullnames = ""
|
13
|
-
consoleOutput.each_line do |l|
|
14
|
-
d = ErrorDesc.new
|
15
|
-
scan_res = l.gsub(/\r\n?/, "").scan(@error_expression)
|
16
|
-
if scan_res.length > 0
|
17
|
-
d.file_name = File.expand_path(scan_res[0][0])
|
18
|
-
d.line_number = scan_res[0][1].to_i
|
19
|
-
d.message = scan_res[0][4]
|
20
|
-
d.severity = get_severity(scan_res[0][3])
|
21
|
-
l.gsub!(scan_res[0][0],d.file_name)
|
22
|
-
end
|
23
|
-
res << d
|
24
|
-
consoleOutputFullnames << l
|
25
|
-
end
|
26
|
-
[res, consoleOutputFullnames]
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
end
|
1
|
+
require 'cxxproject/errorparser/error_parser'
|
2
|
+
|
3
|
+
module Cxxproject
|
4
|
+
class TICompilerErrorParser < ErrorParser
|
5
|
+
|
6
|
+
def initialize()
|
7
|
+
@error_expression = /\"([^,^\"]+)\", line ([0-9]+)[:0-9]* (catastrophic |fatal )*([A-Za-z]+): (.+)/
|
8
|
+
end
|
9
|
+
|
10
|
+
def scan_lines(consoleOutput, proj_dir)
|
11
|
+
res = []
|
12
|
+
consoleOutputFullnames = ""
|
13
|
+
consoleOutput.each_line do |l|
|
14
|
+
d = ErrorDesc.new
|
15
|
+
scan_res = l.gsub(/\r\n?/, "").scan(@error_expression)
|
16
|
+
if scan_res.length > 0
|
17
|
+
d.file_name = File.expand_path(scan_res[0][0])
|
18
|
+
d.line_number = scan_res[0][1].to_i
|
19
|
+
d.message = scan_res[0][4]
|
20
|
+
d.severity = get_severity(scan_res[0][3])
|
21
|
+
l.gsub!(scan_res[0][0],d.file_name)
|
22
|
+
end
|
23
|
+
res << d
|
24
|
+
consoleOutputFullnames << l
|
25
|
+
end
|
26
|
+
[res, consoleOutputFullnames]
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|