doc/api/helium/target-create-canonical-sysdef-file.html
author Simon Howkins <simonh@symbian.org>
Fri, 16 Oct 2009 15:11:28 +0100
changeset 680 81550e87fc91
parent 627 56a1d97e7c73
permissions -rw-r--r--
Moved the generation of the release metadata entry for the MD5 zip outside of the parallel section, so it can't co-incide with the zipping of the binaries. Ensured that any errors generated when merging log files are not just hidden by putting them in the output file (which will render it not well-formed XML).


<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE HTML PUBLIC "-//w3c//dtd xhtml 1.0 strict//en"
      "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">


<head>
    <meta name="keywords" content="helium"/>
    <meta http-equiv="content-type" content="text/html+xml; charset=iso-8859-1"/>
    <link rel="stylesheet" href="stylesheet.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:   '',
        VERSION:    '0'
      };
    </script>
    <script type="text/javascript" src="../_static/jquery.js"></script>

    <script type="text/javascript" src="../_static/interface.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    
    <title>Target create-canonical-sysdef-file</title>
</head>


<body>
<!-- ========= start of top navbar ======= -->
<a name="navbar_top"><!-- --></a>
<a href="#skip-navbar_top" title="skip navigation links"></a>
<table border="0" width="100%" cellpadding="1" cellspacing="0" summary="">
<tr>
<td colspan="2" bgcolor="#eeeeff" class="navbarcell1">
<a name="navbar_top_firstrow"><!-- --></a>
<table border="0" cellpadding="0" cellspacing="3" summary="">
  <tr align="center" valign="top">
  <td bgcolor="#ffffff" class="navbarcell1"> &#160;<a href="overview-summary.html"><font class="navbarfont1"><b>overview</b></font>&#160;</a></td>

  <td bgcolor="#ffffff" class="navbarcell1">    <a href="deprecated-list.html"><font class="navbarfont1"><b>deprecated</b></font></a>&#160;</td>
    
  <td bgcolor="#eeeeff" class="navbarcell1">    <a href="properties-table.html"><font class="navbarfont1"><b>properties-table</b></font></a>&#160;</td>  
  <td bgcolor="#eeeeff" class="navbarcell1">    <a href="index-1.html"><font class="navbarfont1"><b>index</b></font></a>&#160;</td>
  <td bgcolor="#eeeeff" class="navbarcell1">    <a href="help.html"><font class="navbarfont1"><b>help</b></font></a>&#160;</td>
  </tr>
</table>
</td>
<td align="right" valign="top" rowspan="3"><em>
<b>Helium API</b></em>

</td>
</tr>

<tr>
<td bgcolor="white" class="navbarcell2"><font size="-2">
&#160;prev&#160;
&#160;next</font></td>
<td bgcolor="white" class="navbarcell2"><font size="-2">
  <a href="index.html?overview-summary.html" target="_top"><b>frames</b></a>  &#160;
&#160;<a href="overview-summary.html" target="_top"><b>no frames</b></a>  &#160;

&#160;<script type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<a href="allclasses-noframe.html"><b>all classes</b></a>');
  }
  //-->
</script>
<noscript>
  <a href="allclasses-noframe.html"><b>all classes</b></a>
</noscript>


</font></td>
</tr>
</table>
<a name="skip-navbar_top"></a>
<!-- ========= end of top navbar ========= -->
    <hr/>


    
<h2>Target create-canonical-sysdef-file</h2>

<p><b>Location</b></p>
<p>    <tt class="docutils literal"><a href="/d:/maintools/sf-config/sf-platform/build.xml#L84">d:\maintools\sf-config\sf-platform\build.xml:84:</a></tt>  
</p>

<p><b>Conditional execution</b></p>        
<p>No conditions on target execution.</p>
<hr/>

<h3>Description</h3>
<p>
<p>This target is effectively a callback, called from compile-main. Its responsibility is to convert the set of peices in ref "system.definition.files" into one sys def with absolute paths</p><p>However, in our builds, we know that there will only be one sysdef peice passed in, so that makes things a lot simpler</p></p>
<p/>
<hr/>




<h3>Property dependencies</h3>


<p> 
<table class="docutils" width="50%">
    <tr>
        <th class="head">Name</th><th class="head">Edit status</th>
    </tr>
    <tr>
        <td colspan="2">User editable properties</td>
    </tr>
    <tr>
        <td colspan="2">Internal properties</td>
    </tr>
                    <tr>
                        <td><a href="property-canonical.sysdef.file.html" title="<p>The path of the generated canonical System Definition file that contains all the input System Definition file content.</p>" target="classframe"><tt class="docutils literal">canonical.sysdef.file</tt></a></td><td><a href="help.html" title="Help" target="classframe">never</a></td>
                    </tr>
</table>
</p>

<hr/>


<h3>Target dependencies</h3>
<p align="center">
<img src="target-create-canonical-sysdef-file.dot.png" alt="create-canonical-sysdef-file dependencies" usemap="#dependencies"
     style="border-style: none"/>
<map name="dependencies" id="dependencies">
<area shape="rect" id="node1" href="target-create-canonical-sysdef-file.html" title="create&#45;canonical&#45;sysdef&#45;file" alt="" coords="7,5,217,53">
</map>
</p>
<hr/>


<h3>Source code</h3>
<pre>
    &lt;target name=&quot;create-canonical-sysdef-file&quot;&gt;
    &lt;fail message=&quot;Symbian builds create a canonical system definition from exactly one peice&quot;&gt;
      &lt;condition&gt;
        &lt;resourcecount refid=&quot;system.definition.files&quot; when=&quot;ne&quot; count=&quot;1&quot;/&gt;
      &lt;/condition&gt;
    &lt;/fail&gt;

    &lt;!-- Locate the first/only item referenced --&gt;
    &lt;for param=&quot;file&quot;&gt;
      &lt;resources refid=&quot;system.definition.files&quot;/&gt;
      &lt;sequential&gt;
        &lt;echo message=&quot;@{file}&quot;/&gt;
        &lt;!-- Once a property is set, it stays set - bingo! --&gt;
        &lt;property name=&quot;sf.first.system.definition&quot; value=&quot;@{file}&quot;/&gt;
      &lt;/sequential&gt;
    &lt;/for&gt;

    &lt;!-- Having located the file, copy it to the final desired location, absoluting tha paths as we go --&gt;
    &lt;copy tofile=&quot;${canonical.sysdef.file}&quot; file=&quot;${sf.first.system.definition}&quot; overwrite=&quot;true&quot; verbose=&quot;true&quot;&gt;
      &lt;filterchain&gt;
        &lt;replaceregex pattern=&quot;bldFile=&amp;quot;os&quot; replace=&quot;bldFile=&amp;quot;/sf/os&quot; flags=&quot;gi&quot;/&gt;
        &lt;replaceregex pattern=&quot;mrp=&amp;quot;os&quot; replace=&quot;mrp=&amp;quot;/sf/os&quot; flags=&quot;gi&quot;/&gt;
        &lt;replaceregex pattern=&quot;bldFile=&amp;quot;mw&quot; replace=&quot;bldFile=&amp;quot;/sf/mw&quot; flags=&quot;gi&quot;/&gt;
        &lt;replaceregex pattern=&quot;mrp=&amp;quot;mw&quot; replace=&quot;mrp=&amp;quot;/sf/mw&quot; flags=&quot;gi&quot;/&gt;
        &lt;replaceregex pattern=&quot;bldFile=&amp;quot;app&quot; replace=&quot;bldFile=&amp;quot;/sf/app&quot; flags=&quot;gi&quot;/&gt;
        &lt;replaceregex pattern=&quot;mrp=&amp;quot;app&quot; replace=&quot;mrp=&amp;quot;/sf/app&quot; flags=&quot;gi&quot;/&gt;
        &lt;replaceregex pattern=&quot;bldFile=&amp;quot;tools&quot; replace=&quot;bldFile=&amp;quot;/sf/tools&quot; flags=&quot;gi&quot;/&gt;
        &lt;replaceregex pattern=&quot;mrp=&amp;quot;tools&quot; replace=&quot;mrp=&amp;quot;/sf/tools&quot; flags=&quot;gi&quot;/&gt;
        &lt;replaceregex pattern=&quot;bldFile=&amp;quot;adaptation&quot; replace=&quot;bldFile=&amp;quot;/sf/adaptation&quot; flags=&quot;gi&quot;/&gt;
        &lt;replaceregex pattern=&quot;mrp=&amp;quot;adaptation&quot; replace=&quot;mrp=&amp;quot;/sf/adaptation&quot; flags=&quot;gi&quot;/&gt;
        &lt;expandproperties/&gt;
      &lt;/filterchain&gt;
    &lt;/copy&gt;

 &lt;/target&gt;
</pre>


    <hr/>
<!-- ========= start of top navbar ======= -->
<a name="navbar_top"><!-- --></a>
<a href="#skip-navbar_top" title="skip navigation links"></a>
<table border="0" width="100%" cellpadding="1" cellspacing="0" summary="">
<tr>
<td colspan="2" bgcolor="#eeeeff" class="navbarcell1">
<a name="navbar_top_firstrow"><!-- --></a>
<table border="0" cellpadding="0" cellspacing="3" summary="">
  <tr align="center" valign="top">
  <td bgcolor="#ffffff" class="navbarcell1"> &#160;<a href="overview-summary.html"><font class="navbarfont1"><b>overview</b></font>&#160;</a></td>

  <td bgcolor="#ffffff" class="navbarcell1">    <a href="deprecated-list.html"><font class="navbarfont1"><b>deprecated</b></font></a>&#160;</td>
    
  <td bgcolor="#eeeeff" class="navbarcell1">    <a href="properties-table.html"><font class="navbarfont1"><b>properties-table</b></font></a>&#160;</td>  
  <td bgcolor="#eeeeff" class="navbarcell1">    <a href="index-1.html"><font class="navbarfont1"><b>index</b></font></a>&#160;</td>
  <td bgcolor="#eeeeff" class="navbarcell1">    <a href="help.html"><font class="navbarfont1"><b>help</b></font></a>&#160;</td>
  </tr>
</table>
</td>
<td align="right" valign="top" rowspan="3"><em>
<b>Helium API</b></em>

</td>
</tr>

<tr>
<td bgcolor="white" class="navbarcell2"><font size="-2">
&#160;prev&#160;
&#160;next</font></td>
<td bgcolor="white" class="navbarcell2"><font size="-2">
  <a href="index.html?overview-summary.html" target="_top"><b>frames</b></a>  &#160;
&#160;<a href="overview-summary.html" target="_top"><b>no frames</b></a>  &#160;

&#160;<script type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<a href="allclasses-noframe.html"><b>all classes</b></a>');
  }
  //-->
</script>
<noscript>
  <a href="allclasses-noframe.html"><b>all classes</b></a>
</noscript>


</font></td>
</tr>
</table>
<a name="skip-navbar_top"></a>
<!-- ========= end of top navbar ========= -->
    <font size="-2">Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. License: http://www.eclipse.org/legal/epl-v10.html</font>
 </body>

</html>