doc/api/python/rom-pysrc.html
author Simon Howkins <simonh@symbian.org>
Tue, 30 Mar 2010 13:57:59 +0100
changeset 952 ea541face66b
parent 432 f2ddfa555b0f
permissions -rw-r--r--
Re-apply changes to allow sources.csv to specify a revision by a *local* tag in the web repository. Uses "hg id" instead of "hg in", so not affected by the aborts we had previously. And no need for an empty repo this time either.

<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>rom</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

      <th class="navbar" width="100%"></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <span class="breadcrumbs">
        Module&nbsp;rom
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="rom-pysrc.html"
            target="_top">no&nbsp;frames</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<h1 class="epydoc">Source Code for <a href="rom-module.html">Module rom</a></h1>
<pre class="py-src">
<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#============================================================================ </tt> </tt>
<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#Name        : rom.py </tt> </tt>
<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#Part of     : Helium </tt> </tt>
<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment">#Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).</tt> </tt>
<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#All rights reserved.</tt> </tt>
<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#This component and the accompanying materials are made available</tt> </tt>
<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#under the terms of the License "Eclipse Public License v1.0"</tt> </tt>
<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#which accompanies this distribution, and is available</tt> </tt>
<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#at the URL "http://www.eclipse.org/legal/epl-v10.html".</tt> </tt>
<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#Initial Contributors:</tt> </tt>
<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#Nokia Corporation - initial contribution.</tt> </tt>
<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#Contributors:</tt> </tt>
<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#Description:</tt> </tt>
<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#===============================================================================</tt> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-comment"></tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-docstring">""" This modules implements rombuilders.</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">shutil</tt> </tt>
<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">types</tt> </tt>
<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Method ccm.FourPartName.version()=ccm.FourPartName-class.html#version,Module version=version-module.html"><a title="ccm.FourPartName.version
version" class="py-name" href="#" onclick="return doclink('link-0', 'version', 'link-0');">version</a></tt> <tt class="py-keyword">import</tt> <tt id="link-1" class="py-name" targets="Class version.Version=version.Version-class.html"><a title="version.Version" class="py-name" href="#" onclick="return doclink('link-1', 'Version', 'link-1');">Version</a></tt> </tt>
<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">re</tt> </tt>
<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Module escapeddict=escapeddict-module.html"><a title="escapeddict" class="py-name" href="#" onclick="return doclink('link-2', 'escapeddict', 'link-2');">escapeddict</a></tt> </tt>
<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-3" class="py-name" targets="Package imaker=imaker-module.html"><a title="imaker" class="py-name" href="#" onclick="return doclink('link-3', 'imaker', 'link-3');">imaker</a></tt> </tt>
<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"> </tt>
<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"><tt class="py-comment"># Uncomment this line to enable logging in this module, or configure logging elsewhere</tt> </tt>
<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#logging.basicConfig(level=logging.DEBUG)</tt> </tt>
<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"><tt class="py-comment"></tt><tt id="link-4" class="py-name" targets="Variable archive.scanners.logger=archive.scanners-module.html#logger,Variable archive.selectors.logger=archive.selectors-module.html#logger,Variable buildmanagement.logger=buildmanagement-module.html#logger,Variable flash_config.logger=flash_config-module.html#logger,Module helium.logger=helium.logger-module.html,Variable imaker.iqrf.logger=imaker.iqrf-module.html#logger,Variable integration.templatebuilder.logger=integration.templatebuilder-module.html#logger,Variable rom.logger=rom-module.html#logger"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-4', 'logger', 'link-4');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"rom"</tt><tt class="py-op">)</tt> </tt>
<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"> </tt>
<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"> </tt>
<a name="get_abstract_parents"></a><div id="get_abstract_parents-def"><a name="L37"></a><tt class="py-lineno"> 37</tt> <a class="py-toggle" href="#" id="get_abstract_parents-toggle" onclick="return toggle('get_abstract_parents');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="rom-module.html#get_abstract_parents">get_abstract_parents</a><tt class="py-op">(</tt><tt class="py-param">config</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="get_abstract_parents-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="get_abstract_parents-expanded"><a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">    <tt class="py-docstring">""" Create from a config element a list of parent</tt> </tt>
<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"><tt class="py-docstring">        that are abstract (not buildable).</tt> </tt>
<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">    <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">    <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">config</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">config</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt class="py-name">abstract</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Method ccm.Folder.append()=ccm.Folder-class.html#append,Method ccm.Task.append()=ccm.Task-class.html#append"><a title="ccm.Folder.append
ccm.Task.append" class="py-name" href="#" onclick="return doclink('link-5', 'append', 'link-5');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">config</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">)</tt> </tt>
<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">        <tt class="py-name">config</tt> <tt class="py-op">=</tt> <tt class="py-name">config</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> </tt>
<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">result</tt> </tt>
</div><a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line"> </tt>
<a name="read_file_content"></a><div id="read_file_content-def"><a name="L48"></a><tt class="py-lineno"> 48</tt> <a class="py-toggle" href="#" id="read_file_content-toggle" onclick="return toggle('read_file_content');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="rom-module.html#read_file_content">read_file_content</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="read_file_content-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="read_file_content-expanded"><a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">    <tt class="py-docstring">""" Read the whole file content.</tt> </tt>
<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">    <tt class="py-name">ftr</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-6" class="py-name" targets="Variable symrec.ReleaseMetadata.filename=symrec.ReleaseMetadata-class.html#filename"><a title="symrec.ReleaseMetadata.filename" class="py-name" href="#" onclick="return doclink('link-6', 'filename', 'link-6');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">"r"</tt><tt class="py-op">)</tt> </tt>
<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">    <tt id="link-7" class="py-name" targets="Method ccm.File.content()=ccm.File-class.html#content"><a title="ccm.File.content" class="py-name" href="#" onclick="return doclink('link-7', 'content', 'link-7');">content</a></tt> <tt class="py-op">=</tt> <tt class="py-name">ftr</tt><tt class="py-op">.</tt><tt class="py-name">read</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">    <tt class="py-name">ftr</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method build.model.BOM.close()=build.model.BOM-class.html#close,Method build.model.SessionCreator.close()=build.model.SessionCreator-class.html#close,Method buildtools.AbstractOutputWriter.close()=buildtools.AbstractOutputWriter-class.html#close,Method ccm.AbstractSession.close()=ccm.AbstractSession-class.html#close,Method ccm.Session.close()=ccm.Session-class.html#close,Method ccm.SessionPool.close()=ccm.SessionPool-class.html#close,Method ccm.extra.CachedSessionProvider.close()=ccm.extra.CachedSessionProvider-class.html#close,Method ccm.extra.SessionProvider.close()=ccm.extra.SessionProvider-class.html#close,Method log2xml.LogWriter.close()=log2xml.LogWriter-class.html#close,Method preparation.PreparationBuilder.close()=preparation.PreparationBuilder-class.html#close,Method sysdef.io.FlashImageSizeWriter.close()=sysdef.io.FlashImageSizeWriter-class.html#close"><a title="build.model.BOM.close
build.model.SessionCreator.close
buildtools.AbstractOutputWriter.close
ccm.AbstractSession.close
ccm.Session.close
ccm.SessionPool.close
ccm.extra.CachedSessionProvider.close
ccm.extra.SessionProvider.close
log2xml.LogWriter.close
preparation.PreparationBuilder.close
sysdef.io.FlashImageSizeWriter.close" class="py-name" href="#" onclick="return doclink('link-8', 'close', 'link-8');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-9" class="py-name"><a title="ccm.File.content" class="py-name" href="#" onclick="return doclink('link-9', 'content', 'link-7');">content</a></tt> </tt>
</div><a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"> </tt>
<a name="escape_string"></a><div id="escape_string-def"><a name="L56"></a><tt class="py-lineno"> 56</tt> <a class="py-toggle" href="#" id="escape_string-toggle" onclick="return toggle('escape_string');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="rom-module.html#escape_string">escape_string</a><tt class="py-op">(</tt><tt class="py-param">string</tt><tt class="py-op">,</tt> <tt class="py-param">config</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="escape_string-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="escape_string-expanded"><a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">    <tt class="py-docstring">""" Escape a string recursively.</tt> </tt>
<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">    <tt class="py-comment">#data = escapeddict.EscapedDict(config)</tt> </tt>
<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-comment">#string = re.sub(r'\${(?P&lt;name&gt;[._a-zA-Z0-9]+)}', r'%(\g&lt;name&gt;)s', string)</tt> </tt>
<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-comment">#return string % data</tt> </tt>
<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">return</tt> <tt class="py-name">config</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Method configuration.Configuration.interpolate()=configuration.Configuration-class.html#interpolate"><a title="configuration.Configuration.interpolate" class="py-name" href="#" onclick="return doclink('link-10', 'interpolate', 'link-10');">interpolate</a></tt><tt class="py-op">(</tt><tt class="py-name">string</tt><tt class="py-op">)</tt> </tt>
</div><a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"> </tt>
<a name="get_makefile_target"></a><div id="get_makefile_target-def"><a name="L64"></a><tt class="py-lineno"> 64</tt> <a class="py-toggle" href="#" id="get_makefile_target-toggle" onclick="return toggle('get_makefile_target');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="rom-module.html#get_makefile_target">get_makefile_target</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="get_makefile_target-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="get_makefile_target-expanded"><a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">    <tt class="py-docstring">""" Retrieve the target name of a step</tt> </tt>
<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">    <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt class="py-string">r"^(?P&lt;target&gt;.+?)\s*:"</tt><tt class="py-op">,</tt> <tt class="py-name">text</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">M</tt><tt class="py-op">)</tt> </tt>
<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">result</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">groupdict</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-string">'target'</tt><tt class="py-op">]</tt> </tt>
<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Could'nt determine target name"</tt><tt class="py-op">)</tt> </tt>
</div><a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"> </tt>
<a name="remove_duplicates"></a><div id="remove_duplicates-def"><a name="L72"></a><tt class="py-lineno"> 72</tt> <a class="py-toggle" href="#" id="remove_duplicates-toggle" onclick="return toggle('remove_duplicates');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="rom-module.html#remove_duplicates">remove_duplicates</a><tt class="py-op">(</tt><tt class="py-param">array</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="remove_duplicates-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="remove_duplicates-expanded"><a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">    <tt class="py-docstring">""" Remove dusplicates values from an array. """</tt> </tt>
<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">    <tt class="py-name">elements</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">element</tt> <tt class="py-keyword">in</tt> <tt class="py-name">array</tt><tt class="py-op">:</tt> <tt class="py-name">elements</tt><tt class="py-op">[</tt><tt class="py-name">element</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">element</tt> </tt>
<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">elements</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Method ccm.CCMObject.keys()=ccm.CCMObject-class.html#keys,Method configuration.Configuration.keys()=configuration.Configuration-class.html#keys,Method configuration.NestedConfiguration.keys()=configuration.NestedConfiguration-class.html#keys,Method symrec.ReleaseMetadata.keys()=symrec.ReleaseMetadata-class.html#keys"><a title="ccm.CCMObject.keys
configuration.Configuration.keys
configuration.NestedConfiguration.keys
symrec.ReleaseMetadata.keys" class="py-name" href="#" onclick="return doclink('link-11', 'keys', 'link-11');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line"> </tt>
<a name="get_product_path_bsf"></a><div id="get_product_path_bsf-def"><a name="L78"></a><tt class="py-lineno"> 78</tt> <a class="py-toggle" href="#" id="get_product_path_bsf-toggle" onclick="return toggle('get_product_path_bsf');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="rom-module.html#get_product_path_bsf">get_product_path_bsf</a><tt class="py-op">(</tt><tt class="py-param">product</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="get_product_path_bsf-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="get_product_path_bsf-expanded"><a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">    <tt class="py-docstring">""" Get product path using the BSF. """</tt> </tt>
<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt id="link-12" class="py-name" targets="Module bsf=bsf-module.html"><a title="bsf" class="py-name" href="#" onclick="return doclink('link-12', 'bsf', 'link-12');">bsf</a></tt> </tt>
<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">    <tt class="py-comment"># read product hierarchy</tt> </tt>
<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-name">bsfs</tt> <tt class="py-op">=</tt> <tt id="link-13" class="py-name"><a title="bsf" class="py-name" href="#" onclick="return doclink('link-13', 'bsf', 'link-12');">bsf</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Function bsf.read_all()=bsf-module.html#read_all"><a title="bsf.read_all" class="py-name" href="#" onclick="return doclink('link-14', 'read_all', 'link-14');">read_all</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">bsfs</tt><tt class="py-op">[</tt><tt id="link-15" class="py-name" targets="Variable symrec.ReleaseMetadata.product=symrec.ReleaseMetadata-class.html#product"><a title="symrec.ReleaseMetadata.product" class="py-name" href="#" onclick="return doclink('link-15', 'product', 'link-15');">product</a></tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method bsf.BSF.get_path()=bsf.BSF-class.html#get_path"><a title="bsf.BSF.get_path" class="py-name" href="#" onclick="return doclink('link-16', 'get_path', 'link-16');">get_path</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">     </tt>
<a name="get_product_path_var"></a><div id="get_product_path_var-def"><a name="L85"></a><tt class="py-lineno"> 85</tt> <a class="py-toggle" href="#" id="get_product_path_var-toggle" onclick="return toggle('get_product_path_var');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="rom-module.html#get_product_path_var">get_product_path_var</a><tt class="py-op">(</tt><tt class="py-param">product</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="get_product_path_var-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="get_product_path_var-expanded"><a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">    <tt class="py-docstring">""" Get product path using the new tool. """</tt> </tt>
<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-17" class="py-name"><a title="imaker" class="py-name" href="#" onclick="return doclink('link-17', 'imaker', 'link-3');">imaker</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Function imaker.api.get_product_dir()=imaker.api-module.html#get_product_dir"><a title="imaker.api.get_product_dir" class="py-name" href="#" onclick="return doclink('link-18', 'get_product_dir', 'link-18');">get_product_dir</a></tt><tt class="py-op">(</tt><tt id="link-19" class="py-name"><a title="symrec.ReleaseMetadata.product" class="py-name" href="#" onclick="return doclink('link-19', 'product', 'link-15');">product</a></tt><tt class="py-op">)</tt> </tt>
</div><a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"> </tt>
<a name="IMakerRomBuilder"></a><div id="IMakerRomBuilder-def"><a name="L89"></a><tt class="py-lineno"> 89</tt> <a class="py-toggle" href="#" id="IMakerRomBuilder-toggle" onclick="return toggle('IMakerRomBuilder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="rom.IMakerRomBuilder-class.html">IMakerRomBuilder</a><tt class="py-op">:</tt> </tt>
</div><div id="IMakerRomBuilder-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="IMakerRomBuilder-expanded"><a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">    <tt class="py-docstring">""" Configuration Builder for iMaker tool.</tt> </tt>
<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"><tt class="py-docstring">        This tool generate a makefile.</tt> </tt>
<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">     </tt>
<a name="IMakerRomBuilder.__init__"></a><div id="IMakerRomBuilder.__init__-def"><a name="L94"></a><tt class="py-lineno"> 94</tt> <a class="py-toggle" href="#" id="IMakerRomBuilder.__init__-toggle" onclick="return toggle('IMakerRomBuilder.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="rom.IMakerRomBuilder-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">config</tt><tt class="py-op">,</tt> <tt class="py-param">product</tt><tt class="py-op">,</tt> <tt class="py-param">usevar</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="IMakerRomBuilder.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IMakerRomBuilder.__init__-expanded"><a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_config</tt> <tt class="py-op">=</tt> <tt class="py-name">config</tt> </tt>
<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_product</tt> <tt class="py-op">=</tt> <tt id="link-20" class="py-name"><a title="symrec.ReleaseMetadata.product" class="py-name" href="#" onclick="return doclink('link-20', 'product', 'link-15');">product</a></tt> </tt>
</div><a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line"> </tt>
<a name="IMakerRomBuilder.process_my_traces"></a><div id="IMakerRomBuilder.process_my_traces-def"><a name="L98"></a><tt class="py-lineno"> 98</tt> <a class="py-toggle" href="#" id="IMakerRomBuilder.process_my_traces-toggle" onclick="return toggle('IMakerRomBuilder.process_my_traces');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="rom.IMakerRomBuilder-class.html#process_my_traces">process_my_traces</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">config</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="IMakerRomBuilder.process_my_traces-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IMakerRomBuilder.process_my_traces-expanded"><a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">        <tt class="py-docstring">""" Generates a mytraces.txt file under \epoc32 based on the &lt;mytraces/&gt;</tt> </tt>
<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"><tt class="py-docstring">            XML sub-elements defined for the image.</tt> </tt>
<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">        <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt><tt class="py-op">.</tt><tt class="py-name">flush</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">config</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'mytraces.binaries'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'mytraces.binaries'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">            <tt class="py-name">mytracestxt</tt> <tt class="py-op">=</tt> <tt id="link-21" class="py-name" targets="Function rom.escape_string()=rom-module.html#escape_string"><a title="rom.escape_string" class="py-name" href="#" onclick="return doclink('link-21', 'escape_string', 'link-21');">escape_string</a></tt><tt class="py-op">(</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'mytraces.file'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">config</tt><tt class="py-op">)</tt> </tt>
<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">            <tt id="link-22" class="py-name"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-22', 'logger', 'link-4');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Writing %s file"</tt> <tt class="py-op">%</tt> <tt class="py-name">mytracestxt</tt><tt class="py-op">)</tt> </tt>
<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">            <tt class="py-name">binaries</tt> <tt class="py-op">=</tt> <tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'mytraces.binaries'</tt><tt class="py-op">]</tt> </tt>
<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">            <tt class="py-name">traces_file</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">mytracestxt</tt><tt class="py-op">,</tt> <tt class="py-string">'w'</tt><tt class="py-op">)</tt> </tt>
<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">binary</tt> <tt class="py-keyword">in</tt> <tt class="py-name">binaries</tt><tt class="py-op">:</tt> </tt>
<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">                <tt class="py-name">traces_file</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Method archive.builders.ArchivePreBuilder.write()=archive.builders.ArchivePreBuilder-class.html#write,Method build.model.BOMDeltaXMLWriter.write()=build.model.BOMDeltaXMLWriter-class.html#write,Method build.model.BOMXMLWriter.write()=build.model.BOMXMLWriter-class.html#write,Method buildtools.AbstractOutputWriter.write()=buildtools.AbstractOutputWriter-class.html#write,Method buildtools.AntWriter.write()=buildtools.AntWriter-class.html#write,Method buildtools.EBSWriter.write()=buildtools.EBSWriter-class.html#write,Method buildtools.MakeWriter.write()=buildtools.MakeWriter-class.html#write,Method buildtools.StringWriter.write()=buildtools.StringWriter-class.html#write,Method flash_config.FlashConfigurationWriter.write()=flash_config.FlashConfigurationWriter-class.html#write,Method helium.documentation.APIDeltaWriter.write()=helium.documentation.APIDeltaWriter-class.html#write,Method sis.SisPreBuilder.write()=sis.SisPreBuilder-class.html#write,Method sysdef.io.FlashImageSizeWriter.write()=sysdef.io.FlashImageSizeWriter-class.html#write,Method sysdef.io.MakeWriter.write()=sysdef.io.MakeWriter-class.html#write,Method sysdef.io.MakeWriter2.write()=sysdef.io.MakeWriter2-class.html#write,Method sysdef.io.MakeWriter3.write()=sysdef.io.MakeWriter3-class.html#write,Method version.Version.write()=version.Version-class.html#write"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-23', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">binary</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">"\n"</tt><tt class="py-op">)</tt> </tt>
<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">            <tt class="py-name">traces_file</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="build.model.BOM.close
build.model.SessionCreator.close
buildtools.AbstractOutputWriter.close
ccm.AbstractSession.close
ccm.Session.close
ccm.SessionPool.close
ccm.extra.CachedSessionProvider.close
ccm.extra.SessionProvider.close
log2xml.LogWriter.close
preparation.PreparationBuilder.close
sysdef.io.FlashImageSizeWriter.close" class="py-name" href="#" onclick="return doclink('link-24', 'close', 'link-8');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line"> </tt>
<a name="IMakerRomBuilder.build"></a><div id="IMakerRomBuilder.build-def"><a name="L112"></a><tt class="py-lineno">112</tt> <a class="py-toggle" href="#" id="IMakerRomBuilder.build-toggle" onclick="return toggle('IMakerRomBuilder.build');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="rom.IMakerRomBuilder-class.html#build">build</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="IMakerRomBuilder.build-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IMakerRomBuilder.build-expanded"><a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">        <tt class="py-docstring">""" Generate the makefile from xml configuration.</tt> </tt>
<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line"><tt class="py-docstring">            That method should be splitted....it's to long!!!</tt> </tt>
<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">        <tt class="py-name">configs</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_config</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method configuration.ConfigurationSet.getConfigurations()=configuration.ConfigurationSet-class.html#getConfigurations,Method configuration.NestedConfigurationBuilder.getConfigurations()=configuration.NestedConfigurationBuilder-class.html#getConfigurations"><a title="configuration.ConfigurationSet.getConfigurations
configuration.NestedConfigurationBuilder.getConfigurations" class="py-name" href="#" onclick="return doclink('link-25', 'getConfigurations', 'link-25');">getConfigurations</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_product</tt><tt class="py-op">)</tt> </tt>
<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">configs</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">             </tt>
<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">            <tt class="py-comment"># creating additional targets</tt> </tt>
<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"><tt class="py-comment"></tt>            <tt id="link-26" class="py-name" targets="Method sysdef.api.SystemDefinition.targets()=sysdef.api.SystemDefinition-class.html#targets,Method sysdef.api.TargetList.targets()=sysdef.api.TargetList-class.html#targets"><a title="sysdef.api.SystemDefinition.targets
sysdef.api.TargetList.targets" class="py-name" href="#" onclick="return doclink('link-26', 'targets', 'link-26');">targets</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">             </tt>
<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">            <tt class="py-name">master_filename</tt> <tt class="py-op">=</tt> <tt class="py-name">configs</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'main.makefile.template'</tt><tt class="py-op">]</tt> </tt>
<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">             </tt>
<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">            <tt class="py-name">outputfilename</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method buildtools.Command.path()=buildtools.Command-class.html#path,Method sysdef.api.SpecialInstruction.path()=sysdef.api.SpecialInstruction-class.html#path,Method sysdef.api.Unit.path()=sysdef.api.Unit-class.html#path"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-27', 'path', 'link-27');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">basename</tt><tt class="py-op">(</tt><tt class="py-name">master_filename</tt><tt class="py-op">)</tt> </tt>
<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">configs</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'output.makefile.filename'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">                <tt class="py-name">outputfilename</tt> <tt class="py-op">=</tt> <tt class="py-name">configs</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'output.makefile.filename'</tt><tt class="py-op">]</tt> </tt>
<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">             </tt>
<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">            <tt id="link-28" class="py-name"><a title="symrec.ReleaseMetadata.filename" class="py-name" href="#" onclick="return doclink('link-28', 'filename', 'link-6');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"%s/%s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-29" class="py-name" targets="Function rom.get_product_path_var()=rom-module.html#get_product_path_var"><a title="rom.get_product_path_var" class="py-name" href="#" onclick="return doclink('link-29', 'get_product_path_var', 'link-29');">get_product_path_var</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_product</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">outputfilename</tt><tt class="py-op">)</tt> </tt>
<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">            <tt id="link-30" class="py-name" targets="Variable ccm.Result.output=ccm.Result-class.html#output,Package helium.output=helium.output-module.html"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-30', 'output', 'link-30');">output</a></tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-31" class="py-name"><a title="symrec.ReleaseMetadata.filename" class="py-name" href="#" onclick="return doclink('link-31', 'filename', 'link-6');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">"w+"</tt><tt class="py-op">)</tt> </tt>
<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">            <tt id="link-32" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-32', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-33', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"# DO NOT EDIT - FILE AUTOMATICALLY GENERATED\n"</tt><tt class="py-op">)</tt> </tt>
<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">            <tt id="link-34" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-34', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-35', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"# HELIUM variant configuration tool (C) Nokia - 2007\n\n"</tt><tt class="py-op">)</tt> </tt>
<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">            <tt class="py-name">mkdefine</tt> <tt class="py-op">=</tt> <tt class="py-string">'__'</tt> <tt class="py-op">+</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">r'[^\w]'</tt><tt class="py-op">,</tt> <tt class="py-string">'_'</tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-36', 'path', 'link-27');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">basename</tt><tt class="py-op">(</tt><tt class="py-name">outputfilename</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">'__'</tt> </tt>
<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">            <tt id="link-37" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-37', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-38', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"ifndef %s\n"</tt> <tt class="py-op">%</tt> <tt class="py-name">mkdefine</tt><tt class="py-op">)</tt> </tt>
<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">            <tt id="link-39" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-39', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-40', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"%s := 1\n\n"</tt> <tt class="py-op">%</tt> <tt class="py-name">mkdefine</tt><tt class="py-op">)</tt> </tt>
<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">            <tt class="py-name">master_template</tt> <tt class="py-op">=</tt> <tt id="link-41" class="py-name" targets="Function rom.read_file_content()=rom-module.html#read_file_content"><a title="rom.read_file_content" class="py-name" href="#" onclick="return doclink('link-41', 'read_file_content', 'link-41');">read_file_content</a></tt><tt class="py-op">(</tt><tt class="py-name">master_filename</tt><tt class="py-op">)</tt> </tt>
<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">            <tt id="link-42" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-42', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-43', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">configs</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="configuration.Configuration.interpolate" class="py-name" href="#" onclick="return doclink('link-44', 'interpolate', 'link-10');">interpolate</a></tt><tt class="py-op">(</tt><tt class="py-name">master_template</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">"\n"</tt><tt class="py-op">)</tt> </tt>
<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">                         </tt>
<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">config</tt> <tt class="py-keyword">in</tt> <tt class="py-name">configs</tt><tt class="py-op">:</tt> </tt>
<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">                <tt class="py-comment"># generating traces</tt> </tt>
<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"><tt class="py-comment"></tt>                <tt class="py-comment">#self.process_my_traces(config)</tt> </tt>
<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"><tt class="py-comment"></tt>                                                  </tt>
<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">                 </tt>
<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">config</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Method ccm.FourPartName.type()=ccm.FourPartName-class.html#type"><a title="ccm.FourPartName.type" class="py-name" href="#" onclick="return doclink('link-45', 'type', 'link-45');">type</a></tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">                    <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Type not defined for configuration '%s'"</tt> <tt class="py-op">%</tt> <tt class="py-name">config</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name" targets="Method buildtools.Command.name()=buildtools.Command-class.html#name,Method ccm.FourPartName.name()=ccm.FourPartName-class.html#name,Method symrec.ServicePack.name()=symrec.ServicePack-class.html#name,Method sysdef.api.Configuration.name()=sysdef.api.Configuration-class.html#name,Method sysdef.api.Option.name()=sysdef.api.Option-class.html#name,Method sysdef.api.SpecialInstruction.name()=sysdef.api.SpecialInstruction-class.html#name,Method sysdef.api.Target.name()=sysdef.api.Target-class.html#name,Method sysdef.api.TargetList.name()=sysdef.api.TargetList-class.html#name,Method sysdef.api.Unit.name()=sysdef.api.Unit-class.html#name,Method sysdef.api._UnitGroup.name()=sysdef.api._UnitGroup-class.html#name"><a title="buildtools.Command.name
ccm.FourPartName.name
symrec.ServicePack.name
sysdef.api.Configuration.name
sysdef.api.Option.name
sysdef.api.SpecialInstruction.name
sysdef.api.Target.name
sysdef.api.TargetList.name
sysdef.api.Unit.name
sysdef.api._UnitGroup.name" class="py-name" href="#" onclick="return doclink('link-46', 'name', 'link-46');">name</a></tt><tt class="py-op">)</tt> </tt>
<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">                 </tt>
<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">                <tt class="py-comment"># generate makefile targets from templates</tt> </tt>
<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"><tt class="py-comment"></tt>                <tt class="py-keyword">if</tt> <tt class="py-name">config</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">"%s.makefile.template"</tt> <tt class="py-op">%</tt> <tt class="py-name">config</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="ccm.FourPartName.type" class="py-name" href="#" onclick="return doclink('link-47', 'type', 'link-45');">type</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">                    <tt class="py-name">template</tt> <tt class="py-op">=</tt> <tt id="link-48" class="py-name"><a title="rom.read_file_content" class="py-name" href="#" onclick="return doclink('link-48', 'read_file_content', 'link-41');">read_file_content</a></tt><tt class="py-op">(</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">"%s.makefile.template"</tt> <tt class="py-op">%</tt> <tt class="py-name">config</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="ccm.FourPartName.type" class="py-name" href="#" onclick="return doclink('link-49', 'type', 'link-45');">type</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">                    <tt class="py-name">image_types</tt> <tt class="py-op">=</tt> <tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'image.type'</tt><tt class="py-op">]</tt> </tt>
<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'image.type'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">types</tt><tt class="py-op">.</tt><tt class="py-name">ListType</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">                        <tt class="py-name">image_types</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'image.type'</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">romtype</tt> <tt class="py-keyword">in</tt> <tt class="py-name">image_types</tt><tt class="py-op">:</tt> </tt>
<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">                        <tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'image.type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">romtype</tt> </tt>
<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">                        <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">config</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="configuration.Configuration.interpolate" class="py-name" href="#" onclick="return doclink('link-50', 'interpolate', 'link-10');">interpolate</a></tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">template</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">                        <tt id="link-51" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-51', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-52', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">+</tt><tt class="py-string">"\n"</tt><tt class="py-op">)</tt> </tt>
<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">                        <tt class="py-name">subtargets</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-53" class="py-name" targets="Function rom.get_makefile_target()=rom-module.html#get_makefile_target"><a title="rom.get_makefile_target" class="py-name" href="#" onclick="return doclink('link-53', 'get_makefile_target', 'link-53');">get_makefile_target</a></tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">                        <tt class="py-keyword">for</tt> <tt class="py-name">parent</tt> <tt class="py-keyword">in</tt> <tt id="link-54" class="py-name" targets="Function rom.get_abstract_parents()=rom-module.html#get_abstract_parents"><a title="rom.get_abstract_parents" class="py-name" href="#" onclick="return doclink('link-54', 'get_abstract_parents', 'link-54');">get_abstract_parents</a></tt><tt class="py-op">(</tt><tt class="py-name">config</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">                            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-55" class="py-name"><a title="sysdef.api.SystemDefinition.targets
sysdef.api.TargetList.targets" class="py-name" href="#" onclick="return doclink('link-55', 'targets', 'link-26');">targets</a></tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="buildtools.Command.name
ccm.FourPartName.name
symrec.ServicePack.name
sysdef.api.Configuration.name
sysdef.api.Option.name
sysdef.api.SpecialInstruction.name
sysdef.api.Target.name
sysdef.api.TargetList.name
sysdef.api.Unit.name
sysdef.api._UnitGroup.name" class="py-name" href="#" onclick="return doclink('link-56', 'name', 'link-46');">name</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">                                <tt id="link-57" class="py-name"><a title="sysdef.api.SystemDefinition.targets
sysdef.api.TargetList.targets" class="py-name" href="#" onclick="return doclink('link-57', 'targets', 'link-26');">targets</a></tt><tt class="py-op">[</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="buildtools.Command.name
ccm.FourPartName.name
symrec.ServicePack.name
sysdef.api.Configuration.name
sysdef.api.Option.name
sysdef.api.SpecialInstruction.name
sysdef.api.Target.name
sysdef.api.TargetList.name
sysdef.api.Unit.name
sysdef.api._UnitGroup.name" class="py-name" href="#" onclick="return doclink('link-58', 'name', 'link-46');">name</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">                                <tt id="link-59" class="py-name"><a title="sysdef.api.SystemDefinition.targets
sysdef.api.TargetList.targets" class="py-name" href="#" onclick="return doclink('link-59', 'targets', 'link-26');">targets</a></tt><tt class="py-op">[</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="buildtools.Command.name
ccm.FourPartName.name
symrec.ServicePack.name
sysdef.api.Configuration.name
sysdef.api.Option.name
sysdef.api.SpecialInstruction.name
sysdef.api.Target.name
sysdef.api.TargetList.name
sysdef.api.Unit.name
sysdef.api._UnitGroup.name" class="py-name" href="#" onclick="return doclink('link-60', 'name', 'link-46');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'parent'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">parent</tt> </tt>
<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">                                <tt id="link-61" class="py-name"><a title="sysdef.api.SystemDefinition.targets
sysdef.api.TargetList.targets" class="py-name" href="#" onclick="return doclink('link-61', 'targets', 'link-26');">targets</a></tt><tt class="py-op">[</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="buildtools.Command.name
ccm.FourPartName.name
symrec.ServicePack.name
sysdef.api.Configuration.name
sysdef.api.Option.name
sysdef.api.SpecialInstruction.name
sysdef.api.Target.name
sysdef.api.TargetList.name
sysdef.api.Unit.name
sysdef.api._UnitGroup.name" class="py-name" href="#" onclick="return doclink('link-62', 'name', 'link-46');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'subtargets'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">                            <tt id="link-63" class="py-name"><a title="sysdef.api.SystemDefinition.targets
sysdef.api.TargetList.targets" class="py-name" href="#" onclick="return doclink('link-63', 'targets', 'link-26');">targets</a></tt><tt class="py-op">[</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="buildtools.Command.name
ccm.FourPartName.name
symrec.ServicePack.name
sysdef.api.Configuration.name
sysdef.api.Option.name
sysdef.api.SpecialInstruction.name
sysdef.api.Target.name
sysdef.api.TargetList.name
sysdef.api.Unit.name
sysdef.api._UnitGroup.name" class="py-name" href="#" onclick="return doclink('link-64', 'name', 'link-46');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'subtargets'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt class="py-name">subtargets</tt><tt class="py-op">)</tt> </tt>
<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">                            <tt id="link-65" class="py-name"><a title="sysdef.api.SystemDefinition.targets
sysdef.api.TargetList.targets" class="py-name" href="#" onclick="return doclink('link-65', 'targets', 'link-26');">targets</a></tt><tt class="py-op">[</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="buildtools.Command.name
ccm.FourPartName.name
symrec.ServicePack.name
sysdef.api.Configuration.name
sysdef.api.Option.name
sysdef.api.SpecialInstruction.name
sysdef.api.Target.name
sysdef.api.TargetList.name
sysdef.api.Unit.name
sysdef.api._UnitGroup.name" class="py-name" href="#" onclick="return doclink('link-66', 'name', 'link-46');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'subtargets'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-67" class="py-name" targets="Function rom.remove_duplicates()=rom-module.html#remove_duplicates"><a title="rom.remove_duplicates" class="py-name" href="#" onclick="return doclink('link-67', 'remove_duplicates', 'link-67');">remove_duplicates</a></tt><tt class="py-op">(</tt><tt id="link-68" class="py-name"><a title="sysdef.api.SystemDefinition.targets
sysdef.api.TargetList.targets" class="py-name" href="#" onclick="return doclink('link-68', 'targets', 'link-26');">targets</a></tt><tt class="py-op">[</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="buildtools.Command.name
ccm.FourPartName.name
symrec.ServicePack.name
sysdef.api.Configuration.name
sysdef.api.Option.name
sysdef.api.SpecialInstruction.name
sysdef.api.Target.name
sysdef.api.TargetList.name
sysdef.api.Unit.name
sysdef.api._UnitGroup.name" class="py-name" href="#" onclick="return doclink('link-69', 'name', 'link-46');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'subtargets'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">                            <tt class="py-name">subtargets</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="buildtools.Command.name
ccm.FourPartName.name
symrec.ServicePack.name
sysdef.api.Configuration.name
sysdef.api.Option.name
sysdef.api.SpecialInstruction.name
sysdef.api.Target.name
sysdef.api.TargetList.name
sysdef.api.Unit.name
sysdef.api._UnitGroup.name" class="py-name" href="#" onclick="return doclink('link-70', 'name', 'link-46');">name</a></tt><tt class="py-op">]</tt> </tt>
<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">                    <tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'image.type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">image_types</tt> </tt>
<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">                    <tt class="py-comment"># Do not raise error anymore when template is not found. </tt> </tt>
<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line"><tt class="py-comment"></tt>                    <tt class="py-keyword">print</tt> <tt class="py-string">"WARNING: Could not find template for %s (%s)"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">config</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="buildtools.Command.name
ccm.FourPartName.name
symrec.ServicePack.name
sysdef.api.Configuration.name
sysdef.api.Option.name
sysdef.api.SpecialInstruction.name
sysdef.api.Target.name
sysdef.api.TargetList.name
sysdef.api.Unit.name
sysdef.api._UnitGroup.name" class="py-name" href="#" onclick="return doclink('link-71', 'name', 'link-46');">name</a></tt><tt class="py-op">,</tt><tt class="py-string">"%s.makefile.template"</tt> <tt class="py-op">%</tt> <tt class="py-name">config</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="ccm.FourPartName.type" class="py-name" href="#" onclick="return doclink('link-72', 'type', 'link-45');">type</a></tt><tt class="py-op">)</tt> </tt>
<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">                    <tt class="py-comment">#raise Exception("Could not find template for %s (%s)" % (config.name,"%s.makefile.template" % config.type))</tt> </tt>
<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"><tt class="py-comment"></tt>                </tt>
<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">                     </tt>
<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">            <tt id="link-73" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-73', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-74', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"###############################################################################\n"</tt><tt class="py-op">)</tt> </tt>
<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">            <tt id="link-75" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-75', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-76', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"# Generated group target\n"</tt><tt class="py-op">)</tt> </tt>
<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">            <tt id="link-77" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-77', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-78', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"###############################################################################\n\n"</tt><tt class="py-op">)</tt> </tt>
<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">target</tt> <tt class="py-keyword">in</tt> <tt id="link-79" class="py-name"><a title="sysdef.api.SystemDefinition.targets
sysdef.api.TargetList.targets" class="py-name" href="#" onclick="return doclink('link-79', 'targets', 'link-26');">targets</a></tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="ccm.CCMObject.keys
configuration.Configuration.keys
configuration.NestedConfiguration.keys
symrec.ReleaseMetadata.keys" class="py-name" href="#" onclick="return doclink('link-80', 'keys', 'link-11');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-81" class="py-name"><a title="sysdef.api.SystemDefinition.targets
sysdef.api.TargetList.targets" class="py-name" href="#" onclick="return doclink('link-81', 'targets', 'link-26');">targets</a></tt><tt class="py-op">[</tt><tt class="py-name">target</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'parent'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'build.parallel'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'true'</tt><tt class="py-op">:</tt> </tt>
<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">                    <tt id="link-82" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-82', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-83', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"%s: %s\n\n"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">target</tt><tt class="py-op">,</tt> <tt class="py-string">" "</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt id="link-84" class="py-name"><a title="sysdef.api.SystemDefinition.targets
sysdef.api.TargetList.targets" class="py-name" href="#" onclick="return doclink('link-84', 'targets', 'link-26');">targets</a></tt><tt class="py-op">[</tt><tt class="py-name">target</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'subtargets'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">                    <tt id="link-85" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-85', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-86', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"%s-dryrun:\n"</tt> <tt class="py-op">%</tt> <tt class="py-name">target</tt><tt class="py-op">)</tt> </tt>
<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">                    <tt id="link-87" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-87', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-88', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"\t@$(CALL_TARGET) -n %s\n\n"</tt> <tt class="py-op">%</tt> <tt class="py-name">target</tt><tt class="py-op">)</tt> </tt>
<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">                    <tt id="link-89" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-89', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-90', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"%s-dryrun:\n"</tt> <tt class="py-op">%</tt> <tt class="py-name">target</tt><tt class="py-op">)</tt> </tt>
<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">subtarget</tt> <tt class="py-keyword">in</tt> <tt id="link-91" class="py-name"><a title="sysdef.api.SystemDefinition.targets
sysdef.api.TargetList.targets" class="py-name" href="#" onclick="return doclink('link-91', 'targets', 'link-26');">targets</a></tt><tt class="py-op">[</tt><tt class="py-name">target</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'subtargets'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">                        <tt id="link-92" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-92', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-93', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"\t@$(CALL_TARGET) -n %s\n"</tt> <tt class="py-op">%</tt> <tt class="py-name">subtarget</tt><tt class="py-op">)</tt> </tt>
<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">                    <tt id="link-94" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-94', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-95" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-95', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"\n"</tt><tt class="py-op">)</tt> </tt>
<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">                    <tt id="link-96" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-96', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-97', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"%s:\n"</tt> <tt class="py-op">%</tt> <tt class="py-name">target</tt><tt class="py-op">)</tt> </tt>
<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">                    <tt id="link-98" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-98', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-99', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"\t@echo === %s started\n"</tt> <tt class="py-op">%</tt> <tt class="py-name">target</tt><tt class="py-op">)</tt> </tt>
<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">subtarget</tt> <tt class="py-keyword">in</tt> <tt id="link-100" class="py-name"><a title="sysdef.api.SystemDefinition.targets
sysdef.api.TargetList.targets" class="py-name" href="#" onclick="return doclink('link-100', 'targets', 'link-26');">targets</a></tt><tt class="py-op">[</tt><tt class="py-name">target</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">'subtargets'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">                        <tt id="link-101" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-101', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-102', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"\t$(CALL_TARGET) %s\n"</tt> <tt class="py-op">%</tt> <tt class="py-name">subtarget</tt><tt class="py-op">)</tt> </tt>
<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">                    <tt id="link-103" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-103', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-104', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"\t@echo === %s finished\n"</tt> <tt class="py-op">%</tt> <tt class="py-name">target</tt><tt class="py-op">)</tt> </tt>
<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">                    <tt id="link-105" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-105', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-106', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"\n"</tt><tt class="py-op">)</tt> </tt>
<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">            <tt id="link-107" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-107', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-108', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"\nendif # %s\n"</tt> <tt class="py-op">%</tt> <tt class="py-name">mkdefine</tt><tt class="py-op">)</tt> </tt>
<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">            <tt id="link-109" class="py-name"><a title="ccm.Result.output
helium.output" class="py-name" href="#" onclick="return doclink('link-109', 'output', 'link-30');">output</a></tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="build.model.BOM.close
build.model.SessionCreator.close
buildtools.AbstractOutputWriter.close
ccm.AbstractSession.close
ccm.Session.close
ccm.SessionPool.close
ccm.extra.CachedSessionProvider.close
ccm.extra.SessionProvider.close
log2xml.LogWriter.close
preparation.PreparationBuilder.close
sysdef.io.FlashImageSizeWriter.close" class="py-name" href="#" onclick="return doclink('link-110', 'close', 'link-8');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt class="py-string">"File %s has been generated."</tt> <tt class="py-op">%</tt> <tt id="link-111" class="py-name"><a title="symrec.ReleaseMetadata.filename" class="py-name" href="#" onclick="return doclink('link-111', 'filename', 'link-6');">filename</a></tt> </tt>
<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">"Could not find configuration: '%s'"</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_product</tt><tt class="py-op">)</tt> </tt>
</div></div><a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line"> </tt>
<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line"> </tt>
<a name="RomBuilder"></a><div id="RomBuilder-def"><a name="L198"></a><tt class="py-lineno">198</tt> <a class="py-toggle" href="#" id="RomBuilder-toggle" onclick="return toggle('RomBuilder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="rom.RomBuilder-class.html">RomBuilder</a><tt class="py-op">:</tt> </tt>
</div><div id="RomBuilder-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="RomBuilder-expanded"><a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">    <tt class="py-docstring">""" Builder that create roms using makefpsx.</tt> </tt>
<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="RomBuilder.__init__"></a><div id="RomBuilder.__init__-def"><a name="L201"></a><tt class="py-lineno">201</tt> <a class="py-toggle" href="#" id="RomBuilder.__init__-toggle" onclick="return toggle('RomBuilder.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="rom.RomBuilder-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">configs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="RomBuilder.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RomBuilder.__init__-expanded"><a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">configs</tt> <tt class="py-op">=</tt> <tt class="py-name">configs</tt> </tt>
</div><a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line"> </tt>
<a name="RomBuilder.build"></a><div id="RomBuilder.build-def"><a name="L204"></a><tt class="py-lineno">204</tt> <a class="py-toggle" href="#" id="RomBuilder.build-toggle" onclick="return toggle('RomBuilder.build');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="rom.RomBuilder-class.html#build">build</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="RomBuilder.build-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RomBuilder.build-expanded"><a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">        <tt class="py-docstring">""" Go throught the config and build each roms.</tt> </tt>
<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">config</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">configs</tt><tt class="py-op">:</tt> </tt>
<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">k</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">config</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="ccm.CCMObject.keys
configuration.Configuration.keys
configuration.NestedConfiguration.keys
symrec.ReleaseMetadata.keys" class="py-name" href="#" onclick="return doclink('link-112', 'keys', 'link-11');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">                <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt> </tt>
<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">types</tt><tt class="py-op">.</tt><tt class="py-name">UnicodeType</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">                    <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'ascii'</tt><tt class="py-op">,</tt> <tt class="py-string">'ignore'</tt><tt class="py-op">)</tt> </tt>
<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt> <tt class="py-name">k</tt> <tt class="py-op">+</tt> <tt class="py-string">': '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">            <tt class="py-name">image</tt> <tt class="py-op">=</tt> <tt id="link-113" class="py-name" targets="Class rom.Image=rom.Image-class.html"><a title="rom.Image" class="py-name" href="#" onclick="return doclink('link-113', 'Image', 'link-113');">Image</a></tt><tt class="py-op">(</tt><tt class="py-name">config</tt><tt class="py-op">)</tt> </tt>
<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">            <tt class="py-name">image</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name" targets="Package build=build-module.html,Method delta_zip.MD5SignatureBuilder.build()=delta_zip.MD5SignatureBuilder-class.html#build,Method integration.templatebuilder.TemplateBuilder.build()=integration.templatebuilder.TemplateBuilder-class.html#build,Method rom.IMakerRomBuilder.build()=rom.IMakerRomBuilder-class.html#build,Method rom.Image.build()=rom.Image-class.html#build,Method rom.RomBuilder.build()=rom.RomBuilder-class.html#build"><a title="build
delta_zip.MD5SignatureBuilder.build
integration.templatebuilder.TemplateBuilder.build
rom.IMakerRomBuilder.build
rom.Image.build
rom.RomBuilder.build" class="py-name" href="#" onclick="return doclink('link-114', 'build', 'link-114');">build</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> <tt class="py-string">'======================================'</tt> </tt>
<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt> </tt>
</div></div><a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line"> </tt>
<a name="Image"></a><div id="Image-def"><a name="L218"></a><tt class="py-lineno">218</tt> <a class="py-toggle" href="#" id="Image-toggle" onclick="return toggle('Image');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="rom.Image-class.html">Image</a><tt class="py-op">:</tt> </tt>
</div><div id="Image-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Image-expanded"><a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">    <tt class="py-docstring">""" An Image object represents a ROM image, or .fpsx file.</tt> </tt>
<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line"> </tt>
<a name="Image.__init__"></a><div id="Image.__init__-def"><a name="L222"></a><tt class="py-lineno">222</tt> <a class="py-toggle" href="#" id="Image.__init__-toggle" onclick="return toggle('Image.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="rom.Image-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">config</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Image.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Image.__init__-expanded"><a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">        <tt class="py-docstring">""" Initialise the Image object.</tt> </tt>
<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt> <tt class="py-op">=</tt> <tt class="py-name">config</tt> </tt>
</div><a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line"> </tt>
<a name="Image.build"></a><div id="Image.build-def"><a name="L227"></a><tt class="py-lineno">227</tt> <a class="py-toggle" href="#" id="Image.build-toggle" onclick="return toggle('Image.build');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="rom.Image-class.html#build">build</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Image.build-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Image.build-expanded"><a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">        <tt class="py-docstring">""" Main method that handles the whole sequence of building the rom and</tt> </tt>
<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line"><tt class="py-docstring">            moving all related files to the correct location.</tt> </tt>
<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-115" class="py-name" targets="Method rom.Image._create_destination()=rom.Image-class.html#_create_destination"><a title="rom.Image._create_destination" class="py-name" href="#" onclick="return doclink('link-115', '_create_destination', 'link-115');">_create_destination</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name" targets="Method rom.Image._process_cmt()=rom.Image-class.html#_process_cmt"><a title="rom.Image._process_cmt" class="py-name" href="#" onclick="return doclink('link-116', '_process_cmt', 'link-116');">_process_cmt</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name" targets="Method rom.Image._write_version()=rom.Image-class.html#_write_version"><a title="rom.Image._write_version" class="py-name" href="#" onclick="return doclink('link-117', '_write_version', 'link-117');">_write_version</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name" targets="Method rom.Image._process_my_traces()=rom.Image-class.html#_process_my_traces"><a title="rom.Image._process_my_traces" class="py-name" href="#" onclick="return doclink('link-118', '_process_my_traces', 'link-118');">_process_my_traces</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name" targets="Method rom.Image._callrommake()=rom.Image-class.html#_callrommake"><a title="rom.Image._callrommake" class="py-name" href="#" onclick="return doclink('link-119', '_callrommake', 'link-119');">_callrommake</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name" targets="Method rom.Image._clean_mytraces()=rom.Image-class.html#_clean_mytraces"><a title="rom.Image._clean_mytraces" class="py-name" href="#" onclick="return doclink('link-120', '_clean_mytraces', 'link-120');">_clean_mytraces</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name" targets="Method rom.Image._move_image_files()=rom.Image-class.html#_move_image_files"><a title="rom.Image._move_image_files" class="py-name" href="#" onclick="return doclink('link-121', '_move_image_files', 'link-121');">_move_image_files</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> </tt>
</div><a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line"> </tt>
<a name="Image._create_destination"></a><div id="Image._create_destination-def"><a name="L240"></a><tt class="py-lineno">240</tt> <a class="py-toggle" href="#" id="Image._create_destination-toggle" onclick="return toggle('Image._create_destination');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="rom.Image-class.html#_create_destination">_create_destination</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Image._create_destination-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Image._create_destination-expanded"><a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line">        <tt class="py-docstring">""" Creates the destination directory of the ROM files if it does not exist.</tt> </tt>
<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line">        <tt class="py-name">dest</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'rom.output.dir'</tt><tt class="py-op">]</tt> </tt>
<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-122', 'path', 'link-27');">path</a></tt><tt class="py-op">.</tt><tt id="link-123" class="py-name" targets="Method ccm.CCMObject.exists()=ccm.CCMObject-class.html#exists"><a title="ccm.CCMObject.exists" class="py-name" href="#" onclick="return doclink('link-123', 'exists', 'link-123');">exists</a></tt><tt class="py-op">(</tt> <tt class="py-name">dest</tt> <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">makedirs</tt><tt class="py-op">(</tt> <tt class="py-name">dest</tt> <tt class="py-op">)</tt> </tt>
</div><a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line"> </tt>
<a name="Image._process_cmt"></a><div id="Image._process_cmt-def"><a name="L247"></a><tt class="py-lineno">247</tt> <a class="py-toggle" href="#" id="Image._process_cmt-toggle" onclick="return toggle('Image._process_cmt');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="rom.Image-class.html#_process_cmt">_process_cmt</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Image._process_cmt-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Image._process_cmt-expanded"><a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">        <tt class="py-docstring">""" Copies the CMT image under \epoc32 and to the destination directory of</tt> </tt>
<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line"><tt class="py-docstring">            the ROM image, if the image will include the CMT.</tt> </tt>
<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">        <tt class="py-comment"># Check if a CMT is needed</tt> </tt>
<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'image.nocmt'</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'true'</tt><tt class="py-op">:</tt> </tt>
<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">            <tt class="py-name">dest</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'rom.output.dir'</tt><tt class="py-op">]</tt> </tt>
<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">            <tt id="link-124" class="py-name"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-124', 'logger', 'link-4');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Copying "</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'cmt'</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-string">" to "</tt> <tt class="py-op">+</tt> <tt class="py-name">dest</tt><tt class="py-op">)</tt> </tt>
<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">            <tt class="py-name">shutil</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name" targets="Method ccm.Folder.copy()=ccm.Folder-class.html#copy"><a title="ccm.Folder.copy" class="py-name" href="#" onclick="return doclink('link-125', 'copy', 'link-125');">copy</a></tt><tt class="py-op">(</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'cmt'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">dest</tt> <tt class="py-op">)</tt> </tt>
<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">            <tt id="link-126" class="py-name"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-126', 'logger', 'link-4');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Copying "</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'cmt'</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-string">" to "</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'rommake.cmt.path'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line">            <tt class="py-name">shutil</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="ccm.Folder.copy" class="py-name" href="#" onclick="return doclink('link-127', 'copy', 'link-125');">copy</a></tt><tt class="py-op">(</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'cmt'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'rommake.cmt.path'</tt><tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
</div><a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line"> </tt>
<a name="Image._write_version"></a><div id="Image._write_version-def"><a name="L259"></a><tt class="py-lineno">259</tt> <a class="py-toggle" href="#" id="Image._write_version-toggle" onclick="return toggle('Image._write_version');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="rom.Image-class.html#_write_version">_write_version</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Image._write_version-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Image._write_version-expanded"><a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">        <tt class="py-docstring">""" Generates the version text files that define the version of the ROM image.</tt> </tt>
<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line"><tt class="py-docstring">            These are in UTF16 little endian (Symbian) format.</tt> </tt>
<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">        <tt id="link-128" class="py-name"><a title="version.Version" class="py-name" href="#" onclick="return doclink('link-128', 'Version', 'link-1');">Version</a></tt><tt class="py-op">(</tt><tt class="py-string">'sw'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-129', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">        <tt id="link-130" class="py-name"><a title="version.Version" class="py-name" href="#" onclick="return doclink('link-130', 'Version', 'link-1');">Version</a></tt><tt class="py-op">(</tt><tt class="py-string">'langsw'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-131', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">        <tt id="link-132" class="py-name"><a title="version.Version" class="py-name" href="#" onclick="return doclink('link-132', 'Version', 'link-1');">Version</a></tt><tt class="py-op">(</tt><tt class="py-string">'model'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-133', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line"> </tt>
<a name="Image._process_my_traces"></a><div id="Image._process_my_traces-def"><a name="L267"></a><tt class="py-lineno">267</tt> <a class="py-toggle" href="#" id="Image._process_my_traces-toggle" onclick="return toggle('Image._process_my_traces');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="rom.Image-class.html#_process_my_traces">_process_my_traces</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Image._process_my_traces-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Image._process_my_traces-expanded"><a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">        <tt class="py-docstring">""" Generates a mytraces.txt file under \epoc32 based on the &lt;mytraces/&gt;</tt> </tt>
<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line"><tt class="py-docstring">            XML sub-elements defined for the image.</tt> </tt>
<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">        <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt><tt class="py-op">.</tt><tt class="py-name">flush</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-string">'mytraces.binaries'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">            <tt id="link-134" class="py-name"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-134', 'logger', 'link-4');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Writing mytraces.txt file"</tt><tt class="py-op">)</tt> </tt>
<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">            <tt class="py-name">binaries</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'mytraces.binaries'</tt><tt class="py-op">]</tt> </tt>
<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">            <tt class="py-name">traces_file</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'rommake.mytraces.file'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'w'</tt> <tt class="py-op">)</tt> </tt>
<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">binary</tt> <tt class="py-keyword">in</tt> <tt class="py-name">binaries</tt><tt class="py-op">:</tt> </tt>
<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">                <tt class="py-name">traces_file</tt><tt class="py-op">.</tt><tt id="link-135" class="py-name"><a title="archive.builders.ArchivePreBuilder.write
build.model.BOMDeltaXMLWriter.write
build.model.BOMXMLWriter.write
buildtools.AbstractOutputWriter.write
buildtools.AntWriter.write
buildtools.EBSWriter.write
buildtools.MakeWriter.write
buildtools.StringWriter.write
flash_config.FlashConfigurationWriter.write
helium.documentation.APIDeltaWriter.write
sis.SisPreBuilder.write
sysdef.io.FlashImageSizeWriter.write
sysdef.io.MakeWriter.write
sysdef.io.MakeWriter2.write
sysdef.io.MakeWriter3.write
version.Version.write" class="py-name" href="#" onclick="return doclink('link-135', 'write', 'link-23');">write</a></tt><tt class="py-op">(</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">binary</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">"\n"</tt> <tt class="py-op">)</tt> </tt>
<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">            <tt class="py-name">traces_file</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="build.model.BOM.close
build.model.SessionCreator.close
buildtools.AbstractOutputWriter.close
ccm.AbstractSession.close
ccm.Session.close
ccm.SessionPool.close
ccm.extra.CachedSessionProvider.close
ccm.extra.SessionProvider.close
log2xml.LogWriter.close
preparation.PreparationBuilder.close
sysdef.io.FlashImageSizeWriter.close" class="py-name" href="#" onclick="return doclink('link-136', 'close', 'link-8');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="rom.Image._clean_mytraces" class="py-name" href="#" onclick="return doclink('link-137', '_clean_mytraces', 'link-120');">_clean_mytraces</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
</div><a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line"> </tt>
<a name="Image._callrommake"></a><div id="Image._callrommake-def"><a name="L282"></a><tt class="py-lineno">282</tt> <a class="py-toggle" href="#" id="Image._callrommake-toggle" onclick="return toggle('Image._callrommake');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="rom.Image-class.html#_callrommake">_callrommake</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Image._callrommake-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Image._callrommake-expanded"><a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">        <tt class="py-docstring">""" Calls the make_fpsx.cmd to build a ROM image.</tt> </tt>
<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">        <tt id="link-138" class="py-name"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-138', 'logger', 'link-4');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Building rom image: "</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">        <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt><tt class="py-op">.</tt><tt class="py-name">flush</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line"> </tt>
<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">        <tt class="py-name">args</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'rommake.command'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">                <tt class="py-string">'-hid'</tt><tt class="py-op">,</tt> </tt>
<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line">                <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'rommake.hwid'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">                <tt class="py-string">'-p'</tt><tt class="py-op">,</tt> </tt>
<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">                <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'rommake.product.name'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line">                <tt class="py-string">'-iby'</tt><tt class="py-op">,</tt> </tt>
<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line">                <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'image.iby'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">                <tt class="py-string">'-type'</tt><tt class="py-op">,</tt> </tt>
<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line">                <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'image.type'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">                <tt class="py-string">'-traces'</tt><tt class="py-op">,</tt> </tt>
<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line">                <tt class="py-string">'-verbose'</tt><tt class="py-op">,</tt> </tt>
<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">                <tt class="py-string">'-target'</tt><tt class="py-op">,</tt> </tt>
<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'rom.output.dir'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line">                <tt class="py-string">'-o'</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'rommake.args'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">:</tt> </tt>
<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">            <tt class="py-name">extra_args</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'rommake.args'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt> <tt class="py-string">' '</tt> <tt class="py-op">)</tt> </tt>
<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line">            <tt class="py-name">args</tt> <tt class="py-op">+=</tt> <tt class="py-name">extra_args</tt> </tt>
<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line">        <tt id="link-139" class="py-name"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-139', 'logger', 'link-4');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"with args: "</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">args</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">        <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">chdir</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-140" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-140', 'path', 'link-27');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">dirname</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'rommake.command'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line">        <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">spawnv</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">P_WAIT</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'rommake.command'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">args</tt><tt class="py-op">)</tt> </tt>
</div><a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line"> </tt>
<a name="Image._clean_mytraces"></a><div id="Image._clean_mytraces-def"><a name="L309"></a><tt class="py-lineno">309</tt> <a class="py-toggle" href="#" id="Image._clean_mytraces-toggle" onclick="return toggle('Image._clean_mytraces');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="rom.Image-class.html#_clean_mytraces">_clean_mytraces</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Image._clean_mytraces-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Image._clean_mytraces-expanded"><a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line">        <tt id="link-141" class="py-name"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-141', 'logger', 'link-4');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">"Removing mytraces.txt file"</tt><tt class="py-op">)</tt> </tt>
<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-142', 'path', 'link-27');">path</a></tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="ccm.CCMObject.exists" class="py-name" href="#" onclick="return doclink('link-143', 'exists', 'link-123');">exists</a></tt><tt class="py-op">(</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'rommake.mytraces.file'</tt><tt class="py-op">]</tt> <tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name" targets="Method ccm.Folder.remove()=ccm.Folder-class.html#remove,Function fileutils.remove()=fileutils-module.html#remove"><a title="ccm.Folder.remove
fileutils.remove" class="py-name" href="#" onclick="return doclink('link-144', 'remove', 'link-144');">remove</a></tt><tt class="py-op">(</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'rommake.mytraces.file'</tt><tt class="py-op">]</tt> <tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
</div><a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line">     </tt>
<a name="Image._move_image_files"></a><div id="Image._move_image_files-def"><a name="L314"></a><tt class="py-lineno">314</tt> <a class="py-toggle" href="#" id="Image._move_image_files-toggle" onclick="return toggle('Image._move_image_files');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="rom.Image-class.html#_move_image_files">_move_image_files</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Image._move_image_files-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Image._move_image_files-expanded"><a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line">        <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">chdir</tt><tt class="py-op">(</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'rom.output.dir'</tt><tt class="py-op">]</tt> <tt class="py-op">)</tt> </tt>
<a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt><tt class="py-op">(</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-145', 'path', 'link-27');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">isdir</tt><tt class="py-op">(</tt><tt class="py-string">'temp'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">mkdir</tt><tt class="py-op">(</tt> <tt class="py-string">'temp'</tt> <tt class="py-op">)</tt> </tt>
<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt><tt class="py-op">(</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-146', 'path', 'link-27');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">isdir</tt><tt class="py-op">(</tt><tt class="py-string">'logs'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">mkdir</tt><tt class="py-op">(</tt> <tt class="py-string">'logs'</tt> <tt class="py-op">)</tt> </tt>
<a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt><tt class="py-op">(</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-147" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-147', 'path', 'link-27');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">isdir</tt><tt class="py-op">(</tt><tt class="py-string">'obys'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">mkdir</tt><tt class="py-op">(</tt> <tt class="py-string">'obys'</tt> <tt class="py-op">)</tt> </tt>
<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line">         </tt>
<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">element</tt> <tt class="py-keyword">in</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">listdir</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt><tt class="py-op">(</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-148', 'path', 'link-27');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">isfile</tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt><tt class="py-op">(</tt> <tt class="py-name">element</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'.img'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">element</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'.bin'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">element</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'.bb5'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line">                    <tt class="py-name">shutil</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name" targets="Function fileutils.move()=fileutils-module.html#move"><a title="fileutils.move" class="py-name" href="#" onclick="return doclink('link-149', 'move', 'link-149');">move</a></tt><tt class="py-op">(</tt> <tt class="py-name">element</tt><tt class="py-op">,</tt> <tt class="py-string">'temp'</tt> <tt class="py-op">)</tt> </tt>
<a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt><tt class="py-op">(</tt> <tt class="py-name">element</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'.log'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">element</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'.dir'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">element</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'.symbol'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line">                    <tt class="py-name">shutil</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="fileutils.move" class="py-name" href="#" onclick="return doclink('link-150', 'move', 'link-149');">move</a></tt><tt class="py-op">(</tt> <tt class="py-name">element</tt><tt class="py-op">,</tt> <tt class="py-string">'logs'</tt> <tt class="py-op">)</tt> </tt>
<a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt><tt class="py-op">(</tt> <tt class="py-name">element</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'.oby'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line">                    <tt class="py-name">shutil</tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="fileutils.move" class="py-name" href="#" onclick="return doclink('link-151', 'move', 'link-149');">move</a></tt><tt class="py-op">(</tt> <tt class="py-name">element</tt><tt class="py-op">,</tt> <tt class="py-string">'obys'</tt> <tt class="py-op">)</tt> </tt>
</div><a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line"> </tt>
<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line">                 </tt>
<a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line">    <tt class="py-comment"># Returns the name of this ROM image</tt> </tt>
<a name="Image.__str__"></a><div id="Image.__str__-def"><a name="L334"></a><tt class="py-lineno">334</tt> <a class="py-toggle" href="#" id="Image.__str__-toggle" onclick="return toggle('Image.__str__');">-</a><tt class="py-line"><tt class="py-comment"></tt>    <tt class="py-keyword">def</tt> <a class="py-def-name" href="rom.Image-class.html#__str__">__str__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="Image.__str__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Image.__str__-expanded"><a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line">        <tt class="py-docstring">""" Returns the filename of the image file once copied to the</tt> </tt>
<a name="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line"><tt class="py-docstring">            \*_flash_images directory.</tt> </tt>
<a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
<a name="L338"></a><tt class="py-lineno">338</tt>  <tt class="py-line">        <tt class="py-comment"># Get the unique build ID for these ROM image names</tt> </tt>
<a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt id="link-152" class="py-name"><a title="buildtools.Command.name
ccm.FourPartName.name
symrec.ServicePack.name
sysdef.api.Configuration.name
sysdef.api.Option.name
sysdef.api.SpecialInstruction.name
sysdef.api.Target.name
sysdef.api.TargetList.name
sysdef.api.Unit.name
sysdef.api._UnitGroup.name" class="py-name" href="#" onclick="return doclink('link-152', 'name', 'link-46');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'rom.id'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">'_'</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'image.type'</tt><tt class="py-op">]</tt> </tt>
<a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line"> </tt>
<a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line">        <tt class="py-comment"># Add a flag if the ROM is textshell</tt> </tt>
<a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'image.ui'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'text'</tt><tt class="py-op">:</tt> </tt>
<a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line">            <tt id="link-153" class="py-name"><a title="buildtools.Command.name
ccm.FourPartName.name
symrec.ServicePack.name
sysdef.api.Configuration.name
sysdef.api.Option.name
sysdef.api.SpecialInstruction.name
sysdef.api.Target.name
sysdef.api.TargetList.name
sysdef.api.Unit.name
sysdef.api._UnitGroup.name" class="py-name" href="#" onclick="return doclink('link-153', 'name', 'link-46');">name</a></tt> <tt class="py-op">+=</tt> <tt class="py-string">"_text"</tt> </tt>
<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line"> </tt>
<a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line">        <tt class="py-comment"># Add a flag if the image does not a CMT</tt> </tt>
<a name="L346"></a><tt class="py-lineno">346</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'image.nocmt'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'true'</tt><tt class="py-op">:</tt> </tt>
<a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line">            <tt id="link-154" class="py-name"><a title="buildtools.Command.name
ccm.FourPartName.name
symrec.ServicePack.name
sysdef.api.Configuration.name
sysdef.api.Option.name
sysdef.api.SpecialInstruction.name
sysdef.api.Target.name
sysdef.api.TargetList.name
sysdef.api.Unit.name
sysdef.api._UnitGroup.name" class="py-name" href="#" onclick="return doclink('link-154', 'name', 'link-46');">name</a></tt> <tt class="py-op">+=</tt> <tt class="py-string">"_nocmt"</tt> </tt>
<a name="L348"></a><tt class="py-lineno">348</tt>  <tt class="py-line"> </tt>
<a name="L349"></a><tt class="py-lineno">349</tt>  <tt class="py-line">        <tt class="py-comment"># Add any differentiating name extension if present3</tt> </tt>
<a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line"><tt class="py-comment"></tt>        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'image.name.extension'</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">''</tt><tt class="py-op">:</tt> </tt>
<a name="L351"></a><tt class="py-lineno">351</tt>  <tt class="py-line">            <tt id="link-155" class="py-name"><a title="buildtools.Command.name
ccm.FourPartName.name
symrec.ServicePack.name
sysdef.api.Configuration.name
sysdef.api.Option.name
sysdef.api.SpecialInstruction.name
sysdef.api.Target.name
sysdef.api.TargetList.name
sysdef.api.Unit.name
sysdef.api._UnitGroup.name" class="py-name" href="#" onclick="return doclink('link-155', 'name', 'link-46');">name</a></tt> <tt class="py-op">+=</tt> <tt class="py-string">'_'</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'image.name.extension'</tt><tt class="py-op">]</tt> </tt>
<a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line"> </tt>
<a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-156" class="py-name"><a title="buildtools.Command.name
ccm.FourPartName.name
symrec.ServicePack.name
sysdef.api.Configuration.name
sysdef.api.Option.name
sysdef.api.SpecialInstruction.name
sysdef.api.Target.name
sysdef.api.TargetList.name
sysdef.api.Unit.name
sysdef.api._UnitGroup.name" class="py-name" href="#" onclick="return doclink('link-156', 'name', 'link-46');">name</a></tt> </tt>
</div></div><a name="L354"></a><tt class="py-lineno">354</tt>  <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
</script>
</pre>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

      <th class="navbar" width="100%"></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0beta1 on Wed Sep 09 13:44:24 2009
    </td>
    <td align="right" class="footer">
      <a href="http://epydoc.sourceforge.net">http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie()
  // -->
</script>
  
</body>
</html>