buildframework/helium/doc/src/manual/configuring.rst
changeset 217 0f5e3a7fb6af
parent 1 be27ed110b50
child 587 85df38eb4012
equal deleted inserted replaced
181:59bb7c4d6172 217:0f5e3a7fb6af
    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 
   103   single: Passwords
   103   single: Passwords
   104 
   104 
   105 Passwords
   105 Passwords
   106 =========
   106 =========
   107 
   107 
   108 Helium requires access to a few resources that require username and password authentication, like Synergy for SCM operations and a user's network login/password for GRACE upload. To avoid the need for a password dialog request, these details can be entered in a ``.netrc`` file located on the user's HOME drive. The HOME location is one of:
   108 Helium requires access to a few resources that require username and password authentication, like Synergy for SCM operations. To avoid the need for a password dialog request, these details can be entered in a ``.netrc`` file located on the user's HOME drive. The HOME location is one of:
   109 
   109 
   110 Windows
   110 Windows
   111   H: drive
   111   H: drive
   112   
   112   
   113 Linux
   113 Linux
   133 --------------
   133 --------------
   134 
   134 
   135 NOE::
   135 NOE::
   136 
   136 
   137   machine noe login <network-username> password <network-password>
   137   machine noe login <network-username> password <network-password>
   138 
       
   139 GRACE::
       
   140 
       
   141   machine grace login <network-username> password <network-password>
       
   142   
   138   
   143 Lotus Notes::
   139 Lotus Notes::
   144 
   140 
   145   machine notes login <notes-username> password <notes-password>
   141   machine notes login <notes-username> password <notes-password>
   146 
   142 
   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