Bug 1661: Improve build speed with better caching strategy
Changed the way that the cache is located, so the same code can run on any build machine without any configuration.
Made work around for Bug 419 the only option, as we're not using the alternative anyway, and I don't want to commit completely untested code!
Changed caching algorithm, to improve build times.
<?xml version="1.0"?>
<build>
<config abstract="true">
<!-- Options that apply accross the board -->
<set name="archive.tool" value="7za" />
<set name="root.dir" value="${build.drive}/" />
<set name="temp.build.dir" value="${temp.build.dir}" />
<set name="casesensitive" value="false" />
<set name="archives.dir" value="${build.output.dir}/zips" />
<set name="policy.internal.name" value="removed" />
<!--set name="policy.csv" value="${policy.csv}" /-->
<set name="policy.zip2zip" value="false" />
<set name="policy.default.value" value="" />
<!-- Metadata creation -->
<set name="grace.template" value="${temp.build.dir}/release_metadata_template.xml" />
<set name="grace.metadata" value="true" />
<set name="grace.service" value="${grace.service.name}" />
<set name="grace.product" value="${grace.product.name}" />
<set name="grace.release" value="${grace.release.name}" />
<!-- Options that apply to all configs - don't put in any hg internals! -->
<set name="exclude" value="**/.hg/**"/>
<set name="exclude" value="**/.hgtags"/>
<set name="exclude" value="**/.hgignore"/>
<set name="exclude" value="**/.hg_archival.txt"/>
<!-- Specify this config to package all src inputs to the build -->
<config name="src" abstract="true">
<!-- These configs will be populated with tags for the source -->
<config name="sfl" abstract="true">
<set name="grace.filters" value="src" />
</config>
<config name="oss" abstract="true">
<set name="grace.filters" value="src" />
</config>
<config name="misc" abstract="true">
<set name="grace.filters" value="misc" />
</config>
</config>
<!-- Specify this config to double-package all src inputs to the build -->
<config name="src-by-layer" abstract="true">
<set name="root.dir" value="${build.output.dir}/zips"/>
<set name="archives.dir" value="${build.output.dir}/zips/release" />
<set name="grace.filters" value="src" />
<set name="grace.extract" value="double" />
<!-- Zips of zips for SFL code and for OSS code will be inserted here -->
</config>
<!-- Specify this config to package all rnd inputs to the build that should be released -->
<config name="rnd" abstract="true">
<set name="grace.filters" value="rnd" />
<set name="archives.dir" value="${build.output.dir}/zips/release" />
</config>
<!-- Specify this config to package all rnd inputs to the build that should be released -->
<config name="rnd-internal" abstract="true">
<set name="grace.filters" value="emu" />
</config>
<!-- Specify this config to package all outputs from the build -->
<config name="bin" abstract="true">
<!-- This config will be populated with exclusions for the rnd bins -->
<config>
<set name="name" value="binaries_epoc"/>
<set name="grace.filters" value="emu" />
<set name="include" value="epoc32/**"/>
<set name="exclude" value="epoc32/build/**"/>
</config>
</config>
<!-- Specify this config to re-package the internal rnd bins after the build has updates some of the files -->
<config name="rnd-postbuild" abstract="true">
<set name="grace.filters" value="emu"/>
<set name="archives.dir" value="${build.output.dir}/zips/release" />
</config>
<!-- "Null" tools entry, which matches no files, but does populate the release_metadata.xml -->
<config name="tools">
<set name="name" value="tools_epoc"/>
<set name="archives.dir" value="${build.output.dir}/zips/release" />
<set name="grace.filters" value="tools"/>
<set name="include" value="*"/>
<set name="exclude" value="**"/>
</config>
<!-- "Null" binaries entries, which match no files, but do populate the release_metadata.xml -->
<config name="bin-just-metadata" abstract="true">
<set name="archives.dir" value="${build.output.dir}/zips/release" />
<set name="grace.filters" value="emu"/>
<set name="include" value="*"/>
<set name="exclude" value="**"/>
<config name="core">
<set name="name" value="binaries_epoc"/>
</config>
<config name="armv5">
<set name="name" value="binaries_armv5"/>
</config>
<config name="winscw">
<set name="name" value="binaries_winscw"/>
</config>
</config>
<!-- "Null" SDK entry, which matches no files, but does populate the release_metadata.xml -->
<config name="bin-sdk-just-metadata" abstract="true">
<set name="archives.dir" value="${build.output.dir}/zips/release" />
<set name="grace.filters" value="emu"/>
<set name="include" value="*"/>
<set name="exclude" value="**"/>
<config name="sdk">
<set name="name" value="binaries_epoc_sdk"/>
</config>
</config>
<!-- "Null" info entries, which match no files, but do populate the release_metadata.xml -->
<config name="info-just-metadata" abstract="true">
<set name="archives.dir" value="${build.output.dir}/zips/release" />
<set name="include" value="*"/>
<set name="exclude" value="**"/>
<config name="logs">
<set name="name" value="build_logs"/>
<set name="grace.filters" value="logs"/>
</config>
<config name="BOM">
<set name="name" value="build_BOM"/>
<set name="grace.filters" value="info"/>
</config>
</config>
<!-- "Null" md5 entry, which matches no files, but does populate the release_metadata.xml -->
<config name="md5-just-metadata" abstract="true">
<set name="archives.dir" value="${build.output.dir}/zips/release" />
<set name="name" value="build_md5"/>
<set name="grace.filters" value="info"/>
<set name="include" value="*"/>
<set name="exclude" value="**"/>
</config>
</config>
</build>