buildframework/helium/doc/src/manual/sbs.rst
changeset 1 be27ed110b50
equal deleted inserted replaced
0:044383f39525 1:be27ed110b50
       
     1 .. index::
       
     2   module: SBS in Helium
       
     3 
       
     4 .. index::
       
     5   module: Raptor (SBS) in Helium
       
     6 
       
     7 =======================
       
     8 SBS (raptor) In Helium
       
     9 =======================
       
    10 
       
    11 .. contents::
       
    12 
       
    13 This document describes requirements and how to run sbs builds using helium
       
    14 
       
    15 
       
    16 SBS Requirements
       
    17 -----------------
       
    18 
       
    19 Before starting the build, SBS needs to be updated for s60 related changes, please follow the instructions from the link below,
       
    20 
       
    21 `How to Build Raptor <http://s60wiki.nokia.com/S60Wiki/How_To_Build_With_Raptor>`_
       
    22 
       
    23 1. SBS_HOME environment variable needs to be set
       
    24 2. PATH environment variable needs to be updated with SBS related exe:
       
    25 
       
    26    path(SBS_HOME\\BIN;SBS_HOME\\win32\\mingw\\bin;SBS_HOME\\win32\\msys\\bin)
       
    27 
       
    28 3. RVCT requirement for raptor is 22_616, in IDO config / product config batch file the env variable needs to be set to
       
    29 HLM_RVCT_VERSION=22_616
       
    30 
       
    31 For Example: ::
       
    32 
       
    33  set HELIUM_HOME=E:\Build_E\ec_test\helium-trunk\helium
       
    34  set PATH=e:\svn\bin;E:\sbs\bin;c:\apps\actpython;%PATH%
       
    35  set SBS_HOME=E:\sbs
       
    36  set MWSym2Libraries=%MWSym2Libraries%;C:\APPS\carbide\x86Build\Symbian_Support\Runtime\Runtime_x86\Runtime_Win32\Libs
       
    37  set TEAM=site_name
       
    38    
       
    39 (Note: For IDOs, these environment variables are set automatically, for S60 option is proposed).
       
    40 
       
    41 Required SBS input for Helium
       
    42 ------------------------------
       
    43 1. To run using SBS mode the following properties need to be set with the values shown below:
       
    44 
       
    45    * build.system - sbs - gmake as SBS engine
       
    46    * build.system - sbs-ec emake as SBS engine (ECA 4.3 or above required)
       
    47 
       
    48 2. sbs.config - (configurations for which the sbs needs to be run - for example (armv5 / winscw) - default is armv5 only.
       
    49 
       
    50 The layers to be built for SBS are obtained from System definition files (layers.sysdef.xml found in each component top level folder in the released code). The requirement for the system definition files to be run using SBS / raptor is to have a unique filter for each configuration. The current setup is using raptor\_<configuration_name> for example, for s60_build configuration, the filter should be raptor\_s60_build.
       
    51 This is the temporary solution and discussions are on to finalise / improve the filter mechanism for raptor. The raptor\_ change has been added to the layers.sysdef.xml files supplied for the IDOs and S60_SBS build releases but when building using DFS full builds the files need to be modified to add the raptor\_ for each layer.
       
    52 
       
    53 Supported SBS parameters from helium
       
    54 -------------------------------------
       
    55 
       
    56 List of parameters::
       
    57 
       
    58    a. layers - No need to specify for the full IDO / product configuration. If there is a requirement to run specific layer alone, then this needs to be set.
       
    59    b. config - (configuration to be built - armv5, winscw - with comma seperated values)
       
    60    c. skipBuild - just to generate the makefile for SBS and not to run the targets.
       
    61    d. singleJob - run in single thread for engine gmake only
       
    62    e. layerOrder - If the layers need to be built using order, then this needs to be set to true.
       
    63    f. command - command to be executed(SBS commands - REALLYCLEAN, EXPORT, BITMAP, RESOURCE, TARGET)
       
    64    g. sysdef-base - base location for the sysdef (root directory for relative paths in the system definition files)
       
    65    h. enable-filter - to use the SBS log processing using filter options from SBS, this should be set to true
       
    66       to use helium log filter and scanlog.
       
    67    i. retry-limit - number of times to try in case of transient failure ( -t of sbs).
       
    68    j. run-check - (true / false) runs the --check sbs command if set to true
       
    69    k. run-what - (true / false) runs the --what sbs command if set to true
       
    70 
       
    71 Command line arguments to SBS using Helium:
       
    72 -------------------------------------------
       
    73 
       
    74 build.system=sbs
       
    75 ~~~~~~~~~~~~~~~~~
       
    76 To build using gmake as the engine, and all others with default values (skipBuild - false, with multiple jobs (default
       
    77 set by helium is number.of.processor*2 and no layer order)
       
    78 
       
    79 If multiple configurations need to be built, a comma separated list needs to be passed as (armv5,winscw) to sbs.config property.
       
    80 
       
    81 examples::
       
    82    
       
    83    <property name="sbs.config" value="armv5" />
       
    84    <property name="sbs.config" value="armv5,winscw" />
       
    85    <property name="sbs.config" value="armv5,winscw,armv5.test"/>
       
    86    
       
    87 This can be set in the IDO root directory build.xml file.
       
    88 
       
    89 Here is an example command to use (first 'cd' to IDO configuration directory ido_configuration/running/idos/abs/branches/mcl_devlon ) ::
       
    90 
       
    91    hlm -Dbuild.drive=z: -Dbuild.system=sbs -Dbuild.number=005 -Dskip.password.validation=true ido-build
       
    92 
       
    93    
       
    94 build.system=sbs-ec
       
    95 ~~~~~~~~~~~~~~~~~~~~
       
    96 To build using emake as the engine with default values set by helium (sbs make engine as emake and other emake parameters using ec) just the ``sbs.config`` property has   to be set to configuration to be built(armv5, winscw).
       
    97    
       
    98 Here is an example command to use (first 'cd' to IDO configuration directory ido_configuration/running/idos/abs/branches/mcl_devlon )
       
    99 
       
   100 hlm -Dbuild.drive=z: -Dbuild.system.main.build=sbs-ec -Dbuild.number=005 -Dskip.password.validation=true ido-build
       
   101 
       
   102 Note the different flag ``-Dbuild.system.main.build=sbs-ec``
       
   103 
       
   104 
       
   105 Passing Make options to SBS using helium
       
   106 -----------------------------------------
       
   107 
       
   108 Make options for different make engines could be passed to SBS using ant reference as below,
       
   109 (Note: currently supported make engine options are emake options only, in the future will
       
   110 be added for pvm and gmake).
       
   111 
       
   112 Make options for SBS using helium:
       
   113 
       
   114 .. code-block:: xml
       
   115 
       
   116    <hlm:sbsMakeOptions id="sbs-ec.fullbuild.options" engine="emake">
       
   117       <hlm:makeOption name="--emake-emulation" value="gmake" />
       
   118       <hlm:makeOption name="--emake-annodetail" value="basic,history,waiting" />
       
   119       <hlm:makeOption name="--emake-class" value="${ec.build.class}" />
       
   120    </hlm:sbsMakeOptions>
       
   121    
       
   122 First user defined make options need to be defined as above, then the default ``<build.system>.make.options``
       
   123 parameter needs to be overridden in the antcall of user defined config as below:
       
   124    
       
   125 .. code-block:: xml
       
   126    
       
   127    <antcall target="compile-main" inheritAll="false" inheritRefs="true">
       
   128       <reference refid="sbs-ec.fullbuild.options" torefid="sbs-ec.make.options"/>
       
   129    </antcall>
       
   130    
       
   131 Here the ``sbs-ec.fullbuild.options`` mapped to ``sbs-ec.make.options`` and used by helium to set
       
   132 emake options for SBS.
       
   133    
       
   134 Building for different SBS input (advanced users)
       
   135 --------------------------------------------------
       
   136 
       
   137 Some examples to build for different sbs input using helium are below:
       
   138    
       
   139 To build using a single thread, the sbs helium variable is:
       
   140    
       
   141 .. code-block:: xml
       
   142    
       
   143    <hlm:argSet id="sbs.singlethread.var">
       
   144       <hlm:arg name="config" value="${sbs.config}" />
       
   145       <hlm:arg name="singleJob" value="true" />
       
   146    </hlm:argSet>
       
   147    
       
   148 And set ``sbs.var`` to ``sbs.singlethread.var`` as below during <antcall> target to call compile-main:
       
   149 
       
   150 .. code-block:: xml
       
   151 
       
   152    <antcall target="compile-main" inheritAll="false" inheritRefs="true">
       
   153       <reference refid="sbs.singlethread.var" torefid="sbs.var"/>
       
   154    </antcall>