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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ff8600a75f67ce19ddd87476e7cbbd4f15df6fe9
4
- data.tar.gz: 8199dc6180e67b9e054a5d3aece5881944b1f55f
3
+ metadata.gz: 3e86c7488b09a2adbd7eb607162e5301d0f9d5cc
4
+ data.tar.gz: 0e553eaa97e2a661b5cd994f702e084cd1ba96ff
5
5
  SHA512:
6
- metadata.gz: a457a0c7f3d4077267f45440e3cae9c5bb7a38da56df25ba1832160f613efd07b3da1b15ab38467613fa5c72ce18e50accd107db57a69989295508ef0eea3366
7
- data.tar.gz: 484f0b0c74a3060b2afe89659395971f2336a66669943f02ae370a996678dc5ee81100f6c04582ccee1c83e570908539540f7e1620774bd4c6e79b7e7ef9df62
6
+ metadata.gz: 07da39a5f073ec28a06cc956b7d2a5bef9b269daf380426506a1f2723626c86b3668c75c182660f92ec9aef1face0d923d356e45b3df2c2960d574c14bed5f63
7
+ data.tar.gz: 1474b08247648bc36072129cbd8a61c3358212ad32cd751ae77cf4145eabf98f182ae4bb2b829d8bbfa266259725831b33bda776a294d25b8c2c58236b5fadac
@@ -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::DEFAULT_SUFFIXES
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::DEFAULT_DIRS
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::DEFAULT_RELEASE : 'release'
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::DEFAULT_TEST_FW
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::DEFAULT_OPTIMIZATION_DBG
65
- @optimization_release=RakeOE::DEFAULT_OPTIMIZATION_RELEASE
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::DEFAULT_LANGUAGE_STD_C
69
- @language_std_cpp=RakeOE::DEFAULT_LANGUAGE_STD_CPP
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::DEFAULT_SW_VERSION}-#{@release}" : ENV['SW_VERSION_ENV']
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
 
@@ -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?
@@ -1,3 +1,3 @@
1
1
  module RakeOE
2
- VERSION = '0.0.7'
2
+ VERSION = '0.0.8'
3
3
  end
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rakeoe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Schnell