1 .. index:: |
|
2 module: Configuring Raptor (SBS) |
|
3 |
|
4 ======================== |
|
5 Configuring Raptor (SBS) |
|
6 ======================== |
|
7 |
|
8 .. contents:: |
|
9 |
|
10 This document describes requirements and how to run sbs builds using helium. Now it is |
|
11 possible to pass directly pass all the raptor input directly and there are no mapping of |
|
12 raptor parameter specific to helium. |
|
13 |
|
14 |
|
15 SBS Requirements |
|
16 ----------------- |
|
17 |
|
18 Before starting the build, SBS needs to be updated for s60 related changes, please follow the instructions from the link below, |
|
19 |
|
20 `How to Build Raptor <http://s60wiki.nokia.com/S60Wiki/How_To_Build_With_Raptor>`_ |
|
21 |
|
22 1. SBS_HOME environment variable needs to be set |
|
23 2. PATH environment variable needs to be updated with SBS related exe:: |
|
24 |
|
25 path(SBS_HOME\\BIN;SBS_HOME\\win32\\mingw\\bin;SBS_HOME\\win32\\msys\\bin) |
|
26 |
|
27 3. RVCT requirement for raptor is 22_686 or higher, in IDO config / product config batch file the env variable needs to be set to `HLM_RVCT_VERSION=22_686` |
|
28 |
|
29 For Example: :: |
|
30 |
|
31 set HELIUM_HOME=E:\Build_E\ec_test\helium-trunk\helium |
|
32 set PATH=e:\svn\bin;E:\sbs\bin;c:\apps\actpython;%PATH% |
|
33 set SBS_HOME=E:\sbs |
|
34 set MWSym2Libraries=%MWSym2Libraries%;C:\APPS\carbide\x86Build\Symbian_Support\Runtime\Runtime_x86\Runtime_Win32\Libs |
|
35 set TEAM=site_name |
|
36 |
|
37 (Note: For IDOs, these environment variables are set automatically, for S60 option is proposed). |
|
38 |
|
39 Required SBS input for Helium |
|
40 ------------------------------ |
|
41 |
|
42 SBS Input consists of SBSInput and SBSBuild types: |
|
43 |
|
44 1. SBSInput - SBS Input stores the list of raptor arguments both the sbs options and |
|
45 sbs make options. Nested sbs input option is also possible, for details please see the |
|
46 antdoclet information for sbsInput. |
|
47 |
|
48 2. SBSBuild - SBS Build is the collection of SBSInput. Each SBSInput refering within |
|
49 SBSBuild corresponds to a single invocation of raptor with the corresponding sbs arguments |
|
50 refered within the sbsInput. Each sbsInput refered within SBSBuild roughly corresponds to |
|
51 the abld commands associated with corresponding abld configurations. <configuration> </configuration> |
|
52 is corresponds ot SBSBuild. This is there only for backward compatibility and will be removed |
|
53 once the mighration is completed for schema 3.0, in which case, abld mapping of configuration |
|
54 is not required and sbsInput could be directly used. Example is as below, |
|
55 |
|
56 .. code-block:: xml |
|
57 |
|
58 <hlm:sbsbuild id="sbs.dfs_build_export"> |
|
59 <sbsInput refid="dfs_build_export_input" /> |
|
60 </hlm:sbsbuild> |
|
61 |
|
62 |
|
63 1. To run using SBS mode (schema 1.4.0) |
|
64 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
65 |
|
66 List of SBSInput one to one mapping with corresponding abld commands mapped for a configuration. |
|
67 |
|
68 example is below, |
|
69 |
|
70 .. code-block:: xml |
|
71 |
|
72 <!-- tools common sbs options --> |
|
73 <hlm:sbsoptions id="commonSBS"> |
|
74 <arg line="-k" /> |
|
75 <arg name="--filters" value="FilterMetadataLog"/> |
|
76 </hlm:sbsoptions> |
|
77 |
|
78 <hlm:sbsoptions id="exportSBS"> |
|
79 <argset refid="commonSBS" /> |
|
80 <arg line="--export-only" /> |
|
81 </hlm:sbsoptions> |
|
82 |
|
83 <!-- sbs input for export --> |
|
84 <hlm:sbsinput id="export-sbs"> |
|
85 <sbsoptions refid="exportSBS" /> |
|
86 </hlm:sbsinput> |
|
87 |
|
88 <hlm:sbsbuild id="sbs.dfs_build_export"> |
|
89 <sbsInput refid="dfs_build_export_input" /> |
|
90 </hlm:sbsbuild> |
|
91 |
|
92 Assuming there is a dfs_build_export schema configuration 1.4.0 system definition file. |
|
93 Then there should be a corresponding <hlm:sbsbuild> type defined prefixing with sbs |
|
94 as sbs.dfs_build_export as above which contains a reference to sbsinput. The sbsInput |
|
95 contains actual raptor commands equivalent to abld commands to be executed for that |
|
96 configuration, in this case it is referring exportSBS, which in turn referring to commonsbs |
|
97 so finally the command generated would be |
|
98 |
|
99 .. code-block:: xml |
|
100 |
|
101 sbs -k --filters=FilterMetadataLog --export-only |
|
102 |
|
103 This command is executed for all the componentes specified in the dfs_build_export |
|
104 configuration. |
|
105 |
|
106 No change from the configuration is required, except the new raptor input needs to be imported. |
|
107 |
|
108 2. To run using SBS mode (schema 3.0.0) - partial support |
|
109 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
110 |
|
111 For schema 3.0, required inputs are, |
|
112 a. sbs arguments |
|
113 b. package definition files |
|
114 c. filters to filter the component |
|
115 d. patternset - specifying specific set of layers to be executed. |
|
116 |
|
117 Note: Filters are not supported yet. |
|
118 |
|
119 As raptor doesn't support schema 3.0 directly, the schema 3.0 is downgraded to |
|
120 2.0 schema, then it is joined / merged with symbian / nokia system definition. |
|
121 Finally calling raptor commands with the raptor input. |
|
122 |
|
123 The minimum required input for schema 3.0 is, sbsinput. |
|
124 |
|
125 .. code-block:: xml |
|
126 |
|
127 <!-- sbs input for export --> |
|
128 <hlm:sbsinput id="export-sbs"> |
|
129 <sbsoptions refid="exportSBS" /> |
|
130 </hlm:sbsinput> |
|
131 |
|
132 When building for raptor just the export-sbs needs to be passed as the argument to |
|
133 compile-main target as below, |
|
134 |
|
135 .. code-block:: xml |
|
136 |
|
137 <antcall target="compile-main" inheritRefs="true"> |
|
138 <param name="sbs.inputs.list" value="export-sbs,armv5-build"/> |
|
139 </antcall> |
|
140 |
|
141 Which will execute each sbs input from the list as a separate sbs call and execute it. Schema 3.0 |
|
142 is very basic and is only intended for internal testing / validation. |
|
143 |
|
144 Customizing raptor input |
|
145 ------------------------ |
|
146 |
|
147 Different scenario the user might need to provide the raptor inputs, (required to map raptor |
|
148 commands for abld configuration which is not there in the default raptor input xml file, |
|
149 want to override the default raptor input to pass additional parameters), below section covers |
|
150 how these can be customized. |
|
151 |
|
152 Mapping raptor commands for new configuration from system definition file (1.4.0) |
|
153 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
154 |
|
155 First step is to identify the abld commands executed by the new configuration. Correspondingly the |
|
156 raptor commands need to be identified for that. Then need to check from the common raptor input |
|
157 is there any input which can be reused. If any raptor input could be re-usable, the just refering |
|
158 that input and adding additional arguments would provide the exact raptor command arguments to be |
|
159 executed. |
|
160 |
|
161 |
|
162 For example, if the new configuration for which the raptor command input is to be created is, |
|
163 os, which is not there in the default raptor input, then abld commands executed are |
|
164 (to be simpoer - bldmake, export, tools_rel, winscw, armv5). The corresponding raptor input would |
|
165 be |
|
166 |
|
167 |
|
168 .. code-block:: xml |
|
169 |
|
170 <hlm:sbsinput id="build_input_os_export"> |
|
171 <sbsInput refid="export-${build.system}" /> |
|
172 <sbsOptions> |
|
173 <arg name="--logfile" value="${compile.log.dir}/${build.id}_export_os_build.log" /> |
|
174 <arg name="--makefile" value="${temp.build.dir}/${build.id}_export_os_build" /> |
|
175 </sbsOptions> |
|
176 </hlm:sbsinput> |
|
177 |
|
178 <hlm:sbsinput id="build_input_os_tools"> |
|
179 <sbsInput refid="tools-${build.system}" /> |
|
180 <sbsOptions> |
|
181 <arg name="--logfile" value="${compile.log.dir}/${build.id}_tools_rel_os_build.log" /> |
|
182 <arg name="--makefile" value="${temp.build.dir}/${build.id}_tools_rel_os_build" /> |
|
183 </sbsOptions> |
|
184 </hlm:sbsinput> |
|
185 |
|
186 <hlm:sbsinput id="build_input_os_winscw"> |
|
187 <sbsInput refid="winscw-${build.system}" /> |
|
188 <sbsOptions> |
|
189 <arg name="--logfile" value="${compile.log.dir}/${build.id}_winscw_os_build.log" /> |
|
190 <arg name="--makefile" value="${temp.build.dir}/${build.id}_winscw_os_build" /> |
|
191 </sbsOptions> |
|
192 </hlm:sbsinput> |
|
193 |
|
194 |
|
195 <hlm:sbsinput id="build_input_os_armv5"> |
|
196 <sbsInput refid="armv5-${build.system}" /> |
|
197 <sbsOptions> |
|
198 <arg name="--logfile" value="${compile.log.dir}/${build.id}_armv5_os_build.log" /> |
|
199 <arg name="--makefile" value="${temp.build.dir}/${build.id}_armv5_os_build" /> |
|
200 </sbsOptions> |
|
201 </hlm:sbsinput> |
|
202 |
|
203 The default raptor input for each build target (tools, winscw, armv5) are reused here and just the |
|
204 log file names are changed. |
|
205 |
|
206 Next the sequence of command execution needs to be defined for the corresponding os confoguration as below. |
|
207 |
|
208 .. code-block:: xml |
|
209 |
|
210 <hlm:sbsbuild id="sbs.os"> |
|
211 <sbsInput refid="build_input_os_export" /> |
|
212 <sbsInput refid="build_input_os_tools" /> |
|
213 <sbsInput refid="build_input_os_winscw" /> |
|
214 <sbsInput refid="build_input_os_armv5" /> |
|
215 </hlm:sbsbuild> |
|
216 |
|
217 For configuration name os in the system definition file, it will take the list of raptor input |
|
218 as defined with sbs.os, then it will execute each sbsinput as separate sbs calls with the arguments |
|
219 extracted from the corresponding reference id. |
|
220 |
|
221 Overriding default raptor arguments |
|
222 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
223 |
|
224 In case the default argument is not enough for the user requirements, this could be overriden by |
|
225 redefining the reference of a particular sbsoptions will provide the user to change the arguments. |
|
226 |
|
227 For example, if the user just wants to pass debug flag for armv5 raptor inputs, the raptor input |
|
228 |
|
229 .. code-block:: xml |
|
230 |
|
231 <!-- Mainbuild common sbs options --> |
|
232 <hlm:sbsoptions id="armv5CommonSBS"> |
|
233 <argset refid="commonSBS" /> |
|
234 <arg line="-c armv5" /> |
|
235 </hlm:sbsoptions> |
|
236 |
|
237 |
|
238 could be redefined as below in the user configuration, |
|
239 |
|
240 .. code-block:: xml |
|
241 |
|
242 <!-- Mainbuild common sbs options --> |
|
243 <hlm:sbsoptions id="armv5CommonSBS"> |
|
244 <argset refid="commonSBS" /> |
|
245 <arg line="-c armv5" /> |
|
246 <arg line="-d" /> |
|
247 </hlm:sbsoptions> |
|
248 |
|
249 This would add the debug flag in all the raptor configuration which is using armv5CommonSBS. |
|