Catchup of Shabe's Helium7 work.
<?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">  <a href="overview-summary.html"><font class="navbarfont1"><b>overview</b></font> </a></td>
<td bgcolor="#ffffff" class="navbarcell1"> <a href="deprecated-list.html"><font class="navbarfont1"><b>deprecated</b></font></a> </td>
<td bgcolor="#eeeeff" class="navbarcell1"> <a href="properties-table.html"><font class="navbarfont1"><b>properties-table</b></font></a> </td>
<td bgcolor="#eeeeff" class="navbarcell1"> <a href="index-1.html"><font class="navbarfont1"><b>index</b></font></a> </td>
<td bgcolor="#eeeeff" class="navbarcell1"> <a href="help.html"><font class="navbarfont1"><b>help</b></font></a> </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">
 prev 
 next</font></td>
<td bgcolor="white" class="navbarcell2"><font size="-2">
<a href="index.html?overview-summary.html" target="_top"><b>frames</b></a>  
 <a href="overview-summary.html" target="_top"><b>no frames</b></a>  
 <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-canonical-sysdef-file" alt="" coords="7,5,217,53">
</map>
</p>
<hr/>
<h3>Source code</h3>
<pre>
<target name="create-canonical-sysdef-file">
<fail message="Symbian builds create a canonical system definition from exactly one peice">
<condition>
<resourcecount refid="system.definition.files" when="ne" count="1"/>
</condition>
</fail>
<!-- Locate the first/only item referenced -->
<for param="file">
<resources refid="system.definition.files"/>
<sequential>
<echo message="@{file}"/>
<!-- Once a property is set, it stays set - bingo! -->
<property name="sf.first.system.definition" value="@{file}"/>
</sequential>
</for>
<!-- Having located the file, copy it to the final desired location, absoluting tha paths as we go -->
<copy tofile="${canonical.sysdef.file}" file="${sf.first.system.definition}" overwrite="true" verbose="true">
<filterchain>
<replaceregex pattern="bldFile=&quot;os" replace="bldFile=&quot;/sf/os" flags="gi"/>
<replaceregex pattern="mrp=&quot;os" replace="mrp=&quot;/sf/os" flags="gi"/>
<replaceregex pattern="bldFile=&quot;mw" replace="bldFile=&quot;/sf/mw" flags="gi"/>
<replaceregex pattern="mrp=&quot;mw" replace="mrp=&quot;/sf/mw" flags="gi"/>
<replaceregex pattern="bldFile=&quot;app" replace="bldFile=&quot;/sf/app" flags="gi"/>
<replaceregex pattern="mrp=&quot;app" replace="mrp=&quot;/sf/app" flags="gi"/>
<replaceregex pattern="bldFile=&quot;tools" replace="bldFile=&quot;/sf/tools" flags="gi"/>
<replaceregex pattern="mrp=&quot;tools" replace="mrp=&quot;/sf/tools" flags="gi"/>
<replaceregex pattern="bldFile=&quot;adaptation" replace="bldFile=&quot;/sf/adaptation" flags="gi"/>
<replaceregex pattern="mrp=&quot;adaptation" replace="mrp=&quot;/sf/adaptation" flags="gi"/>
<expandproperties/>
</filterchain>
</copy>
</target>
</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">  <a href="overview-summary.html"><font class="navbarfont1"><b>overview</b></font> </a></td>
<td bgcolor="#ffffff" class="navbarcell1"> <a href="deprecated-list.html"><font class="navbarfont1"><b>deprecated</b></font></a> </td>
<td bgcolor="#eeeeff" class="navbarcell1"> <a href="properties-table.html"><font class="navbarfont1"><b>properties-table</b></font></a> </td>
<td bgcolor="#eeeeff" class="navbarcell1"> <a href="index-1.html"><font class="navbarfont1"><b>index</b></font></a> </td>
<td bgcolor="#eeeeff" class="navbarcell1"> <a href="help.html"><font class="navbarfont1"><b>help</b></font></a> </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">
 prev 
 next</font></td>
<td bgcolor="white" class="navbarcell2"><font size="-2">
<a href="index.html?overview-summary.html" target="_top"><b>frames</b></a>  
 <a href="overview-summary.html" target="_top"><b>no frames</b></a>  
 <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>