rakeoe 0.0.7 → 0.0.8
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.
- checksums.yaml +4 -4
- data/lib/rakeoe/binary_base.rb +0 -17
- data/lib/rakeoe/config.rb +12 -9
- data/lib/rakeoe/defaults.rb +58 -0
- data/lib/rakeoe/key_value_reader.rb +9 -0
- data/lib/rakeoe/prj_file_cache.rb +7 -0
- data/lib/rakeoe/version.rb +1 -1
- data/lib/rakeoe.rb +4 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e86c7488b09a2adbd7eb607162e5301d0f9d5cc
|
4
|
+
data.tar.gz: 0e553eaa97e2a661b5cd994f702e084cd1ba96ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07da39a5f073ec28a06cc956b7d2a5bef9b269daf380426506a1f2723626c86b3668c75c182660f92ec9aef1face0d923d356e45b3df2c2960d574c14bed5f63
|
7
|
+
data.tar.gz: 1474b08247648bc36072129cbd8a61c3358212ad32cd751ae77cf4145eabf98f182ae4bb2b829d8bbfa266259725831b33bda776a294d25b8c2c58236b5fadac
|
data/lib/rakeoe/binary_base.rb
CHANGED
@@ -28,7 +28,6 @@ module RakeOE
|
|
28
28
|
|
29
29
|
@name = params[:name]
|
30
30
|
@settings = params[:settings]
|
31
|
-
fixup_settings
|
32
31
|
@src_dir = @settings['PRJ_HOME']
|
33
32
|
@bin_dir = params[:bin_dir]
|
34
33
|
@tc = params[:toolchain]
|
@@ -97,22 +96,6 @@ module RakeOE
|
|
97
96
|
end
|
98
97
|
|
99
98
|
|
100
|
-
# Fixes any missing settings from project file
|
101
|
-
def fixup_settings
|
102
|
-
@settings['ADD_SOURCE_DIRS'] ||= ''
|
103
|
-
@settings['IGNORED_SOURCES'] ||= ''
|
104
|
-
@settings['EXPORTED_INC_DIRS'] ||= ''
|
105
|
-
@settings['ADD_INC_DIRS'] ||= ''
|
106
|
-
@settings['TEST_SOURCE_DIRS'] ||= ''
|
107
|
-
@settings['ADD_CFLAGS'] ||= ''
|
108
|
-
@settings['ADD_CXXFLAGS'] ||= ''
|
109
|
-
@settings['ADD_LIBS'] ||= ''
|
110
|
-
@settings['ADD_LDFLAGS'] ||= ''
|
111
|
-
@settings['USE_QT'] ||= ''
|
112
|
-
@settings['IGNORED_PLATFORMS'] ||= ''
|
113
|
-
end
|
114
|
-
|
115
|
-
|
116
99
|
# Check params given to #initialize
|
117
100
|
#
|
118
101
|
# @param [Hash] params
|
data/lib/rakeoe/config.rb
CHANGED
@@ -24,7 +24,7 @@ module RakeOE
|
|
24
24
|
# :moc_header => '.h', Qt MOC file header
|
25
25
|
# :moc_source => '.cpp' Qt MOC file source
|
26
26
|
# }
|
27
|
-
@suffixes=RakeOE::
|
27
|
+
@suffixes=RakeOE::Default.suffixes
|
28
28
|
|
29
29
|
# Directories used for the project
|
30
30
|
# This is a hash object with the following key => value mappings (examples):
|
@@ -33,7 +33,7 @@ module RakeOE
|
|
33
33
|
# :libs => %w[src/lib1 src/lib2], Library top level directories
|
34
34
|
# :build => 'build' Build top level directory
|
35
35
|
# }
|
36
|
-
@directories=RakeOE::
|
36
|
+
@directories=RakeOE::Default.dirs
|
37
37
|
|
38
38
|
# Platform configuration used for the project
|
39
39
|
# This is the absolute path to the platform definition file
|
@@ -49,29 +49,32 @@ module RakeOE
|
|
49
49
|
#
|
50
50
|
# This parameter can be overridden via environment variable RELEASE. If the latter
|
51
51
|
# is defined, this configuration variable has the value "release"
|
52
|
-
@release = ENV['RELEASE'].nil? ? RakeOE::
|
52
|
+
@release = ENV['RELEASE'].nil? ? RakeOE::Default.release : 'release'
|
53
53
|
|
54
54
|
# Test framework used for linking test case binaries
|
55
55
|
# This takes the name of the test framework that has to be integrated into the project
|
56
56
|
# library path.
|
57
57
|
# RakeOE does not require a specific test framework, but CppUTest and CUnit are proposals
|
58
58
|
# that have been tested to work fine.
|
59
|
-
@test_fw=RakeOE::
|
59
|
+
@test_fw=RakeOE::Default.test_fw
|
60
60
|
|
61
61
|
# Optimization levels used for compiling binaries (e.g. -O0, -O1, -O2, -O3, -Og).
|
62
62
|
# Depending on the release mode, either @optimization_dbg or @optimization_release
|
63
63
|
# is used
|
64
|
-
@optimization_dbg=RakeOE::
|
65
|
-
@optimization_release=RakeOE::
|
64
|
+
@optimization_dbg=RakeOE::Default.optimization_dbg
|
65
|
+
@optimization_release=RakeOE::Default.optimization_release
|
66
66
|
|
67
67
|
# Language standard (e.g. -std=gnu99, -std=c++03, -std=c99, etc. )
|
68
|
-
@language_std_c=RakeOE::
|
69
|
-
@language_std_cpp=RakeOE::
|
68
|
+
@language_std_c=RakeOE::Default.lang_std_c
|
69
|
+
@language_std_cpp=RakeOE::Default.lang_std_cpp
|
70
70
|
|
71
71
|
# Software version string
|
72
72
|
#
|
73
73
|
# This parameter can be overridden via environment variable SW_VERSION_ENV.
|
74
|
-
@sw_version = ENV['SW_VERSION_ENV'].nil? ? "#{RakeOE::
|
74
|
+
@sw_version = ENV['SW_VERSION_ENV'].nil? ? "#{RakeOE::Default.sw_version}-#{@release}" : ENV['SW_VERSION_ENV']
|
75
|
+
|
76
|
+
# Project settings as specified in prj.rake file
|
77
|
+
@prj_settings = RakeOE::Default.prj_settings
|
75
78
|
end
|
76
79
|
|
77
80
|
|
data/lib/rakeoe/defaults.rb
CHANGED
@@ -39,5 +39,63 @@ module RakeOE
|
|
39
39
|
|
40
40
|
# Default software version string
|
41
41
|
DEFAULT_SW_VERSION = 'unversioned'
|
42
|
+
|
43
|
+
|
44
|
+
class Default
|
45
|
+
|
46
|
+
def self.suffixes
|
47
|
+
RakeOE::DEFAULT_SUFFIXES
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.dirs
|
51
|
+
RakeOE::DEFAULT_DIRS
|
52
|
+
end
|
53
|
+
|
54
|
+
def self.release
|
55
|
+
RakeOE::DEFAULT_RELEASE
|
56
|
+
end
|
57
|
+
|
58
|
+
def self.test_fw
|
59
|
+
RakeOE::DEFAULT_TEST_FW
|
60
|
+
end
|
61
|
+
|
62
|
+
def self.optimization_dbg
|
63
|
+
RakeOE::DEFAULT_OPTIMIZATION_DBG
|
64
|
+
end
|
65
|
+
|
66
|
+
def self.optimization_release
|
67
|
+
RakeOE::DEFAULT_OPTIMIZATION_RELEASE
|
68
|
+
end
|
69
|
+
|
70
|
+
def self.lang_std_c
|
71
|
+
RakeOE::DEFAULT_LANGUAGE_STD_C
|
72
|
+
end
|
73
|
+
|
74
|
+
def self.lang_std_cpp
|
75
|
+
RakeOE::DEFAULT_LANGUAGE_STD_CPP
|
76
|
+
end
|
77
|
+
|
78
|
+
def self.sw_version
|
79
|
+
RakeOE::DEFAULT_SW_VERSION
|
80
|
+
end
|
81
|
+
|
82
|
+
def self.prj_settings
|
83
|
+
{
|
84
|
+
'ADD_SOURCE_DIRS' => '',
|
85
|
+
'IGNORED_SOURCES' => '',
|
86
|
+
'EXPORTED_INC_DIRS' => 'include/',
|
87
|
+
'ADD_INC_DIRS' => '',
|
88
|
+
'TEST_SOURCE_DIRS' => 'test/ tests/',
|
89
|
+
'ADD_CFLAGS' => '',
|
90
|
+
'ADD_CXXFLAGS' => '',
|
91
|
+
'ADD_LIBS' => '',
|
92
|
+
'ADD_LDFLAGS' => '',
|
93
|
+
'USE_QT' => '',
|
94
|
+
'IGNORED_PLATFORMS' => ''
|
95
|
+
}
|
96
|
+
end
|
97
|
+
|
98
|
+
|
99
|
+
end
|
42
100
|
end
|
43
101
|
|
@@ -139,6 +139,15 @@ class KeyValueReader
|
|
139
139
|
@env[key] = value
|
140
140
|
end
|
141
141
|
|
142
|
+
# Merges a hash of key value pairs without actually overwriting existing entries.
|
143
|
+
# This is similar as the ||= operator on a key => value basis.
|
144
|
+
#
|
145
|
+
# @param a_hash Hash of Key/Value pairs
|
146
|
+
#
|
147
|
+
# @return the
|
148
|
+
def merge(a_hash)
|
149
|
+
@env.merge!(a_hash) { |key, v1, v2| v1 }
|
150
|
+
end
|
142
151
|
|
143
152
|
# Adds a value for key
|
144
153
|
#
|
@@ -20,6 +20,11 @@ module RakeOE
|
|
20
20
|
# GENERIC METHODS
|
21
21
|
#
|
22
22
|
|
23
|
+
# Sets default properties that should be included for every found project file
|
24
|
+
def self.set_defaults(properties)
|
25
|
+
@defaults = properties
|
26
|
+
end
|
27
|
+
|
23
28
|
# Search, read and parse all project files in given directories and add them to prj_list according
|
24
29
|
# to their PRJ_TYPE setting.
|
25
30
|
# @param dirs List of directories to search recursively for prj.rake files
|
@@ -34,6 +39,8 @@ module RakeOE
|
|
34
39
|
dir = File.dirname(file)
|
35
40
|
name = File.basename(dir)
|
36
41
|
kvr = KeyValueReader.new(file)
|
42
|
+
kvr.merge(@defaults)
|
43
|
+
|
37
44
|
prj_type = kvr.get('PRJ_TYPE')
|
38
45
|
|
39
46
|
raise "Attribute PRJ_TYPE not set in #{dir}/prj.rake" if prj_type.empty?
|
data/lib/rakeoe/version.rb
CHANGED
data/lib/rakeoe.rb
CHANGED
@@ -25,6 +25,7 @@ module RakeOE
|
|
25
25
|
# @return [RakeOE::Toolchain] Toolchain object
|
26
26
|
def init(config)
|
27
27
|
|
28
|
+
RakeOE::PrjFileCache.set_defaults(RakeOE::Default.prj_settings)
|
28
29
|
RakeOE::PrjFileCache.sweep_recursive(config.directories[:apps] + config.directories[:libs])
|
29
30
|
|
30
31
|
toolchain = RakeOE::Toolchain.new(config)
|
@@ -68,6 +69,9 @@ module RakeOE
|
|
68
69
|
namespace 'test' do
|
69
70
|
desc "Run all #{type} tests"
|
70
71
|
task :all
|
72
|
+
|
73
|
+
desc "Run all #{type} tests and create junit xml output"
|
74
|
+
task :junit
|
71
75
|
end
|
72
76
|
end
|
73
77
|
end
|