cxxproject 0.5.74 → 0.5.75
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/cxxproject/buildingblocks/building_block.rb +12 -27
- data/lib/cxxproject/buildingblocks/executable.rb +4 -15
- data/lib/cxxproject/buildingblocks/has_sources_mixin.rb +1 -12
- data/lib/cxxproject/buildingblocks/lint.rb +1 -8
- data/lib/cxxproject/buildingblocks/source_library.rb +5 -39
- data/lib/cxxproject/ext/file.rb +13 -3
- data/lib/cxxproject/toolchain/gcc_param.rb +6 -6
- data/lib/cxxproject/toolchain/greenhills.rb +50 -50
- data/lib/cxxproject/toolchain/keil.rb +49 -49
- data/lib/cxxproject/version.rb +1 -1
- data/spec/building_block_spec.rb +2 -2
- metadata +50 -52
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: faf4f189aeccaaf3a6feea85cc6554e59132ebb9
|
4
|
+
data.tar.gz: d17ac365b7230c6355f05b766f140afa55858b24
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b1c39297b27b72298f4471933c89ee544a0b4f6fba3bf80a26fed0ad6b98d5b39004a0493bbb6b52d21aa383d10715007e5e4dc21da71613ec5d141276b67924
|
7
|
+
data.tar.gz: 29424d18d3ec1cbb327d09d2046e65ed7c83fdc7b199173c6794df9d043eec410d9f19744b00c503883df46a97cdc1740b8fe9cedad6833767d9cfa0d25ab6ce
|
@@ -25,8 +25,8 @@ module Cxxproject
|
|
25
25
|
|
26
26
|
attr_reader :project_dir
|
27
27
|
attr_accessor :output_dir
|
28
|
+
attr_accessor :output_dir_relPath
|
28
29
|
attr_accessor :pre_step
|
29
|
-
attr_reader :output_dir_abs
|
30
30
|
|
31
31
|
def set_name(x)
|
32
32
|
@name = x
|
@@ -55,34 +55,25 @@ module Cxxproject
|
|
55
55
|
|
56
56
|
def set_project_dir(x)
|
57
57
|
@project_dir = File.expand_path(x)
|
58
|
-
if @output_dir_abs
|
59
|
-
@output_dir_relPath = File.rel_from_to_project(@project_dir, @output_dir)
|
60
|
-
end
|
61
58
|
self
|
62
59
|
end
|
63
60
|
|
64
|
-
# if output dir is absolute, -L and -l is used for linker ("linux mode")
|
65
61
|
def set_output_dir(x)
|
66
62
|
return self if @output_dir
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
if @project_dir
|
71
|
-
@output_dir_relPath = File.rel_from_to_project(@project_dir, @output_dir)
|
63
|
+
|
64
|
+
if not @project_dir
|
65
|
+
raise "Error: set project dir before output dir!"
|
72
66
|
end
|
73
|
-
self
|
74
|
-
end
|
75
67
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
def calc_complete_output_dir
|
81
|
-
if @output_dir_abs
|
82
|
-
@output_dir
|
68
|
+
if File.is_absolute?(x)
|
69
|
+
@output_dir = x
|
70
|
+
@output_dir_relPath = File.rel_from_to_project(@project_dir, x)
|
83
71
|
else
|
84
|
-
File.join(@project_dir,
|
72
|
+
@output_dir = File.join(@project_dir, x)
|
73
|
+
@output_dir_relPath = x
|
85
74
|
end
|
75
|
+
|
76
|
+
self
|
86
77
|
end
|
87
78
|
|
88
79
|
def initialize(name)
|
@@ -93,8 +84,6 @@ module Cxxproject
|
|
93
84
|
@project_dir = nil
|
94
85
|
@tcs = nil
|
95
86
|
@output_dir = nil
|
96
|
-
@output_dir_abs = false
|
97
|
-
@complete_output_dir = nil
|
98
87
|
@pre_step = nil
|
99
88
|
@printedCmdAlternate = false
|
100
89
|
@lastCommand = nil
|
@@ -151,11 +140,7 @@ module Cxxproject
|
|
151
140
|
taskOfFile.enhance([d])
|
152
141
|
|
153
142
|
if addDirToCleanTask
|
154
|
-
|
155
|
-
CLEAN.include(file)
|
156
|
-
else
|
157
|
-
CLEAN.include(complete_output_dir)
|
158
|
-
end
|
143
|
+
CLEAN.include(@output_dir)
|
159
144
|
end
|
160
145
|
end
|
161
146
|
|
@@ -38,23 +38,12 @@ module Cxxproject
|
|
38
38
|
@exe_name = name
|
39
39
|
end
|
40
40
|
|
41
|
-
def get_executable_name() # relative path
|
42
|
-
|
43
|
-
|
44
|
-
parts = [@output_dir]
|
45
|
-
|
46
|
-
if @output_dir_abs
|
47
|
-
parts = [@output_dir_relPath] if @output_dir_relPath
|
48
|
-
end
|
49
|
-
|
50
|
-
parts << "#{@name}#{@tcs[:LINKER][:OUTPUT_ENDING]}"
|
51
|
-
|
52
|
-
@exe_name = File.join(parts)
|
53
|
-
@exe_name
|
41
|
+
def get_executable_name() # maybe relative path
|
42
|
+
@exe_name ||= File.join([@output_dir_relPath, "#{@name}#{@tcs[:LINKER][:OUTPUT_ENDING]}"])
|
54
43
|
end
|
55
44
|
|
56
45
|
def get_task_name() # full path
|
57
|
-
@
|
46
|
+
@task_name ||= File.join([@output_dir, "#{@name}#{@tcs[:LINKER][:OUTPUT_ENDING]}"])
|
58
47
|
end
|
59
48
|
|
60
49
|
def collect_unique(array, set)
|
@@ -133,7 +122,6 @@ module Cxxproject
|
|
133
122
|
#
|
134
123
|
def convert_to_rake()
|
135
124
|
object_multitask = prepare_tasks_for_objects()
|
136
|
-
|
137
125
|
linker = @tcs[:LINKER]
|
138
126
|
|
139
127
|
res = typed_file_task Rake::Task::EXECUTABLE, get_task_name => object_multitask do
|
@@ -196,6 +184,7 @@ module Cxxproject
|
|
196
184
|
check_config_file()
|
197
185
|
end
|
198
186
|
end
|
187
|
+
|
199
188
|
res.immediate_output = true
|
200
189
|
res.enhance(@config_files)
|
201
190
|
res.enhance([@project_dir + "/" + @linker_script]) if @linker_script
|
@@ -103,14 +103,7 @@ module Cxxproject
|
|
103
103
|
end
|
104
104
|
|
105
105
|
def get_object_file(sourceRel)
|
106
|
-
parts = [@
|
107
|
-
if @output_dir_abs
|
108
|
-
parts = [@output_dir_relPath] if @output_dir_relPath
|
109
|
-
parts << 'objects'
|
110
|
-
parts << @name
|
111
|
-
end
|
112
|
-
|
113
|
-
parts << sourceRel.chomp(File.extname(sourceRel)).gsub(/\.\./, "##")
|
106
|
+
parts = [@output_dir_relPath, sourceRel.chomp(File.extname(sourceRel)).gsub(/\.\./, "##")]
|
114
107
|
File.join(parts) + (Rake::application.preproFlags ? ".i" : ".o")
|
115
108
|
end
|
116
109
|
|
@@ -374,10 +367,6 @@ module Cxxproject
|
|
374
367
|
end
|
375
368
|
|
376
369
|
def prepare_tasks_for_objects
|
377
|
-
if (@output_dir_abs)
|
378
|
-
CLEAN.include(@output_dir + "/objects/" + @name)
|
379
|
-
end
|
380
|
-
|
381
370
|
@objects = []
|
382
371
|
t = multitask get_sources_task_name
|
383
372
|
t.type = Rake::Task::SOURCEMULTI
|
@@ -20,14 +20,7 @@ module Cxxproject
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def get_task_name()
|
23
|
-
|
24
|
-
|
25
|
-
parts = [@output_dir]
|
26
|
-
parts << 'lint' if @output_dir_abs
|
27
|
-
parts << "#{@name}_lint"
|
28
|
-
@task_name = File.join(parts)
|
29
|
-
@task_name = @project_dir + "/" + @task_name unless @output_dir_abs
|
30
|
-
@task_name
|
23
|
+
@task_name ||= File.join([@output_dir, "#{@name}_lint"])
|
31
24
|
end
|
32
25
|
|
33
26
|
def convert_to_rake()
|
@@ -16,39 +16,16 @@ module Cxxproject
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def complete_init()
|
19
|
-
|
20
|
-
add_lib_element(HasLibraries::SEARCH_PATH, File.join(@output_dir, 'libs'), true)
|
21
|
-
add_lib_element(HasLibraries::LIB, @name, true)
|
22
|
-
else
|
23
|
-
add_lib_element(HasLibraries::LIB_WITH_PATH, File.join(@output_dir,"lib#{@name}.a"), true)
|
24
|
-
end
|
19
|
+
add_lib_element(HasLibraries::LIB_WITH_PATH, get_archive_name, true)
|
25
20
|
super
|
26
21
|
end
|
27
22
|
|
28
23
|
def get_archive_name() # relative path
|
29
|
-
|
30
|
-
parts = [@output_dir]
|
31
|
-
|
32
|
-
if @output_dir_abs
|
33
|
-
parts = [@output_dir_relPath] if @output_dir_relPath
|
34
|
-
parts << 'libs'
|
35
|
-
end
|
36
|
-
|
37
|
-
parts << "lib#{@name}.a"
|
38
|
-
|
39
|
-
@archive_name = File.join(parts)
|
40
|
-
@archive_name
|
24
|
+
@archive_name ||= File.join([@output_dir_relPath, "lib#{@name}.a"])
|
41
25
|
end
|
42
26
|
|
43
27
|
def get_task_name() # full path
|
44
|
-
|
45
|
-
|
46
|
-
parts = [@output_dir]
|
47
|
-
parts << 'libs' if @output_dir_abs
|
48
|
-
parts << "lib#{@name}.a"
|
49
|
-
@task_name = File.join(parts)
|
50
|
-
@task_name = @project_dir + "/" + @task_name unless @output_dir_abs
|
51
|
-
@task_name
|
28
|
+
@task_name ||= File.join([@output_dir, "lib#{@name}.a"])
|
52
29
|
end
|
53
30
|
|
54
31
|
# task that will link the given object files to a static lib
|
@@ -60,15 +37,8 @@ module Cxxproject
|
|
60
37
|
res = typed_file_task Rake::Task::LIBRARY, get_task_name => object_multitask do
|
61
38
|
dir = @project_dir
|
62
39
|
objs = @objects
|
63
|
-
aname = get_archive_name
|
40
|
+
aname = get_archive_name
|
64
41
|
|
65
|
-
if @output_dir_abs
|
66
|
-
dir = @output_dir
|
67
|
-
prefix = File.rel_from_to_project(@project_dir, @output_dir)
|
68
|
-
objs.map! { |m| m[prefix.length..-1] }
|
69
|
-
aname = aname[prefix.length..-1]
|
70
|
-
end
|
71
|
-
|
72
42
|
if (objs.length != 0 or not File.exist?(get_task_name))
|
73
43
|
Dir.chdir(dir) do
|
74
44
|
if File.exists?(aname)
|
@@ -117,11 +87,7 @@ module Cxxproject
|
|
117
87
|
cleanTask = task get_task_name+"Clean" do
|
118
88
|
Dir.chdir(@project_dir) do
|
119
89
|
if (calc_sources_to_build(true).length != 0 or not File.exist?(get_task_name))
|
120
|
-
|
121
|
-
FileUtils.rm_rf(file)
|
122
|
-
else
|
123
|
-
FileUtils.rm_rf(complete_output_dir)
|
124
|
-
end
|
90
|
+
FileUtils.rm_rf(@output_dir)
|
125
91
|
end
|
126
92
|
end
|
127
93
|
end
|
data/lib/cxxproject/ext/file.rb
CHANGED
@@ -12,6 +12,7 @@ class File
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
+
# seems both are rel or both are abs in all cases
|
15
16
|
def self.rel_from_to_project(from,to,endWithSlash = true)
|
16
17
|
return nil if from.nil? or to.nil?
|
17
18
|
|
@@ -25,15 +26,24 @@ class File
|
|
25
26
|
i = 0
|
26
27
|
|
27
28
|
# path letter in windows may be case different
|
29
|
+
toIsWindowsAbs = false
|
28
30
|
if toSplitted[0].length > 1 and fromSplitted[0].length > 1
|
29
31
|
if Cxxproject::Utils.old_ruby?
|
30
|
-
|
32
|
+
toIsWindowsAbs = toSplitted[0][1] == 58
|
33
|
+
i = 1 if toIsWindowsAbs and fromSplitted[0][1] == 58 and toSplitted[0][0].downcase == fromSplitted[0][0].downcase
|
31
34
|
else
|
32
|
-
|
35
|
+
toIsWindowsAbs = toSplitted[0][1] == ':'
|
36
|
+
i = 1 if toIsWindowsAbs and fromSplitted[0][1] == ':' and toSplitted[0][0].downcase == fromSplitted[0][0].downcase
|
33
37
|
end
|
34
38
|
end
|
35
39
|
|
36
|
-
|
40
|
+
if (toIsWindowsAbs and i==0)
|
41
|
+
res = to
|
42
|
+
res += "/" if endWithSlash
|
43
|
+
return res
|
44
|
+
end
|
45
|
+
|
46
|
+
while i < max
|
37
47
|
break if toSplitted[i] != fromSplitted[i]
|
38
48
|
i += 1
|
39
49
|
end
|
@@ -1,51 +1,51 @@
|
|
1
|
-
require 'cxxproject/toolchain/provider'
|
2
|
-
require 'cxxproject/utils/utils'
|
3
|
-
require 'cxxproject/errorparser/greenhills_compiler_error_parser'
|
4
|
-
require 'cxxproject/errorparser/greenhills_linker_error_parser'
|
5
|
-
|
6
|
-
module Cxxproject
|
7
|
-
module Toolchain
|
8
|
-
|
9
|
-
GreenHillsChain = Provider.add("GreenHills")
|
10
|
-
|
11
|
-
GreenHillsChain[:COMPILER][:C].update({
|
12
|
-
:COMMAND => "cxppc",
|
13
|
-
:FLAGS => "",
|
14
|
-
:DEFINE_FLAG => "-D",
|
1
|
+
require 'cxxproject/toolchain/provider'
|
2
|
+
require 'cxxproject/utils/utils'
|
3
|
+
require 'cxxproject/errorparser/greenhills_compiler_error_parser'
|
4
|
+
require 'cxxproject/errorparser/greenhills_linker_error_parser'
|
5
|
+
|
6
|
+
module Cxxproject
|
7
|
+
module Toolchain
|
8
|
+
|
9
|
+
GreenHillsChain = Provider.add("GreenHills")
|
10
|
+
|
11
|
+
GreenHillsChain[:COMPILER][:C].update({
|
12
|
+
:COMMAND => "cxppc",
|
13
|
+
:FLAGS => "",
|
14
|
+
:DEFINE_FLAG => "-D",
|
15
15
|
:OBJECT_FILE_FLAG => "-o ",
|
16
|
-
:INCLUDE_PATH_FLAG => "-I",
|
17
|
-
:COMPILE_FLAGS => "-c",
|
18
|
-
:DEP_FLAGS => "-MD",
|
19
|
-
:DEP_FLAGS_FILENAME => false,
|
20
|
-
:PREPRO_FLAGS => "-P"
|
21
|
-
})
|
22
|
-
|
23
|
-
GreenHillsChain[:COMPILER][:CPP] = Utils.deep_copy(GreenHillsChain[:COMPILER][:C])
|
24
|
-
GreenHillsChain[:COMPILER][:CPP][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:CPP][:SOURCE_FILE_ENDINGS]
|
25
|
-
|
26
|
-
GreenHillsChain[:COMPILER][:ASM] = Utils.deep_copy(GreenHillsChain[:COMPILER][:C])
|
27
|
-
GreenHillsChain[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
|
28
|
-
GreenHillsChain[:COMPILER][:ASM][:PREPRO_FLAGS] = ""
|
29
|
-
|
30
|
-
GreenHillsChain[:ARCHIVER][:COMMAND] = "cxppc"
|
31
|
-
GreenHillsChain[:ARCHIVER][:ARCHIVE_FLAGS] = "-archive -o"
|
32
|
-
|
33
|
-
GreenHillsChain[:LINKER][:COMMAND] = "cxppc" # ??
|
34
|
-
GreenHillsChain[:LINKER][:SCRIPT] = "-T" # -T file.ld
|
35
|
-
GreenHillsChain[:LINKER][:USER_LIB_FLAG] = "-l" # user lib not supported? same as lib...
|
36
|
-
GreenHillsChain[:LINKER][:EXE_FLAG] = "-o"
|
37
|
-
GreenHillsChain[:LINKER][:LIB_FLAG] = "-l"
|
38
|
-
GreenHillsChain[:LINKER][:LIB_PATH_FLAG] = "-L"
|
39
|
-
GreenHillsChain[:LINKER][:MAP_FILE_FLAG] = "-map=" # -map=filename
|
40
|
-
GreenHillsChain[:LINKER][:MAP_FILE_PIPE] = false
|
41
|
-
GreenHillsChain[:LINKER][:OUTPUT_ENDING] = ".elf"
|
42
|
-
|
43
|
-
GreenHillsCompilerErrorParser = GreenHillsCompilerErrorParser.new
|
44
|
-
GreenHillsChain[:COMPILER][:C][:ERROR_PARSER] = GreenHillsCompilerErrorParser
|
45
|
-
GreenHillsChain[:COMPILER][:CPP][:ERROR_PARSER] = GreenHillsCompilerErrorParser
|
46
|
-
GreenHillsChain[:COMPILER][:ASM][:ERROR_PARSER] = GreenHillsCompilerErrorParser
|
47
|
-
GreenHillsChain[:ARCHIVER][:ERROR_PARSER] = GreenHillsCompilerErrorParser
|
48
|
-
GreenHillsChain[:LINKER][:ERROR_PARSER] = GreenHillsLinkerErrorParser.new
|
49
|
-
|
50
|
-
end
|
51
|
-
end
|
16
|
+
:INCLUDE_PATH_FLAG => "-I",
|
17
|
+
:COMPILE_FLAGS => "-c",
|
18
|
+
:DEP_FLAGS => "-MD",
|
19
|
+
:DEP_FLAGS_FILENAME => false,
|
20
|
+
:PREPRO_FLAGS => "-P"
|
21
|
+
})
|
22
|
+
|
23
|
+
GreenHillsChain[:COMPILER][:CPP] = Utils.deep_copy(GreenHillsChain[:COMPILER][:C])
|
24
|
+
GreenHillsChain[:COMPILER][:CPP][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:CPP][:SOURCE_FILE_ENDINGS]
|
25
|
+
|
26
|
+
GreenHillsChain[:COMPILER][:ASM] = Utils.deep_copy(GreenHillsChain[:COMPILER][:C])
|
27
|
+
GreenHillsChain[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
|
28
|
+
GreenHillsChain[:COMPILER][:ASM][:PREPRO_FLAGS] = ""
|
29
|
+
|
30
|
+
GreenHillsChain[:ARCHIVER][:COMMAND] = "cxppc"
|
31
|
+
GreenHillsChain[:ARCHIVER][:ARCHIVE_FLAGS] = "-archive -o"
|
32
|
+
|
33
|
+
GreenHillsChain[:LINKER][:COMMAND] = "cxppc" # ??
|
34
|
+
GreenHillsChain[:LINKER][:SCRIPT] = "-T" # -T file.ld
|
35
|
+
GreenHillsChain[:LINKER][:USER_LIB_FLAG] = "-l" # user lib not supported? same as lib...
|
36
|
+
GreenHillsChain[:LINKER][:EXE_FLAG] = "-o"
|
37
|
+
GreenHillsChain[:LINKER][:LIB_FLAG] = "-l"
|
38
|
+
GreenHillsChain[:LINKER][:LIB_PATH_FLAG] = "-L"
|
39
|
+
GreenHillsChain[:LINKER][:MAP_FILE_FLAG] = "-map=" # -map=filename
|
40
|
+
GreenHillsChain[:LINKER][:MAP_FILE_PIPE] = false
|
41
|
+
GreenHillsChain[:LINKER][:OUTPUT_ENDING] = ".elf"
|
42
|
+
|
43
|
+
GreenHillsCompilerErrorParser = GreenHillsCompilerErrorParser.new
|
44
|
+
GreenHillsChain[:COMPILER][:C][:ERROR_PARSER] = GreenHillsCompilerErrorParser
|
45
|
+
GreenHillsChain[:COMPILER][:CPP][:ERROR_PARSER] = GreenHillsCompilerErrorParser
|
46
|
+
GreenHillsChain[:COMPILER][:ASM][:ERROR_PARSER] = GreenHillsCompilerErrorParser
|
47
|
+
GreenHillsChain[:ARCHIVER][:ERROR_PARSER] = GreenHillsCompilerErrorParser
|
48
|
+
GreenHillsChain[:LINKER][:ERROR_PARSER] = GreenHillsLinkerErrorParser.new
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
@@ -1,52 +1,52 @@
|
|
1
|
-
require 'cxxproject/utils/utils'
|
2
|
-
require 'cxxproject/toolchain/provider'
|
3
|
-
require 'cxxproject/errorparser/error_parser'
|
4
|
-
require 'cxxproject/errorparser/keil_compiler_error_parser'
|
5
|
-
require 'cxxproject/errorparser/keil_linker_error_parser'
|
6
|
-
|
7
|
-
module Cxxproject
|
8
|
-
module Toolchain
|
1
|
+
require 'cxxproject/utils/utils'
|
2
|
+
require 'cxxproject/toolchain/provider'
|
3
|
+
require 'cxxproject/errorparser/error_parser'
|
4
|
+
require 'cxxproject/errorparser/keil_compiler_error_parser'
|
5
|
+
require 'cxxproject/errorparser/keil_linker_error_parser'
|
9
6
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
7
|
+
module Cxxproject
|
8
|
+
module Toolchain
|
9
|
+
|
10
|
+
KeilChain = Provider.add("Keil")
|
11
|
+
|
12
|
+
KeilChain[:COMPILER][:CPP].update({
|
13
|
+
:COMMAND => "armcc",
|
14
|
+
:DEFINE_FLAG => "-D",
|
15
15
|
:OBJECT_FILE_FLAG => "-o ",
|
16
|
-
:INCLUDE_PATH_FLAG => "-I",
|
17
|
-
:COMPILE_FLAGS => "-c ",
|
18
|
-
:DEP_FLAGS => "--depend=",
|
19
|
-
:DEP_FLAGS_SPACE => false,
|
20
|
-
:PREPRO_FLAGS => "-E -P"
|
21
|
-
})
|
22
|
-
|
23
|
-
KeilChain[:COMPILER][:C] = Utils.deep_copy(KeilChain[:COMPILER][:CPP])
|
24
|
-
KeilChain[:COMPILER][:C][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:C][:SOURCE_FILE_ENDINGS]
|
25
|
-
|
26
|
-
KeilChain[:COMPILER][:ASM] = Utils.deep_copy(KeilChain[:COMPILER][:C])
|
27
|
-
KeilChain[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
|
28
|
-
KeilChain[:COMPILER][:ASM][:COMMAND] = "armasm"
|
29
|
-
KeilChain[:COMPILER][:ASM][:COMPILE_FLAGS] = ""
|
30
|
-
|
31
|
-
KeilChain[:ARCHIVER][:COMMAND] = "armar"
|
32
|
-
KeilChain[:ARCHIVER][:ARCHIVE_FLAGS] = "--create"
|
33
|
-
|
34
|
-
KeilChain[:LINKER][:COMMAND] = "armlink"
|
35
|
-
KeilChain[:LINKER][:SCRIPT] = "--scatter"
|
36
|
-
KeilChain[:LINKER][:USER_LIB_FLAG] = ""
|
37
|
-
KeilChain[:LINKER][:EXE_FLAG] = "-o"
|
38
|
-
KeilChain[:LINKER][:LIB_FLAG] = ""
|
39
|
-
KeilChain[:LINKER][:LIB_PATH_FLAG] = "--userlibpath="
|
40
|
-
KeilChain[:LINKER][:MAP_FILE_FLAG] = "--map --list="
|
41
|
-
KeilChain[:LINKER][:MAP_FILE_PIPE] = false
|
42
|
-
KeilChain[:LINKER][:LIST_MODE] = true
|
43
|
-
|
44
|
-
keilCompilerErrorParser = KeilCompilerErrorParser.new
|
45
|
-
KeilChain[:COMPILER][:C][:ERROR_PARSER] = keilCompilerErrorParser
|
46
|
-
KeilChain[:COMPILER][:CPP][:ERROR_PARSER] = keilCompilerErrorParser
|
47
|
-
KeilChain[:COMPILER][:ASM][:ERROR_PARSER] = keilCompilerErrorParser
|
48
|
-
KeilChain[:ARCHIVER][:ERROR_PARSER] = keilCompilerErrorParser
|
49
|
-
KeilChain[:LINKER][:ERROR_PARSER] = KeilLinkerErrorParser.new
|
16
|
+
:INCLUDE_PATH_FLAG => "-I",
|
17
|
+
:COMPILE_FLAGS => "-c ",
|
18
|
+
:DEP_FLAGS => "--depend=",
|
19
|
+
:DEP_FLAGS_SPACE => false,
|
20
|
+
:PREPRO_FLAGS => "-E -P"
|
21
|
+
})
|
22
|
+
|
23
|
+
KeilChain[:COMPILER][:C] = Utils.deep_copy(KeilChain[:COMPILER][:CPP])
|
24
|
+
KeilChain[:COMPILER][:C][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:C][:SOURCE_FILE_ENDINGS]
|
25
|
+
|
26
|
+
KeilChain[:COMPILER][:ASM] = Utils.deep_copy(KeilChain[:COMPILER][:C])
|
27
|
+
KeilChain[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
|
28
|
+
KeilChain[:COMPILER][:ASM][:COMMAND] = "armasm"
|
29
|
+
KeilChain[:COMPILER][:ASM][:COMPILE_FLAGS] = ""
|
30
|
+
|
31
|
+
KeilChain[:ARCHIVER][:COMMAND] = "armar"
|
32
|
+
KeilChain[:ARCHIVER][:ARCHIVE_FLAGS] = "--create"
|
33
|
+
|
34
|
+
KeilChain[:LINKER][:COMMAND] = "armlink"
|
35
|
+
KeilChain[:LINKER][:SCRIPT] = "--scatter"
|
36
|
+
KeilChain[:LINKER][:USER_LIB_FLAG] = ""
|
37
|
+
KeilChain[:LINKER][:EXE_FLAG] = "-o"
|
38
|
+
KeilChain[:LINKER][:LIB_FLAG] = ""
|
39
|
+
KeilChain[:LINKER][:LIB_PATH_FLAG] = "--userlibpath="
|
40
|
+
KeilChain[:LINKER][:MAP_FILE_FLAG] = "--map --list="
|
41
|
+
KeilChain[:LINKER][:MAP_FILE_PIPE] = false
|
42
|
+
KeilChain[:LINKER][:LIST_MODE] = true
|
43
|
+
|
44
|
+
keilCompilerErrorParser = KeilCompilerErrorParser.new
|
45
|
+
KeilChain[:COMPILER][:C][:ERROR_PARSER] = keilCompilerErrorParser
|
46
|
+
KeilChain[:COMPILER][:CPP][:ERROR_PARSER] = keilCompilerErrorParser
|
47
|
+
KeilChain[:COMPILER][:ASM][:ERROR_PARSER] = keilCompilerErrorParser
|
48
|
+
KeilChain[:ARCHIVER][:ERROR_PARSER] = keilCompilerErrorParser
|
49
|
+
KeilChain[:LINKER][:ERROR_PARSER] = KeilLinkerErrorParser.new
|
50
50
|
|
51
|
-
end
|
52
|
-
end
|
51
|
+
end
|
52
|
+
end
|
data/lib/cxxproject/version.rb
CHANGED
data/spec/building_block_spec.rb
CHANGED
@@ -42,8 +42,8 @@ describe Cxxproject::BuildingBlock do
|
|
42
42
|
cxx.prepare_block(lib1)
|
43
43
|
cxx.prepare_block(lib2)
|
44
44
|
|
45
|
-
lib1.
|
46
|
-
lib2.
|
45
|
+
lib1.output_dir.should eq(File.join(Dir.pwd, 'build'))
|
46
|
+
lib2.output_dir.should eq(File.join(Dir.pwd, 'lib2', 'build2'))
|
47
47
|
end
|
48
48
|
|
49
49
|
it 'should raise exception if building block cannot be resolved' do
|
metadata
CHANGED
@@ -1,48 +1,52 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: cxxproject
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 0.5.74
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.75
|
6
5
|
platform: ruby
|
7
|
-
authors:
|
6
|
+
authors:
|
8
7
|
- oliver mueller
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2014-11-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
16
14
|
name: highline
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
- - ">="
|
22
|
-
- !ruby/object:Gem::Version
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
23
19
|
version: 1.6.0
|
24
20
|
type: :runtime
|
25
|
-
version_requirements: *id001
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: colored
|
28
21
|
prerelease: false
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.6.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: colored
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
35
34
|
type: :runtime
|
36
|
-
|
37
|
-
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: |2
|
42
|
+
Some more high level building blocks for cpp projects.
|
38
43
|
email: oliver.mueller@gmail.com
|
39
|
-
executables:
|
44
|
+
executables:
|
40
45
|
- cxx
|
41
46
|
extensions: []
|
42
|
-
|
43
47
|
extra_rdoc_files: []
|
44
|
-
|
45
|
-
|
48
|
+
files:
|
49
|
+
- lib/cxxproject.rb
|
46
50
|
- lib/cxxproject/buildingblocks/binary_library.rb
|
47
51
|
- lib/cxxproject/buildingblocks/building_block.rb
|
48
52
|
- lib/cxxproject/buildingblocks/command_line.rb
|
@@ -103,7 +107,6 @@ files:
|
|
103
107
|
- lib/cxxproject/utils/utils.rb
|
104
108
|
- lib/cxxproject/utils/valgrind.rb
|
105
109
|
- lib/cxxproject/version.rb
|
106
|
-
- lib/cxxproject.rb
|
107
110
|
- lib/tools/project_wizard.rb
|
108
111
|
- Rakefile.rb
|
109
112
|
- spec/building_block_spec.rb
|
@@ -121,38 +124,33 @@ files:
|
|
121
124
|
- spec/testdata/multiple_levels/libs/lib1/project.rb
|
122
125
|
- spec/testdata/multiple_levels/libs/lib2/project.rb
|
123
126
|
- spec/testdata/multiple_levels/mainproject/basic/project.rb
|
124
|
-
- spec/testdata/onlyOneHeader/project.rb
|
125
127
|
- spec/testdata/onlyOneHeader/Rakefile.rb
|
128
|
+
- spec/testdata/onlyOneHeader/project.rb
|
126
129
|
- spec/toolchain_spec.rb
|
127
|
-
- lib/tools/project.rb.template
|
128
130
|
- lib/tools/Rakefile.rb.template
|
131
|
+
- lib/tools/project.rb.template
|
129
132
|
- bin/cxx
|
130
133
|
homepage: https://github.com/marcmo/cxxproject
|
131
134
|
licenses: []
|
132
|
-
|
135
|
+
metadata: {}
|
133
136
|
post_install_message:
|
134
137
|
rdoc_options: []
|
135
|
-
|
136
|
-
require_paths:
|
138
|
+
require_paths:
|
137
139
|
- lib
|
138
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
- !ruby/object:Gem::Version
|
149
|
-
version: "0"
|
140
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - '>='
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
145
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
150
150
|
requirements: []
|
151
|
-
|
152
151
|
rubyforge_project:
|
153
|
-
rubygems_version:
|
152
|
+
rubygems_version: 2.0.14
|
154
153
|
signing_key:
|
155
|
-
specification_version:
|
154
|
+
specification_version: 4
|
156
155
|
summary: Cpp Support for Rake.
|
157
156
|
test_files: []
|
158
|
-
|