10 Introduction |
10 Introduction |
11 ============ |
11 ============ |
12 |
12 |
13 This describes the key aspects of configuring a Helium build and other aspects of using the Helium build toolkit. |
13 This describes the key aspects of configuring a Helium build and other aspects of using the Helium build toolkit. |
14 |
14 |
15 Helium consists of several phases (the stages_ section explains these in detail) these are briefly outlined here: |
15 Helium consists of several phases (the stages_ section explains these in detail) these are briefly outlined here: |
16 |
16 |
17 * pre-build - performs several checks on the environment and creates the Bill of Materials (BOM) before copying the relevant files from synergy to the build area and unzipping them. |
17 * pre-build - performs several checks on the environment and creates the Bill of Materials (BOM) before copying the relevant files from synergy to the build area and unzipping them. |
18 * build - compiles the files. |
18 * build - compiles the files. |
19 * post-build - creates SIS files (system Installation files), creates ROM images, zips the build area for releasing, publishes releases, creates localised images, produces data packages, reports results to diamonds server. |
19 * post-build - creates SIS files (system Installation files), creates ROM images, zips the build area for releasing, publishes releases, creates localised images, produces data packages, reports results to diamonds server. |
20 |
20 |
282 <project name="myproject" xmlns:hlm="http://www.nokia.com/helium"> |
278 <project name="myproject" xmlns:hlm="http://www.nokia.com/helium"> |
283 .... |
279 .... |
284 </project> |
280 </project> |
285 |
281 |
286 .. index:: |
282 .. index:: |
287 single: MC Helium configuration |
|
288 |
|
289 MC Helium configuration |
|
290 ----------------------- |
|
291 |
|
292 Based on the former MC codeline policy the SAL organisation in MC has used a hierarchical structure for the Helium build configuration files. This is an example configuration that can be used as a guideline. |
|
293 |
|
294 .. index:: |
|
295 single: Product family and product properties |
|
296 |
|
297 Product family and product properties |
|
298 ::::::::::::::::::::::::::::::::::::: |
|
299 |
|
300 These are set in hierarchical structure under mc_build:: |
|
301 |
|
302 /mc_build |
|
303 /<SAL> |
|
304 /<product> |
|
305 /<variant> |
|
306 |
|
307 E.g:: |
|
308 |
|
309 /mc_build |
|
310 /mc_4032_build |
|
311 mc_4032_build.ant.xml - product family configuration. |
|
312 /PRODUCT |
|
313 PRODUCT.ant.xml - product configuration. |
|
314 /RM247 |
|
315 build.xml - variant configuration. |
|
316 /RM297 |
|
317 build.xml |
|
318 /PRODUCT |
|
319 /RMxxx |
|
320 /mc_5132_build |
|
321 /PRODUCT |
|
322 /teams |
|
323 juno.ant.xml |
|
324 |
|
325 Ant files at each level contain the configuration for that level. Builds are run from the outermost directories, e.g. RM247 and ``<import>`` statements are used to import the files in the parent directories. The ``mc_4032_build.ant.xml`` file would import ``helium.ant.xml``. |
|
326 |
|
327 For an example of a product build click here. |
|
328 |
|
329 .. toctree:: |
|
330 :maxdepth: 1 |
|
331 |
|
332 product_example.rst |
|
333 |
|
334 |
|
335 .. index:: |
|
336 single: Team properties |
|
337 |
|
338 .. _`Team-Properties-label`: |
|
339 |
|
340 Team properties |
|
341 ::::::::::::::: |
|
342 |
|
343 For the MC build configurations are a number of properties that are related to a team and/or site. |
|
344 These are all combined in a single configuration file. All the team configuration files are stored under ``/mc/mc_build/teams``. |
|
345 This allows different build configurations to be run in different locations, or handle multiple product family configurations at one site. |
|
346 |
|
347 In order for this to work in windows environment you may need to set up an environment variable called TEAM. So click |
|
348 start->settings->control panel and double click on 'system' to open the system properties window. Click on the 'advanced' tab and then click the |
|
349 'environment variables' tab. Create a new variable preferably under the system varaibles but if you do not have permission to add one here then add |
|
350 it to the user variables make the variable name 'TEAM' (note capital letters) and the team name is what ever your team name is. |
|
351 |
|
352 Also see :ref:`Setting-Team_properties-label`: |
|
353 |
|
354 |
|
355 .. index:: |
|
356 single: Setting the team/site |
|
357 |
|
358 Setting the team/site |
|
359 ::::::::::::::::::::: |
|
360 |
|
361 To enable running any build with any team/site configuration, the team must be defined separately from the build configuration files. The team name should be the same as the team configuration file under ``/mc/mc_build/teams`` without the "``.ant.xml``". |
|
362 |
|
363 The team can be set in one of the following ways (using the example of the ``juno.ant.xml`` file): |
|
364 |
|
365 * Define a ``TEAM`` environment variable, e.g. ``TEAM=juno``. |
|
366 * Add an Ant command line parameter to set the team, e.g:: |
|
367 |
|
368 hlm product-build -Dteam=juno |
|
369 |
|
370 .. index:: |
|
371 single: System definition configuration files |
283 single: System definition configuration files |
372 |
284 |
373 System definition configuration files |
285 System definition configuration files |
374 ::::::::::::::::::::::::::::::::::::: |
286 ::::::::::::::::::::::::::::::::::::: |
375 |
287 |
376 Sysdef configuration defines the source code you actually want to compile with Helium. More information about the System definition |
288 Sysdef configuration defines the source code you actually want to compile with Helium. More information about the System definition |
377 files can be found from: http://developer.symbian.org/wiki/index.php/System_Definition. |
289 files can be found from: http://developer.symbian.org/wiki/index.php/System_Definition. |
378 |
290 |
379 Under helium/testconfig/mc/mc_build/ibusal_51_build/ is the file IBUSAL51_SystemDefinition.xml which can be examined as a sample definition file. |
291 helium/tests/minibuilds/qt/minibuild_compile.sysdef.xml which can be examined as a sample definition file. |
380 It is used by the Helium test environment to test helium works. It consists of a list of components to compile and some special instructions to |
292 It is used by the Helium test environment to test helium works. It consists of a list of components to compile and some special instructions to |
381 perform whilst compiling the components e.g. run toucher.exe on certain directories. You will need to make sure this file exists and contains |
293 perform whilst compiling the components e.g. run toucher.exe on certain directories. You will need to make sure this file exists and contains |
382 the correct components when building and especialy for a product which consists of many hundreds of components. It should be possible to use |
294 the correct components when building and especialy for a product which consists of many hundreds of components. It should be possible to use |
383 the file supplied by S60, but you may need to copy the component compile lines from the file and add them to the existing file in helium in |
295 the file supplied by S60, but you may need to copy the component compile lines from the file and add them to the existing file in helium in |
384 order to make sure you also get the special instructions which are required to make the builds create a ROM image successfully (or any |
296 order to make sure you also get the special instructions which are required to make the builds create a ROM image successfully (or any |