--- a/common/build.xml Fri Jun 19 16:13:48 2009 +0100
+++ b/common/build.xml Fri Jun 19 18:00:57 2009 +0100
@@ -21,11 +21,16 @@
<property name="prep.root.dir" value="${sf.spec.job.rootdir}"/>
<property name="publish" value="${sf.spec.publish.enable}"/>
<property name="publish.root.dir" value="${sf.spec.publish.rootdir}"/>
+ <property name="diamonds.host" value="${sf.spec.publish.diamonds.server}"/>
+ <property name="diamonds.port" value="${sf.spec.publish.diamonds.port}"/>
+ <property name="diamonds.path" value="${sf.spec.publish.diamonds.path}"/>
<property name="build.system" value="${sf.spec.build.system}"/>
<property name="base_release.path" value="${sf.spec.baseline.location}"/>
<property name="base_release.getenv_options" value="${sf.spec.baseline.getenv_options}"/>
-
+ <!-- SF-specific Helium properties not meant to be exposed in the project spec -->
+ <property name="diamonds.listener.configuration.file" location="${sf.common.config.dir}/diamonds/config.xml.ftl"/>
+
<!-- import all core HELIUM targets -->
<import file="${helium.dir}/helium.ant.xml" />
@@ -176,6 +181,13 @@
<target name="sf-prebuild">
<echo>[SF-PREBUILD]</echo>
+ <if>
+ <istrue value="${sf.spec.publish.enable}"/>
+ <then>
+ <runtarget target="diamonds"/>
+ </then>
+ </if>
+
<!-- create BOM dir -->
<mkdir dir="${build.drive}/output/logs/BOM"/>
@@ -245,7 +257,7 @@
<arg value="${sf.spec.baseline.location}"/>
</exec>
- <!-- run interal target preparation-getenv -->
+ <!-- run internal target preparation-getenv -->
<runtarget target="preparation-getenv"/>
</then>
@@ -469,7 +481,7 @@
<target name="sf-diamondize-bom">
<fmpp sourceFile="${sf.common.config.dir}/templates/build-info.xml.ftl"
- outputFile="${build.drive}/output/logs/BOM/build-info.xml">
+ outputFile="${build.drive}/output/logs/sf-diamondize-bom.xml">
<data expandProperties="yes">
ant: antProperties()
config: csv(${build.drive}/output/logs/BOM/config.csv,{separator:',',headers:[loc,dst,rev]})
@@ -709,14 +721,33 @@
</path>
<sequential>
<propertyregex override="yes" property="yarpfile" input="@{logfile}" regexp=".*[\\|\/](.*)_compile\.log" replace="\1_yarp.csv"/>
+ <propertyregex override="yes" property="yarpfile_short" input="${yarpfile}" regexp="[^_]*_[^_]*_[^_]*_(.+)_[^_]*_yarp\.csv" replace="YARP_\1"/>
<echo message="Yarping @{logfile}..."/>
<exec executable="perl" dir="${build.drive}" failonerror="false" output="${build.log.dir}/analysis/${build.id}_yarp.log" append="true">
<arg value="${sf.common.config.dir}/tools/analysis/yarp.pl"/>
<arg value="@{logfile}"/>
<arg value="${build.log.dir}/analysis/${yarpfile}"/>
</exec>
+ <exec executable="cmd" output="${build.drive}/output/logs/analysis/tmp_yarp_files.csv" append="true">
+ <arg value="/c"/>
+ <arg value="echo"/>
+ <arg value="${yarpfile_short},${sf.spec.publish.networkdrive}\${sf.spec.job.name}\builds\${sf.spec.job.codeline}\${build.id}\logs\analysis\${yarpfile},${build.drive}\output\logs\analysis\${yarpfile}"/>
+ </exec>
</sequential>
</for>
+
+ <exec executable="perl" dir="${build.drive}" failonerror="false" outputproperty="sf.job.totalyarperrors">
+ <arg value="${sf.common.config.dir}/tools/analysis/parse_yarp_files.pl"/>
+ <arg value="${build.drive}/output/logs/analysis/tmp_yarp_files.csv"/>
+ </exec>
+ <echo message="Total yarp errors: ${sf.job.totalyarperrors}"/>
+
+ <fmpp sourceFile="${sf.common.config.dir}/diamonds/sf-run-analysis.xml.ftl" outputFile="${build.drive}/output/logs/sf-run-analysis.xml">
+ <data expandProperties="yes">
+ ant: antProperties()
+ files: csv(${build.drive}/output/logs/analysis/tmp_yarp_files.csv,{separator:',',headers:[name,path,localpath]})
+ </data>
+ </fmpp>
</target>
--- a/common/common_props.ant.xml Fri Jun 19 16:13:48 2009 +0100
+++ b/common/common_props.ant.xml Fri Jun 19 18:00:57 2009 +0100
@@ -50,6 +50,9 @@
<property name="sf.spec.publish.network.freespace" value="10"/>
<property name="sf.spec.publish.networkdrive" value="\\v800008\Builds01\SF_builds"/>
<property name="sf.spec.publish.rootdir" value="\\v800008\Builds01\SF_builds"/>
+ <property name="sf.spec.publish.diamonds.server" value="v800002.ad-sfpd.intra"/>
+ <property name="sf.spec.publish.diamonds.port" value="80"/>
+ <property name="sf.spec.publish.diamonds.path" value="/diamonds/builds/"/>
<property name="sf.spec.tagafterbuild.enable" value="false"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/common/diamonds/config.xml.ftl Fri Jun 19 18:00:57 2009 +0100
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (c) 2009 Symbian Foundation Ltd
+This component and the accompanying materials are made available
+under the terms of the License "Eclipse Public License v1.0"
+which accompanies this distribution, and is available
+at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
+Initial Contributors:
+Symbian Foundation Ltd - initial contribution.
+
+Contributors:
+
+Description:
+Diamonds configuration template
+-->
+<configuration>
+<config>
+ <template-dir path="${ant['helium.dir']}/tools/common/templates/diamonds"/>
+ <output-dir path="${ant['build.log.dir']}"/>
+ <property name="smtpserver" value="email.smtp.server" />
+ <property name="ldapserver" value="email.ldap.server" />
+ <property name="initialiser-target-name" value="diamonds" />
+ <server>
+ <property name="host" value="diamonds.host" />
+ <property name="port" value="diamonds.port" />
+ <property name="path" value="diamonds.path" />
+ <property name="tstampformat" value="yyyy-MM-dd'T'HH:mm:ss" />
+ <property name="mail" value="diamonds.mail" />
+ <property name="category-property" value="build.family" />
+ <property name="buildid-property" value="diamonds.build.id" />
+ </server>
+</config>
+<logger>
+ <stages>
+ <stage name="pre-build" start="prep" end="prebuild" />
+ <stage name="build" start="compile-main" end="compile-main" />
+ <stage name="post-build" start="postbuild" end="zip-localised" />
+ <stage name="release" start="publish-variants" end="final" />
+ </stages>
+ <targets>
+ <target name="diamonds" template-file="tool.xml.ftl"
+ logfile="${ant['temp.build.dir']}/build/doc/ivy/tool-dependencies-${ant['build.type']}.xml" ant-properties="true"/>
+
+ <!-- note: replaced by sf-run-analysis -->
+ <!-- target name="compile-main" template-file="compile.xml.ftl"
+ logfile="${ant['diamonds.compile.summary']}" ant-properties="true"/ -->
+
+ <target name="ido-codescanner" template-file="codescanner.xml.ftl"
+ logfile="${ant['ido.codescanner.output.dir']}/problemIndex.xml"/>
+
+ <!-- if no logfile provided, looks for xml file to send
+ using <build.id_target_name.xml> file or<target_name.xml> file,
+ if both doesn't exists does nothing. tries to pass ant properties
+ and sends it.-->
+
+ <target name="create-bom"/>
+
+ <target name="rndsdk-create-api-descr-xml" template-file="apimetrics.xml.ftl"
+ logfile="${ant['build.drive']}/output/apidescr/apidescr.xml"/>
+
+ <#if (ant?keys?seq_contains('validate.policy.log'))>
+ <target name="render-validate-policy" template-file="validate-policy-log.xml.ftl"
+ logfile="${ant['validate.policy.log']}"/>
+ </#if>
+
+ <!-- defer will store all the converted output file and sends only if there any other
+ stage / target starts to send some data to diamonds -->
+ <target name="check-tool-dependencies" template-file="tool.xml.ftl"
+ logfile="${ant['temp.build.dir']}/build/doc/ivy/tool-dependencies-${ant['build.type']}.xml" ant-properties="true"
+ defer="true"/>
+
+ <!-- SF specific -->
+ <target name="sf-diamondize-bom"/>
+ <target name="sf-run-analysis"/>
+ </targets>
+</logger>
+</configuration>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/common/diamonds/sf-run-analysis.xml.ftl Fri Jun 19 18:00:57 2009 +0100
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<diamonds-build>
+ <schema>10</schema>
+
+ <faults>
+ <total severity="error">${ant['sf.job.totalyarperrors']}</total>
+ <total severity="warning">0</total>
+ <total severity="warning_rvct_bad">0</total>
+ <total severity="warning_rvct_other">0</total>
+ <total severity="codescanner_high">0</total>
+ <total severity="codescanner_medium">0</total>
+ <total severity="codescanner_low">0</total>
+ </faults>
+
+ <files>
+ <#list files as f>
+ <file>
+ <type>log</type>
+ <name>${f.name}</name>
+ <url>file:///${f.path}</url>
+ </file>
+ </#list>
+ </files>
+
+</diamonds-build>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/common/tools/analysis/parse_yarp_files.pl Fri Jun 19 18:00:57 2009 +0100
@@ -0,0 +1,38 @@
+
+my @asYarpFiles = ();
+open(FILE, $ARGV[0]);
+while ( <FILE> )
+{
+ if ( m/^[^,]*,[^,]*,([^,]*)/ )
+ {
+ my $sFile = $1;
+ chomp $sFile;
+# print "$sFile\n";
+ push(@asYarpFiles, $sFile);
+ }
+}
+close(FILE);
+my $nYarpFiles = scalar(@asYarpFiles);
+#print "Found $nYarpFiles files to parse\n";
+
+my $nTotalRecipeErrors = 0;
+for my $nYarpFile (@asYarpFiles)
+{
+ my $nRecipeErrors = 0;
+# print "Parsing file $nYarpFile...\n";
+ open(FILE, $nYarpFile);
+ while ( <FILE> )
+ {
+ if ( m/^Raptor recipe failures:\s+(\d+)$/ )
+ {
+# print "Raptor recipe failures: $1\n";
+ $nRecipeErrors = $1;
+ }
+ }
+ close(FILE);
+# print "Recipe errors in $nYarpFile: $nRecipeErrors\n";
+ $nTotalRecipeErrors += $nRecipeErrors;
+}
+#print "Total recipe errors across all files: $nTotalRecipeErrors\n";
+
+print "$nTotalRecipeErrors";
\ No newline at end of file
--- a/common/tools/analysis/yarp.pl Fri Jun 19 16:13:48 2009 +0100
+++ b/common/tools/analysis/yarp.pl Fri Jun 19 18:00:57 2009 +0100
@@ -68,6 +68,7 @@
my %licenceattempts;
my $counter = 0;
my $licence = 0;
+ my $failures = 0;
while( my $line = <FILE>)
{
++$counter;
@@ -84,6 +85,7 @@
# if($recipe->{'exit'} !~ m/ok/)
if($recipe->{'exit'} =~ m/failed/)
{
+ ++$failures;
# if($recipe->{'target'} =~ m/\S:epoc32\//i)
# && $recipe->{'target'} !~ m/\S:epoc32\/build/i)
{
@@ -131,6 +133,9 @@
}
close FILE;
print OUT "\n\nSummaries\n\n";
+
+ print OUT "Raptor recipe failures: $failures\n";
+
foreach my $attempt (sort keys %attempts)
{
print OUT "Overall attempts: $attempt,".$attempts{$attempt}.",\n";
--- a/sf-package/build.xml Fri Jun 19 16:13:48 2009 +0100
+++ b/sf-package/build.xml Fri Jun 19 18:00:57 2009 +0100
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project name="SF-PACKAGE-CONFIG">
+<project name="SF-PACKAGE-CONFIG" xmlns:hlm="http://www.nokia.com/helium">
<!-- location of this config -->
<dirname property="sf.package.config.dir" file="${ant.file.SF-PACKAGE-CONFIG}"/>
@@ -12,5 +12,85 @@
<!-- import package references -->
<import file="${sf.package.config.dir}/package_refs.ant.xml" />
+ <target name="sf-compile">
+ <runtarget target="sf-package-compile"/>
+ </target>
+
+ <target name="sf-package-compile">
+
+ <hlm:sbsMakeOptions engine="gmake" id="sbs.fullbuild.options"/>
+ <hlm:sbsMakeOptions engine="gmake" id="sbs.toolsbuild.options"/>
+
+ <!-- CLEAN -->
+ <hlm:argSet id="sbs.main.clean.sbs.var">
+ <hlm:arg name="config" value="${sf.spec.sbs.config}" />
+ <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+ <hlm:arg name="command" value="CLEAN" />
+ </hlm:argSet>
+ <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+ <param name="build.system" value="${sf.spec.build.system}" />
+ <!-- param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" / -->
+ <param name="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
+ <!-- param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/ -->
+ <reference refid="sbs.main.clean.sbs.var" torefid="sbs.var" />
+ <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
+ <reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
+ </antcall>
+
+ <!-- BUILD tools2 -->
+ <hlm:argSet id="sbs.tools2.var">
+ <hlm:arg name="config" value="tools2_rel" />
+ <hlm:arg name="singlejob" value="false" />
+ <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+ </hlm:argSet>
+ <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+ <param name="build.system" value="${sf.spec.build.system}" />
+ <!-- param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" / -->
+ <param name="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
+ <!-- param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/ -->
+ <reference refid="sbs.tools2.var" torefid="sbs.var" />
+ <reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
+ <reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
+ </antcall>
+
+ <!-- BUILD tools -->
+ <hlm:argSet id="sbs.tools.var">
+ <hlm:arg name="config" value="tools_rel" />
+ <hlm:arg name="singlejob" value="true" />
+ <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+ </hlm:argSet>
+ <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+ <param name="build.system" value="${sf.spec.build.system}" />
+ <!-- param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" / -->
+ <param name="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
+ <!-- param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/ -->
+ <reference refid="sbs.tools.var" torefid="sbs.var" />
+ <reference refid="sbs.toolsbuild.options" torefid="sbs.make.options" />
+ <reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
+ </antcall>
+
+ <!-- BUILD -->
+ <hlm:argSet id="sbs.main.sbs.var">
+ <hlm:arg name="config" value="${sf.spec.sbs.config}.whatlog" />
+ <hlm:arg name="enable-filter" value="${sf.spec.logs.raptorfilter.enable}" />
+ </hlm:argSet>
+ <antcall target="compile-main" inheritAll="false" inheritRefs="true">
+ <param name="build.system" value="${sf.spec.build.system}" />
+ <!-- param name="compile.sysdef.dtd.stub" value="${sf.spec.os.sysdef.dtd}" / -->
+ <param name="sysdef.configurations.list" value="${sf.spec.sysdef.configurations.list}" />
+ <!-- param name="sf.spec.sysdef.version" value ="${sf.spec.os.sysdef.version}"/ -->
+ <reference refid="sbs.main.sbs.var" torefid="sbs.var" />
+ <reference refid="sbs.fullbuild.options" torefid="sbs.make.options" />
+ <reference refid="sf.spec.system.definition.files" torefid="system.definition.files" />
+ </antcall>
+
+ <!-- CHECK -->
+ <exec executable="cmd" dir="${build.drive}/" output="${build.drive}/output\logs\build_check_compile.log">
+ <arg value="/c sbs.bat -s ${build.drive}/output\build\canonical_system_definition_SF.xml -k -c ${sf.spec.sbs.config} -j 32 --check -m ${build.drive}/output\logs\build_check_Makefile"/>
+ <!-- argument of -j option can be parameterized with: ${number.of.threads} -->
+ </exec>
+
+ </target>
+
</project>
--- a/sf-package/package_props.ant.xml Fri Jun 19 16:13:48 2009 +0100
+++ b/sf-package/package_props.ant.xml Fri Jun 19 18:00:57 2009 +0100
@@ -1,4 +1,18 @@
<?xml version="1.0"?>
-<project name="SF-PACKAGE-PROPS"/>
+<project name="SF-PACKAGE-PROPS">
+
+ <property name="sf.spec.baseline.enable" value="true"/>
+ <property name="sf.spec.baseline.select" value="location"/>
+ <property name="sf.spec.baseline.location" value="\\v800008.ad-sfpd.intra\g$\Releases\PDK_candidate_2.0.b_flat"/>
+ <property name="sf.spec.baseline.getenv_options" value="-i emu -i rnd"/>
+
+ <property name="sf.spec.systemdefinition.assemble" value="false"/>
+ <property name="sf.spec.sysdef.configurations.list" value="SF"/>
+
+ <property name="sf.spec.sbs.config" value="winscw"/>
+
+ <property name="sf.spec.logs.raptorfilter.enable" value="false"/>
+</project>
+
--- a/sf-package/package_refs.ant.xml Fri Jun 19 16:13:48 2009 +0100
+++ b/sf-package/package_refs.ant.xml Fri Jun 19 18:00:57 2009 +0100
@@ -1,3 +1,11 @@
<?xml version="1.0"?>
-<project name="SF-PACKAGE-REFS"/>
\ No newline at end of file
+<project name="SF-PACKAGE-REFS">
+
+ <path id="sf.spec.system.definition.files">
+ <fileset dir="${sf.spec.job.drive}/" casesensitive="false">
+ <include name="${sf.spec.systemdefinition.location}" />
+ </fileset>
+ </path>
+
+ </project>
\ No newline at end of file
--- a/sf-platform/build.xml Fri Jun 19 16:13:48 2009 +0100
+++ b/sf-platform/build.xml Fri Jun 19 18:00:57 2009 +0100
@@ -88,24 +88,6 @@
</for>
</target>
- <target name="generate-layers">
- <echo message="canno-file:${canonical.sysdef.file}"/>
- <echo message="raptor-filters:raptor_${sysdef.configuration}"/>
-
- <!-- All we want is a sysdef with the config name appended, so just copy it -->
- <echo message="INFO: Skip GenXML and copy sysdef to sysdef+config name"/>
- <copy file="${canonical.sysdef.file}" tofile="${build.drive}/output/build/canonical_system_definition_${sysdef.configuration}_temp.xml"/>
-
- <copy file="${build.drive}/output/build/canonical_system_definition_${sysdef.configuration}_temp.xml" tofile="${build.drive}/output/build/canonical_system_definition_${sysdef.configuration}.xml">
- <filterchain>
- <linecontainsregexp negate="true">
- <regexp pattern="^\s*$"/>
- </linecontainsregexp>
- </filterchain>
- </copy>
- <delete file="${build.drive}/output/build/canonical_system_definition_${sysdef.configuration}_temp.xml"/>
- </target>
-
<!--
== Name: SF-COMPILE
==