]> git.saurik.com Git - wxWidgets.git/commitdiff
Limit to one build at a time with a lock, share checkout dirs, do full builds
authorMichael Wetherell <mike.wetherell@ntlworld.com>
Mon, 6 Oct 2008 20:48:32 +0000 (20:48 +0000)
committerMichael Wetherell <mike.wetherell@ntlworld.com>
Mon, 6 Oct 2008 20:48:32 +0000 (20:48 +0000)
out of tree and use ccache.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56134 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

build/buildbot/config/include/ravnsgaard.xml [new file with mode: 0644]
build/buildbot/config/ravnsgaard.xml

diff --git a/build/buildbot/config/include/ravnsgaard.xml b/build/buildbot/config/include/ravnsgaard.xml
new file mode 100644 (file)
index 0000000..13ad4f2
--- /dev/null
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+    Name:       include/ravnsgaard.xml
+    Purpose:    Declarations for Brian Ravnsgaard Riis' slave
+    Author:     Michael Wetherel
+    RCS-ID:     $Id$
+    Copyright:  (c) Michael Wetherell
+    Licence:    wxWidgets licence
+-->
+
+<bot xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+     xmlns:xi="http://www.w3.org/2001/XInclude">
+
+<xi:include href="defs.xml"/>
+
+<!--
+    build - Override <build> to add a slave lock. This has the effect of
+            serialising all the builds on this machine
+-->
+<xsl:template name="build">
+    <xsl:param name="content"/>
+    <build>
+        <lock>slave</lock>
+        <xsl:copy-of select="$content"/>
+    </build>
+</xsl:template>
+
+<!--
+    checkout - checks out to a shared directory
+
+    Checks out to a directory '../$branch' shared between builds. Then creates
+    a directory 'build' for this job to build in, and 'src' which is a link to
+    the shared sources. This relies on all builds for the same branch being
+    serialised with lock so that one build doesn't update the sources while
+    another is building them.
+
+    Usage typically just:
+        <checkout/>
+    for the trunk, or:
+        <checkout branch="branches/WX_2_8_BRANCH"/>
+    to checkout a branch.
+-->
+<xsl:template name="checkout">
+    <xsl:param name="content"/>
+    <xsl:param name="branch" select="'trunk'"/>
+    <xsl:variable name="nodes" select="exsl:node-set($content)"/>
+    <svn>
+        <xsl:if test="not($nodes/svnurl)">
+            <xsl:if test="not($nodes/baseURL)">
+                <baseURL><SVN_URL/></baseURL>
+            </xsl:if>
+            <xsl:if test="not($nodes/defaultBranch)">
+                <defaultBranch><xsl:value-of select="$branch"/></defaultBranch>
+            </xsl:if>
+        </xsl:if>
+        <xsl:if test="not($nodes/workdir)">
+            <workdir>../<xsl:value-of select="$branch"/></workdir>
+        </xsl:if>
+        <xsl:copy-of select="$content"/>
+    </svn>
+    <shellcommand>
+        <description>creating build directory</description>
+        <descriptionDone>create build directory</descriptionDone>
+        <workdir>.</workdir>
+        <command>
+            rm -rf build &amp;&amp;
+            mkdir build &amp;&amp;
+            ln -sf ../<xsl:value-of select="$branch"/> src
+        </command>
+    </shellcommand>
+</xsl:template>
+
+<!--
+    configure - use '../src/configure' as the default configure command,
+                include disable-precomp-headers in the default options and
+                post process the Makefiles to use ccache.
+
+    Usage: <configure options="-with-foobar"/>
+-->
+<xsl:template name="configure">
+    <xsl:param name="content"/>
+    <xsl:param name="options"/>
+    <configure>
+        <copy-with-defaults content="{$content}">
+            <command>../src/configure --disable-precomp-headers <xsl:value-of select="normalize-space($options)"/></command>
+        </copy-with-defaults>
+        <command>find . -name Makefile | xargs perl -pi -e 's/^(?:CC|CXX) = /$&amp;ccache /'</command>
+    </configure>
+</xsl:template>
+
+</bot>
index f846330550a0f246bc444590ac6498e4e460f7ab..a7eced13abdcc5840c1aee31e6a0653f93dd6098 100644 (file)
@@ -6,7 +6,7 @@
     Licence:    wxWidgets licence
 -->
 <bot xmlns:xi="http://www.w3.org/2001/XInclude">
     Licence:    wxWidgets licence
 -->
 <bot xmlns:xi="http://www.w3.org/2001/XInclude">
-    <xi:include href="include/defs.xml"/>
+    <xi:include href="include/ravnsgaard.xml"/>
     <build>
         <name>Linux i386 wxGTK trunk STL debug</name>
         <builddir>ravnsgaard_wxgtk_debug</builddir>
     <build>
         <name>Linux i386 wxGTK trunk STL debug</name>
         <builddir>ravnsgaard_wxgtk_debug</builddir>