Remove unused buildbot XML configuration files

Buildbot configuration was redone in pure Python (see master.cfg in
https://github.com/wxWidgets/buildbot repository) since several years
already, there is no need to keep these obsolete files.
This commit is contained in:
Vadim Zeitlin
2018-02-20 14:47:12 +01:00
parent f3f1819daf
commit 4e5904a4cc
22 changed files with 2 additions and 2619 deletions

View File

@@ -1,47 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: StellarWerx32.xml
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/unix.xml"/>
<build>
<name>Linux x86 wxGTK trunk STL</name>
<builddir>stellarwerx32_wxgtk</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="--enable-stl --enable-debug"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x86 wxX11 stable</name>
<builddir>stellarwerx32_wxx11</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="--with-x11"/>
<compile-all utils="false"/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x86 wxGTK trunk ANSI</name>
<builddir>stellarwerx32_wxgtk_ansi</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout/>
<configure options="--disable-unicode --enable-debug"/>
<compile-all/>
<run-tests/>
</steps>
</build>
</bot>

View File

@@ -1,47 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: StellarWerx64.xml
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/unix.xml"/>
<build>
<name>Linux x86_64 wxGTK stable</name>
<builddir>stellarwerx64_wxgtk</builddir>
<scheduler>stable_quick</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="--enable-compat26"/>
<compile-all utils="false"/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x86_64 wxX11 trunk</name>
<builddir>stellarwerx64_wxx11</builddir>
<scheduler>daily_0700</scheduler>
<steps>
<checkout/>
<configure options="--with-x11 --enable-debug"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x86_64 wxGTK stable ANSI</name>
<builddir>stellarwerx64_wxgtk_ansi</builddir>
<scheduler>daily_0700</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="--disable-unicode"/>
<compile-all utils="false"/>
<run-tests/>
</steps>
</build>
</bot>

View File

@@ -1,67 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: TBITCWXBUILDBOT.xml
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/unix.xml"/>
<build>
<name>MinGW x86 trunk</name>
<builddir>tbitcwxbuildbot_mingw_trunk</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="--host=i586-mingw32msvc
--with-cppunit-prefix=/usr/local/i586-mingw32msvc"/>
<compile-all/>
</steps>
</build>
<build>
<name>MinGW x86 stable</name>
<builddir>tbitcwxbuildbot_mingw_stable</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="--host=i586-mingw32msvc
--with-cppunit-prefix=/usr/local/i586-mingw32msvc"/>
<compile-all utils="false"/>
</steps>
</build>
<!--
Commented out 64-bit builds as no 64-bit compiler at the moment.
If you're re-enabling them take out the space between the hyphens of the
configure options below, e.g. take out the space from "- -host=".
<build>
<name>MinGW x86_64 trunk</name>
<builddir>tbitcwxbuildbot_mingw64_trunk</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="- -host=amd64-mingw32msvc
- -with-cppunit-prefix=/usr/local/amd64-mingw32msvc"/>
<compile-all/>
</steps>
</build>
<build>
<name>MinGW x86_64 stable</name>
<builddir>tbitcwxbuildbot_mingw64_stable</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="- -host=amd64-mingw32msvc
- -with-cppunit-prefix=/usr/local/amd64-mingw32msvc"/>
<compile-all utils="false"/>
</steps>
</build>
-->
</bot>

View File

@@ -1,119 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: brandt32.xml
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/unix.xml"/>
<build>
<name>Linux x86 wxGTK trunk</name>
<builddir>brandt32_gtk</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="--enable-compat28 --enable-debug"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x86 wxGTK trunk STL no compat</name>
<builddir>brandt32_gtk_stl</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="--disable-compat28 --enable-stl"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x86 wxGTK trunk static</name>
<builddir>brandt32_gtk_trunk_static</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout/>
<configure options="--disable-shared --enable-debug"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x86 wxGTK stable static</name>
<builddir>brandt32_gtk_stable_static</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="--disable-shared"/>
<compile-all utils="false"/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x86 wxDFB trunk</name>
<builddir>brandt32_dfb_trunk</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout/>
<configure options="--with-directfb --enable-debug"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x86 wxDFB stable</name>
<builddir>brandt32_dfb_stable</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="--with-directfb"/>
<compile-all utils="false"/>
<run-tests/>
</steps>
</build>
<!-- These last three are ravnsgaard's job's moved here while it is down -->
<build>
<name>Linux i386 wxGTK stable STL</name>
<builddir>brandt32_wxgtk_stable</builddir>
<scheduler>stable_quick</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="--enable-stl"/>
<compile-all utils="false"/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux i386 wxGTK trunk no gui</name>
<builddir>brandt32_wxgtk_nogui</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout/>
<configure options="--disable-gui --enable-debug"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux i386 wxGTK trunk no features</name>
<builddir>brandt32_wxgtk_nofeatures</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout/>
<configure options="--disable-all-features --enable-debug"/>
<compile-all utils="false"/>
<run-tests/>
</steps>
</build>
</bot>

View File

@@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: brandt64.xml
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/unix.xml"/>
<build>
<name>Linux x64 wxGTK trunk</name>
<builddir>brandt64_gtk</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="--enable-compat28 --enable-debug"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x64 wxGTK trunk STL no compat</name>
<builddir>brandt64_gtk_stl</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="--disable-compat28 --enable-stl"/>
<compile-all/>
<run-tests/>
</steps>
</build>
</bot>

View File

@@ -1,133 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: common.xml
Purpose: Schedulers and locks common to all slaves.
Author: Mike Wetherell
Copyright: (c) 2007 Mike Wetherell
Licence: wxWindows licence
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/defs.xml"/>
<!--
Quick schedulers. Builds using these are triggered after each change to
the sources on the given branch.
name: unique
branch: branch to watch
treeStableTimer: wait until the tree has stopped changing for the
given number of seconds before firing
fileNotImportant: files matching these patterns do not trigger a build
-->
<scheduler>
<name>trunk_quick</name>
<branch>trunk</branch>
<treeStableTimer>900</treeStableTimer>
<fileNotImportant>docs/* interface/*</fileNotImportant>
</scheduler>
<scheduler>
<name>release_quick</name>
<branch><RELEASE_BRANCH/></branch>
<treeStableTimer>900</treeStableTimer>
<fileNotImportant>docs/* interface/*</fileNotImportant>
</scheduler>
<scheduler>
<name>stable_quick</name>
<branch><STABLE_BRANCH/></branch>
<treeStableTimer>900</treeStableTimer>
<fileNotImportant>docs/*</fileNotImportant>
</scheduler>
<!--
Schedulers that fire once a week.
A build can use one of these to be triggered once a week, or more than
one if it should run several times a week on particular days.
-->
<nightly-schedulers name="sunday"/>
<nightly-schedulers name="monday"/>
<nightly-schedulers name="tuesday"/>
<nightly-schedulers name="wednesday"/>
<nightly-schedulers name="thursday"/>
<nightly-schedulers name="friday"/>
<nightly-schedulers name="saturday"/>
<!--
Schedulers for daily builds.
-->
<nightly-schedulers name="daily"/>
<!--
A general purpose slave lock and ones for the trunk and stable branches.
-->
<slavelock>
<name>slave</name>
</slavelock>
<slavelock>
<name>trunk</name>
</slavelock>
<slavelock>
<name><STABLE_BRANCH/></name>
</slavelock>
<slavelock>
<name><RELEASE_BRANCH/></name>
</slavelock>
<!--
Map SVN user ids to email addresses.
The email address in wx-devs.xml can be overridden by adding a line like
this after the xi:include:
<email id="JMS">jaakko.salli -at- dnainternet.net</email>
or disabled using an empty tag:
<email id="JMS"/>
-->
<emaillookup name="wx-devs">
<xi:include href="include/wx-devs.xml"/>
<!-- Overrides... -->
</emaillookup>
<!--
Notify people on the blame list when a build goes from good to bad.
-->
<mailnotifier>
<mode>problem</mode>
<lookup>wx-devs</lookup>
</mailnotifier>
<!--
Log every build to a mailing list.
-->
<mailnotifier>
<extraRecipient>wx-buildbot -at- googlegroups.com</extraRecipient>
</mailnotifier>
<!--
Track SVN changes using the wx-cvs mailing list.
The <prefix> is subtracted from the paths in the 'Modified Files:'
section, the remainder is then assumed to give the branch and filename.
-->
<svnmaildirsource>
<prefix>wxWidgets</prefix>
</svnmaildirsource>
</bot>

View File

@@ -1,88 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: csleobuild.xml
Purpose:
Author:
Copyright:
Licence:
-->
<bot xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/csleobuild.xml"/>
<xsl:variable name="CLANGOPTIONS" select="'-Qunused-arguments -Wno-deprecated-declarations'"/>
<xsl:variable name="CLANGOPTIONS32" select="'-Qunused-arguments -Wno-parentheses-equality -Wno-self-assign -Wno-unused-function -Wno-deprecated-declarations -arch i386'"/>
<xsl:variable name="CLANGOPTIONIOSSIM" select="'-Qunused-arguments -Wno-parentheses-equality -Wno-self-assign -Wno-unused-function -Wno-deprecated-declarations -arch x86_64'"/>
<xsl:variable name="SDK106" select="'--with-macosx-version-min=10.5 --with-macosx-sdk=/Developer/SDKs/MacOSX10.6.sdk --with-cppunit-prefix=/Developer/libstdc++variants/cppunit'"/>
<xsl:variable name="SDKCURRENT107" select="'--with-macosx-version-min=10.7 --with-cppunit-prefix=/Developer/libstdc++variants/cppunit'"/>
<xsl:variable name="SDKCURRENT" select="'--with-macosx-version-min=10.9 --with-cppunit-prefix=/Developer/libc++variants/cppunit'"/>
<xsl:variable name="SDKCURRENTIOSSIM" select="'--with-macosx-version-min=7.1 --with-macosx-sdk=$(xcrun --sdk iphonesimulator --show-sdk-path)'"/>
<build>
<name>OSX 10.9 Cocoa trunk (libstdc++)</name>
<builddir>csleo_cocoa</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="--with-zlib=builtin --without-libiconv --without-liblzma {$SDKCURRENT107} CXXFLAGS='{$CLANGOPTIONS}' CFLAGS='{$CLANGOPTIONS}' OBJCXXFLAGS='{$CLANGOPTIONS}'"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>OSX 10.9 Cocoa trunk (libc++)</name>
<builddir>csleo_cocoalibc++</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="{$SDKCURRENT} CXXFLAGS='{$CLANGOPTIONS}' CFLAGS='{$CLANGOPTIONS}' OBJCXXFLAGS='{$CLANGOPTIONS}'"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>OSX 10.6 Cocoa Stable</name>
<builddir>csleo_stable_cocoa</builddir>
<scheduler>stable_quick</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="{$SDK106} CXXFLAGS='{$CLANGOPTIONS32}' CFLAGS='{$CLANGOPTIONS32}' OBJCXXFLAGS='{$CLANGOPTIONS32}' LDFLAGS='-arch i386'"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>OSX 10.6 Carbon Stable</name>
<builddir>csleo_stable_carbon</builddir>
<scheduler>stable_quick</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="--with-osx_carbon {$SDK106} CXXFLAGS='{$CLANGOPTIONS32}' CFLAGS='{$CLANGOPTIONS32}' OBJCXXFLAGS='{$CLANGOPTIONS32}' LDFLAGS='-arch i386'"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>iOS 7.1 64bit iPad sim trunk</name>
<builddir>csios64_ipadsim</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="--with-osx_iphone --enable-monolithic {$SDKCURRENTIOSSIM} CXXFLAGS='{$CLANGOPTIONIOSSIM}' CFLAGS='{$CLANGOPTIONIOSSIM}' OBJCXXFLAGS='{$CLANGOPTIONIOSSIM}'"/>
<compile-all samples="false" utils="false" demos="false" contrib="false" tests="false" />
</steps>
</build>
</bot>

View File

@@ -1,151 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: example.xml
Purpose: Buildbot example configuration.
Author: Mike Wetherell
Copyright: (c) 2007 Mike Wetherell
Licence: wxWindows licence
There is one xml file such as this per build slave containing a <build>
element for each build the slave runs. Each <build> corresponds to a
column in the waterfall display.
For full documentation see:
https://wiki.wxwidgets.org/Development:_Buildbot
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<!--
Common declarations.
-->
<xi:include href="include/defs.xml"/>
<!--
Notes:
The elements marked 'Unique' below must be unique across all builds on
all slaves.
If a build is currently failing because of something other than a bug in
wxWidgets, e.g. out of space or missing libs, then comment it out, or
add '** Ignore **' to the beginning of the <name>, so that wxWidgets
developers know not to waste time investigating.
-->
<build>
<!--
Unique. Appears as the title in the waterfall display.
-->
<name>Linux x86_64 wxGTK Stable</name>
<!--
Unique. The name of a directory for the bulid.
-->
<builddir>example_gtk</builddir>
<!--
The name of a scheduler that will trigger this build. common.xml
currently defines:
* 'trunk_quick' and 'stable_quick'. These trigger a build after
every source change on the trunk and stable branches respectively.
* Weekly schedulers that fire once a week. There is one of these
for every half hour of the week, e.g. you have monday_0600,
monday_0630, etc..
* Daily schedulers that fire once a day. There is also one of these
for every half hour, e.g. daily_0600, daily_0630, etc..
An empty <scheduler/> element takes its value from the previous build
incremented in the following way:
* Weekly schedulers are incremented by a day, monday_0600 becomes
tuesday_0600, and at the end of the week the time is also bumped by
an hour, saturday_0600 becomes sunday_0700.
* Daily scheduler are incremented by an hour.
The <scheduler> element can be omitted, in which case the build
never runs automatically, but can still be triggered manually.
Or you can use several, e.g. you could use two weekly schedulers
that fire on different days to have a build run twice a week.
-->
<scheduler>monday_0600</scheduler>
<!--
The meaning of <sandbox> is specific to the build slave. There
should be a comment in the slave's configuration file saying if they
are allowed or required. On the testdrive it specifies the remote
machine that will run the bulid.
-->
<sandbox>debug</sandbox>
<!--
You can override the make command the compile steps will use using
this <make> element, if omitted defaults to 'make'. For Windows
builds this becomes the place to put build options as there is no
configure step.
-->
<make>nmake -f makefile.vc SHARED=1 CPPUNIT_CFLAGS=-I\cppunit\include CPPUNIT_LIBS=cppunit.lib</make>
<!--
The build steps.
-->
<steps>
<!--
Check out the sources, by default the trunk branch. Or for a
particular branch or tag, e.g.:
<checkout branch="{$STABLE_BRANCH}"/>
<checkout branch="branches/WX_2_6_BRANCH"/>
-->
<checkout/>
<!--
A <shellcommand> build step can be used anywhere you need to run
arbitrary commands not covered by the standard build steps.
<haltOnFailure/> specifies that the whole build fails if this
step fails, without it it continues with the next step anyway.
-->
<shellcommand>
<description>setting up</description>
<descriptionDone>set up</descriptionDone>
<haltOnFailure/>
<command>setup-script</command>
</shellcommand>
<!--
Configure. Options and environment variables can be added with
the 'options' attribute:
<configure options="-with-foobar CC=cc CXX=CC"/>
Omitted for Windows builds.
-->
<configure/>
<!--
Compile the wxWidgets library, subdirectories and tests.
Takes the following attributes which can all be either 'true' or
'false':
wx - build the library
samples - build the samples
utils - build the utils
demos - build the demos
contrib - build the contrib
tests - build the tests
msw - the library makefile is under build\msw
gui - if 'false' builds only a subset of the above
The attributes usually default to the right values.
-->
<compile-all/>
<!--
Run the test suites.
-->
<run-tests/>
</steps>
</build>
</bot>

View File

@@ -1,38 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: include/csleobuild.xml
Purpose: Declarations for the csleobuild slave
Author: Michael Wetherel, Stefan Csomor
Copyright: (c) Stefan Csomor
Licence: wxWindows licence
-->
<bot xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="unix.xml"/>
<!--
run-tests - build step to run the test suites.
-->
<xsl:template name="run-tests">
<xsl:param name="content"/>
<test>
<defaults content="{$content}">
<description>running tests</description>
<descriptionDone>run tests</descriptionDone>
<warnOnFailure/>
</defaults>
<copy-with-defaults content="{$content}">
<command>
export DYLD_LIBRARY_PATH=../lib
cd tests &amp;&amp;
./test &amp;&amp;
open ./test_gui.app
</command>
</copy-with-defaults>
</test>
</xsl:template>
</bot>

View File

@@ -1,833 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: include/defs.xml
Purpose: Common declarations for buildbot
Author: Mike Wetherell
Copyright: (c) 2007 Mike Wetherell
Licence: wxWindows licence
-->
<bot xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:func="http://exslt.org/functions"
xmlns:get="local"
xsl:extension-element-prefixes="func"
xsl:version="1.0">
<!--
Constants
-->
<xsl:template name="SVN_URL">http://svn.wxwidgets.org/svn/wx/wxWidgets/</xsl:template>
<xsl:template name="STABLE_BRANCH">branches/WX_3_0_BRANCH</xsl:template>
<xsl:variable name="STABLE_BRANCH"><STABLE_BRANCH/></xsl:variable>
<xsl:template name="RELEASE_BRANCH">branches/WX_3_1_0_BRANCH</xsl:template>
<xsl:variable name="RELEASE_BRANCH"><RELEASE_BRANCH/></xsl:variable>
<xsl:template name="SNAPSHOT_URL">http://biolpc22.york.ac.uk/pub</xsl:template>
<!--
disable - comment out a section.
Usage: <disable>
e.g. <build> ... etc.
</disable>
XML comments can't contain a double hyphen which tends to be used in
configure commands, so <disable> can be used instead.
-->
<xsl:template name="disable"/>
<!--
checkout - build step for source checkout.
Usage: as <svn> with defaults for <baseURL> and <defaultBranch>
Typically just:
<checkout/>
for the trunk, or:
<checkout branch="branches/WX_3_0_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:copy-of select="$content"/>
</svn>
</xsl:template>
<!--
configure - add the options attribute to <configure>
Usage: <configure options="-with-foobar"/>
-->
<xsl:template name="configure">
<xsl:param name="content"/>
<xsl:param name="options"/>
<configure>
<copy-with-defaults content="{$content}">
<command>./configure <xsl:value-of select="normalize-space($options)"/></command>
</copy-with-defaults>
</configure>
</xsl:template>
<!--
make - specify the make command.
Usage: <make>nmake -f makefile.vc SHARED=1</make>
Used as a child of <build> to specify the make command used by the
<compile> elements below, if omitted 'make' is used.
-->
<xsl:template name="make"/>
<!--
compile - modifiy <compile> to default to the command given by <make>
Usage: as <compile>
The <make> element of <build> spcecifies the make command used by all
compile build steps in the build. If <make> is not given 'make' is used.
The command for a particular compile build step can be further overridden
using its <command> element:
<compile>
<command>myscript</command>
</compile>
-->
<xsl:template name="compile">
<xsl:param name="content"/>
<compile>
<copy-with-defaults content="{$content}">
<command><get name="make" default="make"/></command>
</copy-with-defaults>
</compile>
</xsl:template>
<!--
Adds build steps to compile the library and the usual subdirectories.
Usage: as <compile> with the additional attributes below.
Usually the attributes default to suitable values, so typical usage
is just <compile-all/>.
<compile-all [ gui = 'true'|'false' ]
[ msw = 'true'|'false' ]
[ wx = 'true'|'false' ]
[ samples = 'true'|'false' ]
[ utils = 'true'|'false' ]
[ demos = 'true'|'false' ]
[ contrib = 'true'|'false' ]
[ tests = 'true'|'false' ] />
gui - if 'true' then build fully the subdirectories specified,
otherwise only the wxBase subset of the directories are built.
msw - if 'true' then build the directory 'build/msw' when building the
library instead of the root.
wx - build the library itself.
samples, utils, demos, contrib, tests
- build subdirectories.
-->
<xsl:template name="compile-all">
<xsl:param name="content"/>
<xsl:param name="gui"><is-gui/></xsl:param>
<xsl:param name="msw"><is-msw/></xsl:param>
<xsl:param name="wx" select="'true'"/>
<xsl:param name="samples" select="'true'"/>
<xsl:param name="utils" select="'true'"/>
<xsl:param name="demos" select="$gui"/>
<xsl:param name="contrib"><has-contrib/></xsl:param>
<xsl:param name="tests"><has-tests/></xsl:param>
<xsl:param name="wx-dirs">
<get-dirs wx="{$wx}" gui="{$gui}" msw="{$msw}"/>
</xsl:param>
<xsl:param name="sample-dirs">
<get-dirs samples="{$samples}" gui="{$gui}" msw="{$msw}"/>
</xsl:param>
<xsl:param name="util-dirs">
<get-dirs utils="{$utils}" gui="{$gui}" msw="{$msw}"/>
</xsl:param>
<xsl:param name="demo-dirs">
<get-dirs demos="{$demos}" gui="{$gui}" msw="{$msw}"/>
</xsl:param>
<xsl:param name="contrib-dirs">
<get-dirs contrib="{$contrib}" gui="{$gui}" msw="{$msw}"/>
</xsl:param>
<xsl:param name="test-dirs">
<get-dirs tests="{$tests}" gui="{$gui}" msw="{$msw}"/>
</xsl:param>
<compile-subdirs dirs="{$wx-dirs}" halt="true">
<xsl:copy-of select="$content"/>
</compile-subdirs>
<compile-subdirs name="samples" dirs="{$sample-dirs}">
<xsl:copy-of select="$content"/>
</compile-subdirs>
<compile-subdirs name="utils" dirs="{$util-dirs}">
<xsl:copy-of select="$content"/>
</compile-subdirs>
<compile-subdirs name="demos" dirs="{$demo-dirs}">
<xsl:copy-of select="$content"/>
</compile-subdirs>
<compile-subdirs name="contrib" dirs="{$contrib-dirs}">
<xsl:copy-of select="$content"/>
</compile-subdirs>
<compile-subdirs name="tests" dirs="{$test-dirs}" halt="true">
<xsl:copy-of select="$content"/>
</compile-subdirs>
</xsl:template>
<!--
Helper for compile-all.
Returns the directories that need to be built for the various components:
wx (the library itself), samples, utils, demos, contrib and tests.
-->
<xsl:template name="get-dirs">
<xsl:param name="contents"/>
<xsl:param name="gui"/>
<xsl:param name="msw"/>
<xsl:param name="wx"/>
<xsl:param name="samples"/>
<xsl:param name="utils"/>
<xsl:param name="demos"/>
<xsl:param name="contrib"/>
<xsl:param name="tests"/>
<xsl:if test="$wx = 'true'">
<xsl:choose>
<xsl:when test="$msw = 'true'">build/msw</xsl:when>
<xsl:otherwise>.</xsl:otherwise>
</xsl:choose>
<xsl:text> </xsl:text>
</xsl:if>
<xsl:if test="$samples = 'true'">
<xsl:choose>
<xsl:when test="$gui = 'true'">samples</xsl:when>
<xsl:otherwise>samples/console</xsl:otherwise>
</xsl:choose>
<xsl:text> </xsl:text>
</xsl:if>
<xsl:if test="$utils = 'true' and $gui = 'true'">utils </xsl:if>
<xsl:if test="$demos = 'true' and $gui = 'true'">demos </xsl:if>
<xsl:if test="$contrib = 'true' and $gui = 'true'">contrib </xsl:if>
<xsl:if test="$tests = 'true'">tests</xsl:if>
</xsl:template>
<!--
compile-subdir - build step to compile a subdirectory.
Usage: as <compile> plus the following attributes,
<compile-subdir dir="foobar" [ halt="true" ]/>
Compiles the named subdirectory 'foobar'. Continues with the next build
step on failure, unless the optional attibute 'halt="true"' is given.
The make command used is as described for the compile step above.
-->
<xsl:template name="compile-subdir">
<xsl:param name="content"/>
<xsl:param name="dir"/>
<xsl:param name="halt" select="'false'"/>
<compile-subdirs name="{$dir}" dirs="{$dir}" halt="{$halt}">
<xsl:copy-of select="$content"/>
</compile-subdirs>
</xsl:template>
<!--
compile-subdirs - adds a compile build step for each directory in a list.
Usage: as <compile> plus the following attributes,
<compile-subdir dirs="foobar1 foobar2"
[ name="foobars" ]
[ sep=" " ]
[ halt="true" ]/>
Compiles the named subdirectories. Continues with the next build
step on failure, unless the optional attibute 'halt="true"' is given.
The make command used is as described for the compile step above.
The 'name' attribute can be used to give a collective name for the
subdirectories, and the 'sep' attibute can be used to specify the
separator in the 'dirs' list (defaults to space).
-->
<xsl:template name="compile-subdirs">
<xsl:param name="content"/>
<xsl:param name="name"/>
<xsl:param name="dirs"/>
<xsl:param name="sep" select="' '"/>
<xsl:param name="halt" select="'false'"/>
<xsl:if test="translate($dirs, $sep, '')">
<compile>
<defaults content="{$content}">
<name>
<xsl:value-of select="normalize-space(concat('compile ', $name))"/>
</name>
<description>
<xsl:value-of select="normalize-space(concat('compiling ', $name))"/>
</description>
<descriptionDone>
<xsl:value-of select="normalize-space(concat('compile ', $name))"/>
</descriptionDone>
<haltOnFailure>
<xsl:value-of select="$halt"/>
</haltOnFailure>
<warnOnFailure/>
</defaults>
<copy-with-defaults content="{$content}">
<command>
<compile-subdirs-cmd dirs="{$dirs}" sep="{$sep}"/>
</command>
</copy-with-defaults>
</compile>
</xsl:if>
</xsl:template>
<xsl:template name="compile-subdirs-cmd">
<xsl:param name="content"/>
<xsl:param name="dirs"/>
<xsl:param name="sep"/>
<xsl:choose>
<xsl:when test="contains($dirs, $sep)">
<xsl:variable name="before" select="substring-before($dirs, $sep)"/>
<xsl:variable name="after" select="substring-after($dirs, $sep)"/>
<xsl:call-template name="compile-subdirs-cmd">
<xsl:with-param name="dirs" select="$before"/>
<xsl:with-param name="sep" select="$sep"/>
</xsl:call-template>
<xsl:if test="$after and substring($after, 1, 1) != ' '">
<xsl:text> &amp;&amp; </xsl:text>
</xsl:if>
<xsl:call-template name="compile-subdirs-cmd">
<xsl:with-param name="dirs" select="$after"/>
<xsl:with-param name="sep" select="$sep"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="string($dirs)">
<xsl:if test="$dirs != '.'">cd <xsl:value-of select="$dirs"/> &amp;&amp; </xsl:if>
<get name="make" default="make"/>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--
run-tests - build step to run the test suites.
Usage: as <test>
Typically just:
<run-tests/>
-->
<xsl:template name="run-tests">
<xsl:param name="content"/>
<xsl:param name="options" select="'-t'"/>
<xsl:param name="guioptions" select="$options"/>
<xsl:param name="msw"><is-msw/></xsl:param>
<test>
<defaults content="{$content}">
<description>running tests</description>
<descriptionDone>run tests</descriptionDone>
<warnOnFailure/>
</defaults>
<copy-with-defaults content="{$content}">
<command>
<xsl:choose>
<xsl:when test="$msw = 'true'">
<run-tests-win options="{$options}" guioptions="{$guioptions}"/>
</xsl:when>
<xsl:otherwise>
<run-tests-unix options="{$options}" guioptions="{$guioptions}"/>
</xsl:otherwise>
</xsl:choose>
</command>
</copy-with-defaults>
</test>
</xsl:template>
<xsl:template name="run-tests-win">
<xsl:param name="options"/>
<xsl:param name="guioptions"/>
<normalize-space>
cd tests &amp;&amp; runtests.bat
</normalize-space>
</xsl:template>
<xsl:template name="run-tests-unix">
<xsl:param name="options"/>
<xsl:param name="guioptions"/>
ERR=0
cd tests || exit 0
ulimit -c unlimited
try()
{
rm -f core
echo Running: "$@"
"$@" || ERR=$?
if [ -f core -a -x "`which gdb`" ]; then
echo Crashed, attempting to display backtrace:
gdb -batch -c core -ex 'set pagination off' -ex bt "$1"
fi
echo
}
try ./test <xsl:value-of select="normalize-space($options)"/>
test -x test_gui || exit $ERR
if [ -z "$DISPLAY" ]; then
echo '$DISPLAY is not set, skipping GUI tests.'
exit $ERR
fi
echo 'Checking window manager:'
WINDOW_MANAGER=$(xprop -root 32x '\n$0\n' _NET_SUPPORTING_WM_CHECK | grep ^0x)
if [ -z "$WINDOW_MANAGER" ]; then
echo 'Window manager not present, skipping GUI tests.'
exit $ERR
fi
xprop -id $WINDOW_MANAGER 8s _NET_WM_NAME
echo
try ./test_gui <xsl:value-of select="normalize-space($guioptions)"/>
exit $ERR
</xsl:template>
<!--
defaults - supply default content for an element.
Usage: <defaults content="{$content}">
<foo>foo</foo>
<bar>bar</bar>
</defaults>
Copies those child elements that do not already exist in $content.
-->
<xsl:template name="defaults">
<xsl:param name="defaults"/>
<xsl:param name="content"/>
<xsl:variable name="def-nodes" select="exsl:node-set($defaults)"/>
<xsl:variable name="cont-nodes" select="exsl:node-set($content)"/>
<xsl:for-each select="$def-nodes/*">
<xsl:if test="not($cont-nodes/*[name() = name(current())])">
<xsl:copy-of select="."/>
</xsl:if>
</xsl:for-each>
</xsl:template>
<!--
copy-with-defaults - copy elements supplying defaults for any that are
missing or empty.
Usage: <copy-with-defaults content="{$content}">
<foo>foo</foo>
<bar>bar</bar>
</copy-with-defaults>
Copies $content plus any child elements that do not exist in $content,
substituting empty elements in $content with any child elements of the
same name.
-->
<xsl:template name="copy-with-defaults">
<xsl:param name="defaults"/>
<xsl:param name="content"/>
<xsl:variable name="def-nodes" select="exsl:node-set($defaults)"/>
<xsl:variable name="cont-nodes" select="exsl:node-set($content)"/>
<xsl:for-each select="$def-nodes/*">
<xsl:if test="not($cont-nodes/*[name() = name(current())])">
<xsl:copy-of select="."/>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="$cont-nodes/*">
<xsl:choose>
<xsl:when test="not(node())">
<xsl:copy-of select="$def-nodes/*[name() = name(current())]"/>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<!--
get - gets the text from a child element of the current build.
Usage: <get name="foobar" [ default="value" ]/>
Gets the text from the <foobar> element of the current build, or returns
$default if there is not such element.
-->
<xsl:template name="get">
<xsl:param name="content"/>
<xsl:param name="build" select="get:build()"/>
<xsl:param name="name"/>
<xsl:param name="default"/>
<xsl:variable name="property" select="get:property($name, $build)"/>
<strip>
<xsl:choose>
<xsl:when test="$property">
<xsl:apply-templates select="$property/node()"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$default"/>
</xsl:otherwise>
</xsl:choose>
</strip>
</xsl:template>
<!--
Accessors to get builds and their fields. XSLT code should use these
instead of traversing the input tree directly.
-->
<func:function name="get:build">
<func:result select="ancestor-or-self::build[last()]"/>
</func:function>
<func:function name="get:all-builds">
<func:result select="//build[not(ancestor::*[name() != name(/*)])]"/>
</func:function>
<func:function name="get:preceding-builds">
<func:result select="get:build()/preceding-sibling::build"/>
</func:function>
<func:function name="get:property">
<xsl:param name="name"/>
<xsl:param name="build" select="get:build()"/>
<func:result select="$build/*[name() = $name]"/>
</func:function>
<func:function name="get:step">
<xsl:param name="name"/>
<xsl:param name="build" select="get:build()"/>
<func:result select="get:property('steps', $build)/*[name() = $name]"/>
</func:function>
<!--
Returns true if this is an msw build.
-->
<xsl:template name="is-msw">
<xsl:param name="content"/>
<xsl:param name="build" select="get:build()"/>
<xsl:value-of select="not(get:step('configure', $build))"/>
</xsl:template>
<!--
Returns true if this a gui build.
-->
<xsl:template name="is-gui">
<xsl:param name="content"/>
<xsl:param name="build" select="get:build()"/>
<xsl:variable name="make"><get name="make" build="{$build}"/></xsl:variable>
<xsl:variable name="configure"><xsl:apply-templates select="get:step('configure', $build)"/></xsl:variable>
<xsl:value-of select="not(contains($make, 'USE_GUI=0') or contains($configure, '--disable-gui'))"/>
</xsl:template>
<!--
Returns true if the branch we're building has a contrib subdirectory.
-->
<xsl:template name="has-contrib">
<xsl:param name="content"/>
<xsl:param name="build" select="get:build()"/>
<xsl:variable name="checkout"><xsl:apply-templates select="get:step('checkout', $build)"/></xsl:variable>
<xsl:value-of select="contains($checkout, 'WX_2_') and not(contains($checkout, 'WX_2_9_'))"/>
</xsl:template>
<!--
Returns true if the build should build the test suite.
-->
<xsl:template name="has-tests">
<xsl:param name="content"/>
<xsl:param name="build" select="get:build()"/>
<xsl:variable name="configure"><xsl:apply-templates select="get:step('configure', $build)"/></xsl:variable>
<xsl:value-of select="get:step('run-tests', $build) or contains($configure, '--host=')"/>
</xsl:template>
<!--
strip - strips leading and trailing whitespace
Usage: <strip>
foobar
</strip>
Converts to text and strips leading and trailing whitespace.
-->
<xsl:template name="strip">
<xsl:param name="content"/>
<xsl:variable name="len" select="string-length($content)"/>
<xsl:variable name="norm" select="normalize-space($content)"/>
<xsl:variable name="normlen" select="string-length($norm)"/>
<xsl:choose>
<xsl:when test="substring($content, 1, 1) != substring($norm, 1, 1)">
<xsl:call-template name="strip">
<xsl:with-param name="content" select="substring($content, 2)"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="substring($content, $len, 1) != substring($norm, $normlen, 1)">
<xsl:call-template name="strip">
<xsl:with-param name="content" select="substring($content, 1, $len - 1)"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$content"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!--
normalize-space - normalises whitespace.
Usage: <normalize-space>
foobar
</normalize-space>
Converts to text, strips leading and trailing whitespace and replaces
sequences of whitespace characters by a single space.
-->
<xsl:template name="normalize-space">
<xsl:param name="content"/>
<xsl:value-of select="normalize-space($content)"/>
</xsl:template>
<!--
lower-case - converts to lower case.
Usage: <lower-case>FooBar</lower-case>
-->
<xsl:template name="lower-case">
<xsl:param name="content"/>
<xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable>
<xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
<xsl:value-of select="translate($content, $upper, $lower)"/>
</xsl:template>
<!--
Helpers to convert between day numbers and names.
-->
<xsl:template name="day-number">
<xsl:param name="content"/>
<xsl:param name="name"/>
<xsl:choose>
<xsl:when test="$name = 'monday'">0</xsl:when>
<xsl:when test="$name = 'tuesday'">1</xsl:when>
<xsl:when test="$name = 'wednesday'">2</xsl:when>
<xsl:when test="$name = 'thursday'">3</xsl:when>
<xsl:when test="$name = 'friday'">4</xsl:when>
<xsl:when test="$name = 'saturday'">5</xsl:when>
<xsl:when test="$name = 'sunday'">6</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template name="day-name">
<xsl:param name="content"/>
<xsl:param name="number"/>
<xsl:choose>
<xsl:when test="$number = '0'">monday</xsl:when>
<xsl:when test="$number = '1'">tuesday</xsl:when>
<xsl:when test="$number = '2'">wednesday</xsl:when>
<xsl:when test="$number = '3'">thursday</xsl:when>
<xsl:when test="$number = '4'">friday</xsl:when>
<xsl:when test="$number = '5'">saturday</xsl:when>
<xsl:when test="$number = '6'">sunday</xsl:when>
</xsl:choose>
</xsl:template>
<!--
Helpers to convert between time in the format 'hhmm' and an integer
count of the minutes since midnight.
-->
<xsl:template name="time-minutes">
<xsl:param name="content"/>
<xsl:param name="hhmm"/>
<xsl:if test="string-length($hhmm) = 4 and format-number($hhmm, '0000') = $hhmm">
<xsl:variable name="hour" select="substring($hhmm, 1, 2)"/>
<xsl:variable name="min" select="substring($hhmm, 3, 2)"/>
<xsl:if test="$hour >= 0 and $hour &lt; 24 and $min >= 0 and $min &lt; 60">
<xsl:value-of select="$hour * 60 + $min"/>
</xsl:if>
</xsl:if>
</xsl:template>
<xsl:template name="time-hhmm">
<xsl:param name="content"/>
<xsl:param name="minutes"/>
<xsl:value-of select="format-number(floor($minutes div 60) * 100 + $minutes mod 60, '0000')"/>
</xsl:template>
<!--
Create schedulers.
-->
<xsl:template name="nightly-schedulers">
<xsl:param name="content"/>
<xsl:param name="name"/>
<xsl:param name="day"><day-number name="{$name}"/></xsl:param>
<xsl:param name="hour" select="0"/>
<xsl:param name="minute" select="0"/>
<xsl:param name="step" select="30"/>
<xsl:if test="$hour &lt; 24">
<nightly>
<name>
<xsl:value-of select="concat($name, '_', format-number($hour, '00'), format-number($minute, '00'))"/>
</name>
<hour>
<xsl:value-of select="$hour"/>
</hour>
<minute>
<xsl:value-of select="$minute"/>
</minute>
<xsl:if test="$day != ''">
<dayOfWeek>
<xsl:value-of select="$day"/>
</dayOfWeek>
</xsl:if>
</nightly>
<xsl:variable name="next" select="$hour * 60 + $minute + $step"/>
<xsl:call-template name="nightly-schedulers">
<xsl:with-param name="name" select="$name"/>
<xsl:with-param name="day" select="$day"/>
<xsl:with-param name="hour" select="floor($next div 60)"/>
<xsl:with-param name="minute" select="$next mod 60"/>
<xsl:with-param name="step" select="$step"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<!--
scheduler - provide default for the <scheduler> build element.
-->
<xsl:template name="scheduler">
<xsl:param name="content"/>
<xsl:param name="previous" select="get:property('scheduler', get:preceding-builds()[last()])"/>
<xsl:param name="step" select="60"/>
<xsl:choose>
<xsl:when test="exsl:node-set($content)/node()">
<scheduler>
<xsl:copy-of select="$content"/>
</scheduler>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="$previous">
<xsl:variable name="text">
<xsl:apply-templates select="."/>
</xsl:variable>
<scheduler>
<scheduler-subst text="{$text}" step="{$step}"/>
</scheduler>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="scheduler-subst">
<xsl:param name="content"/>
<xsl:param name="text"/>
<xsl:param name="step"/>
<xsl:variable name="name" select="substring-before($text, '_')"/>
<xsl:variable name="hhmm" select="substring-after($text, '_')"/>
<xsl:variable name="day"><day-number name="{$name}"/></xsl:variable>
<xsl:variable name="mins"><time-minutes hhmm="{$hhmm}"/></xsl:variable>
<xsl:choose>
<xsl:when test="$mins = ''">
<xsl:value-of select="$text"/>
</xsl:when>
<xsl:when test="$day = ''">
<xsl:value-of select="$name"/>
<xsl:text>_</xsl:text>
<time-hhmm minutes="{$mins + $step}"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="day-mins" select="24 * 60"/>
<xsl:variable name="week-mins" select="7 * $day-mins"/>
<xsl:variable name="tmp" select="($day + 1) * $day-mins + $mins"/>
<xsl:variable name="next" select="$tmp mod $week-mins + floor($tmp div $week-mins) * $step"/>
<day-name number="{floor($next div $day-mins)}"/>
<xsl:text>_</xsl:text>
<time-hhmm minutes="{$next mod $day-mins}"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!--
email - substitute '@' for ' -at- ' in email addresses.
-->
<xsl:template name="emailfield">
<xsl:param name="content"/>
<xsl:param name="addr"/>
<xsl:variable name="at"> -at- </xsl:variable>
<xsl:choose>
<xsl:when test="contains($addr, $at)">
<xsl:value-of select="substring-before($addr, $at)"/>
<xsl:text>@</xsl:text>
<xsl:value-of select="substring-after($addr, $at)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$addr"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="email">
<xsl:param name="content"/>
<xsl:param name="id"/>
<email id="{$id}"><emailfield addr="{$content}"/></email>
</xsl:template>
<xsl:template name="fromaddr">
<xsl:param name="content"/>
<fromaddr><emailfield addr="{$content}"/></fromaddr>
</xsl:template>
<xsl:template name="extraRecipient">
<xsl:param name="content"/>
<extraRecipient><emailfield addr="{$content}"/></extraRecipient>
</xsl:template>
<!--
mailnotifier - add a default value for <fromaddr> to <mailnotifier>
-->
<xsl:template name="mailnotifier">
<xsl:param name="content"/>
<mailnotifier>
<defaults content="{$content}">
<fromaddr>noreply -at- wxsite.net</fromaddr>
</defaults>
<xsl:copy-of select="$content"/>
</mailnotifier>
</xsl:template>
</bot>

View File

@@ -1,40 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: include/push.xml
Purpose: Declarations for the push build slave
Author: Mike Wetherell
Copyright: (c) 2007 Mike Wetherell
Licence: wxWindows licence
-->
<bot xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="defs.xml"/>
<!--
Usage: <show log="filename" [ name="title" ]/>
A build step displayed as 'title' in the waterfall display, the output
comes from 'filename.log' in the uploaded log tarball, and the exit code
comes from 'filename.err'.
If the name attibute is omitted, it defaults to the filename.
-->
<xsl:template name="show">
<xsl:param name="content"/>
<xsl:param name="log"/>
<xsl:param name="name" select="$log"/>
<shellcommand>
<defaults content="{$content}">
<name><xsl:value-of select="$name"/></name>
<description><xsl:value-of select="$name"/></description>
<descriptionDone><xsl:value-of select="$name"/></descriptionDone>
<command><xsl:value-of select="$log"/></command>
</defaults>
<xsl:copy-of select="$content"/>
</shellcommand>
</xsl:template>
</bot>

View File

@@ -1,91 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: include/unix.xml
Purpose: Declarations for unix slaves
Author: Michael Wetherell
Copyright: (c) Michael Wetherell
Licence: wxWindows 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_3_0_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 --disable-compat28 --disable-compat26 <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>

View File

@@ -1,48 +0,0 @@
<?xml version="1.0"?>
<emaillookup>
<email id="ABX">abx -at- abx.art.pl</email>
<email id="AG">andrea.gavana -at- gmail.com</email>
<email id="AMB">alex -at- alex.org.uk</email>
<email id="AVV">cafedetal -at- gmail.com</email>
<email id="BBE">bartosz.bekier -at- gmail.com</email>
<email id="BIW">bwilliams -at- kirix.com</email>
<email id="BP">bryan -at- ibaku.net</email>
<email id="BY">techrazy.yang -at- gmail.com</email>
<email id="CAD">loafier -at- gmail.com</email>
<email id="CE">biol75 -at- york.ac.uk</email>
<email id="CHB">Chris.Barker -at- noaa.gov</email>
<email id="CJP">admin -at- editra.org</email>
<email id="DE">dfe -at- tgwbd.org</email>
<email id="DJL">daniel.lauk -at- gmail.com</email>
<email id="DMS">diaasami -at- gmail.com</email>
<email id="DS">d.schoolwerth -at- xs4all.nl</email>
<email id="FM">f18m_cpp217828 -at- yahoo.it</email>
<email id="FT">frank.tobia -at- gmail.com</email>
<email id="GD">gilles_depeyrot -at- mac.com</email>
<email id="JG">jrgadd2 -at- cs.latrobe.edu.au</email>
<email id="JJ">joukj -at- hrem.nano.tudelft.nl</email>
<email id="JMS">jaakko.salli -at- dnainternet.net</email>
<email id="JS">julian -at- anthemion.co.uk</email>
<email id="JW">hc.john -at- gmail.com</email>
<email id="KH">hockkn -at- yahoo.com</email>
<email id="KLB">KendallB -at- scitechsoft.com</email>
<email id="KO">kevino -at- theolliviers.com</email>
<email id="MBN">mbarbon -at- cpan.org</email>
<email id="MJM">mmacleod -at- webmail.co.za</email>
<email id="MK">nitro -at- dr-code.org</email>
<email id="MMK">MMK -at- Thunder-Power.com</email>
<email id="MR">leio -at- gentoo.org</email>
<email id="MW">mike.wetherell -at- ntlworld.com</email>
<email id="OLS">oliver.schoenborn -at- gmail.com</email>
<email id="PC">paulcor -at- bullseye.com</email>
<email id="PJC">corsix -at- corsix.org</email>
<email id="PMO">Peter_Most -at- gmx.de</email>
<email id="RD">robin -at- alldunn.com</email>
<email id="RN">wxprojects -at- comcast.net</email>
<email id="ROL">rolinsky -at- femagsoft.com</email>
<email id="RR">robert -at- roebling.de</email>
<email id="SC">csomor -at- advancedconcepts.ch</email>
<email id="SN">Stefan.Neis -at- t-online.de</email>
<email id="VS">vslavik -at- fastmail.fm</email>
<email id="VZ">vadim -at- wxwidgets.org</email>
</emaillookup>

View File

@@ -1,79 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: include/xp_vc.xml
Purpose: Declarations for the xp_vc slave
Author: Michael Wetherell
Copyright: (c) 2008 Michael Wetherell
Licence: wxWindows 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 builds for the same branch on this machine.
-->
<xsl:template name="build">
<xsl:param name="content"/>
<xsl:variable name="checkout">
<xsl:apply-templates select="get:step('checkout')"/>
</xsl:variable>
<build>
<lock>
<xsl:value-of select="exsl:node-set($checkout)/svn/defaultBranch"/>
</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 exports
it to a clean 'build' directory for the job to build in. This relies on
builds for the same branch being serialised with a lock so that one build
doesn't update the shared source while another is exporting them.
Usage typically just:
<checkout/>
for the trunk, or:
<checkout branch="branches/WX_3_0_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>
<normalize-space>
(if exist build rmdir /s/q build) &amp;&amp;
svn export --native-eol CRLF
..\<xsl:value-of select="$branch"/> build
</normalize-space>
</command>
</shellcommand>
</xsl:template>
</bot>

View File

@@ -1,85 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: push.xml
Purpose: Configuration for push builds
Author: Mike Wetherell
Copyright: (c) 2007 Mike Wetherell
Licence: wxWindows licence
This allows the logs from builds done elsewhere to be included in the
buildbot results, see:
https://wiki.wxwidgets.org/Development:_Buildbot#Sending_in_Logs_from_Builds_Done_Elsewhere
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/push.xml"/>
<build>
<name>Solaris HEAD GTK1</name>
<builddir>psh_solaris_hd_gtk1</builddir>
<steps>
<extractlogs/>
<show log="configure"/>
<show log="compile"/>
</steps>
</build>
<build>
<name>Solaris HEAD X11 with-stl</name>
<builddir>psh_solaris_hd_x11</builddir>
<steps>
<extractlogs/>
<show log="configure"/>
<show log="compile"/>
</steps>
</build>
<build>
<name>Solaris Stable Motif</name>
<builddir>psh_solaris_st_motif</builddir>
<steps>
<extractlogs/>
<show log="configure"/>
<show log="compile"/>
</steps>
</build>
<build>
<name>Solaris Stable GTK2 Unicode</name>
<builddir>psh_solaris_st_gtk2u</builddir>
<steps>
<extractlogs/>
<show log="configure"/>
<show log="compile"/>
</steps>
</build>
<build>
<name>MingW-W64 cross_wxMSW Trunk</name>
<builddir>psh_mingw64_trunk</builddir>
<steps>
<extractlogs/>
<show log="configure"/>
<show log="compile"/>
</steps>
</build>
<build>
<name>MingW-W64 cross_wxMSW Stable</name>
<builddir>psh_mingw64_stable</builddir>
<steps>
<extractlogs/>
<show log="configure"/>
<show log="compile"/>
</steps>
</build>
</bot>

View File

@@ -1,48 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: ravnsgaard.xml
Licence: wxWindows licence
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/unix.xml"/>
<!-- Moved to brandt32 while ranvsgaard is down -->
<disable>
<build>
<name>Linux i386 wxGTK stable STL</name>
<builddir>ravnsgaard_wxgtk_stable</builddir>
<scheduler>stable_quick</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="--enable-stl"/>
<compile-all utils="false"/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux i386 wxGTK trunk no gui</name>
<builddir>ravnsgaard_wxgtk_nogui</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout/>
<configure options="--disable-gui --enable-debug"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux i386 wxGTK trunk no features</name>
<builddir>ravnsgaard_wxgtk_nofeatures</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout/>
<configure options="--disable-all-features --enable-debug"/>
<compile-all utils="false"/>
<run-tests/>
</steps>
</build>
</disable>
</bot>

View File

@@ -1,83 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: xp_vc.xml
Purpose: Buildbot xp_vc configuration.
Author: Laurent Humbertclaude
Copyright: (c) 2008 Laurent Humbertclaude
Licence: wxWindows licence
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/xp_vc.xml"/>
<build>
<name>XPSP2 VC9 wxMSW trunk release</name>
<builddir>XPSP2_VC9_wxMSW_trunk_release</builddir>
<scheduler>trunk_quick</scheduler>
<sandbox>VC9</sandbox>
<make>nmake /nologo /f makefile.vc BUILD=release SHARED=1 CPPUNIT_CFLAGS=-Ik:/buildbot/VC9libs/cppunit-1.12.1/include CPPUNIT_LIBS=k:/buildbot/VC9libs/cppunit-1.12.1/lib/cppunit.lib</make>
<steps>
<checkout/>
<compile-all tests="true"/>
<run-tests/>
</steps>
</build>
<build>
<name>XPSP2 VC9 wxMSW stable release</name>
<builddir>XPSP2_VC9_wxMSW_stable_release</builddir>
<scheduler>stable_quick</scheduler>
<sandbox>VC9</sandbox>
<make>nmake /nologo /f makefile.vc BUILD=release SHARED=1 CPPUNIT_CFLAGS=-Ik:/buildbot/VC9libs/cppunit-1.12.1/include CPPUNIT_LIBS=k:/buildbot/VC9libs/cppunit-1.12.1/lib/cppunit.lib</make>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<compile-all contrib="false" tests="true"/>
<run-tests/>
</steps>
</build>
<build>
<name>XPSP2 VC9 wxMSW trunk debug</name>
<builddir>XPSP2_VC9_wxMSW_trunk_debug</builddir>
<scheduler>daily_0400</scheduler>
<sandbox>VC9</sandbox>
<make>nmake /nologo /f makefile.vc BUILD=debug SHARED=1 CPPUNIT_CFLAGS=-Ik:/buildbot/VC9libs/cppunit-1.12.1/include CPPUNIT_LIBS=k:/buildbot/VC9libs/cppunit-1.12.1/lib/cppunitd.lib</make>
<steps>
<checkout/>
<compile-all tests="true"/>
<run-tests/>
</steps>
</build>
<build>
<name>XPSP2 VC9 wxMSW stable debug</name>
<builddir>XPSP2_VC9_wxMSW_stable_debug</builddir>
<scheduler>daily_0500</scheduler>
<sandbox>VC9</sandbox>
<make>nmake /nologo /f makefile.vc BUILD=debug SHARED=1 CPPUNIT_CFLAGS=-Ik:/buildbot/VC9libs/cppunit-1.12.1/include CPPUNIT_LIBS=k:/buildbot/VC9libs/cppunit-1.12.1/lib/cppunitd.lib</make>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<compile-all contrib="false" tests="true"/>
<run-tests/>
</steps>
</build>
<build>
<name>XPSP2 VC6 wxMSW stable release</name>
<builddir>XPSP2_VC6_wxMSW_stable_release</builddir>
<scheduler>stable_quick</scheduler>
<sandbox>VC6</sandbox>
<make>nmake /nologo /f makefile.vc BUILD=release SHARED=1 CPPUNIT_CFLAGS=-Ik:/buildbot/VC6libs/cppunit-1.12.1/include CPPUNIT_LIBS=k:/buildbot/VC6libs/cppunit-1.12.1/lib/cppunit.lib</make>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<compile-all contrib="false" tests="true"/>
<run-tests/>
</steps>
</build>
<build>
<name>XPSP2 VC6 wxMSW stable debug</name>
<builddir>XPSP2_VC6_wxMSW_stable_debug</builddir>
<scheduler>daily_0700</scheduler>
<sandbox>VC6</sandbox>
<make>nmake /nologo /f makefile.vc BUILD=debug SHARED=1 CPPUNIT_CFLAGS=-Ik:/buildbot/VC6libs/cppunit-1.12.1/include CPPUNIT_LIBS=k:/buildbot/VC6libs/cppunit-1.12.1/lib/cppunitd.lib</make>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<compile-all contrib="false" tests="true"/>
<run-tests/>
</steps>
</build>
</bot>

View File

@@ -1,15 +0,0 @@
<?xml version="1.0"?>
<!--
Name: bot.xsd
Purpose: Used by check.sh for offline checking of the configuration.
Author: Mike Wetherell
Copyright: (c) 2007 Mike Wetherell
Licence: wxWindows licence
-->
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<element name="bot">
<!-- todo -->
</element>
</schema>

View File

@@ -1,182 +0,0 @@
#!/bin/sh
#############################################################################
# Name: check.sh
# Purpose: Offline checker for the buildbot configuration files
# Author: Mike Wetherell
# Copyright: (c) 2007 Mike Wetherell
# Licence: wxWindows licence
#############################################################################
usage() {
echo "Usage: $0 [options] FILE..."
echo "Offline checker for the buildbot configuration files"
echo
echo "Options:"
echo " -g generate xslt"
echo " -h show help"
echo " -l N output only line N"
echo " -p preprocess"
echo " -v validate"
exit 0
}
badopt() {
echo "try '$0 -h' for more information" >&2
exit 1
}
progcheck() {
prog="$1"
$prog --version >/dev/null 2>&1 || {
echo "$0: requires $prog, not found" >&2
exit 1
}
}
GENERATE=1
PREPROCESS=2
VALIDATE=3
MODE=$VALIDATE
FILTER=cat
while getopts ghl:pv opt; do
case "$opt" in
\?) badopt ;;
g) MODE=$GENERATE ;;
h) usage ;;
l) FILTER="sed -ne ${OPTARG}p" ;;
p) MODE=$PREPROCESS ;;
v) MODE=$VALIDATE ;;
esac
done
if [ $OPTIND -gt 1 ]; then
shift `expr $OPTIND - 1`
fi
if [ $# -eq 0 ]; then
usage
fi
XSLTPROC=xsltproc
XMLLINT=xmllint
progcheck $XSLTPROC
progcheck $XMLLINT
DIR="`dirname $0`"
WORKDIR="${TMPDIR:-/tmp}/wx.$$"
mkdir "$WORKDIR" || exit
trap 'rm -rf "$WORKDIR"' EXIT
WORKPAT=`echo "$WORKDIR" | sed 's|[^A-Za-z0-9]/|.|g'`
XSLT="$WORKDIR/XSLT"
PREP="$WORKDIR/PREP"
STDERR="$WORKDIR/STDERR"
ERR=0
# Filter to show lines of genertated XSLT when they are mentioned.
showxslt() {
awk '{
print;
if (sub(/.*generated XSLT line */, "") && sub(/[^0-9].*/, ""))
{
system("sed -ne "$0"p '$XSLT'");
}
}'
}
# Test it works as old version of awk don't have sub or system functions.
if showxslt </dev/null 2>/dev/null; then
SHOWXSLT=showxslt
else
SHOWXSLT=cat
fi
# Change the names of the temporary files in an error message to something
# to something more informative
errout()
{
NAME="$1"
if [ -s "$STDERR" ]; then
sed "s|file ${WORKPAT}|${WORKPAT}|g;\
s|${WORKPAT}/XSLT|generated XSLT|g;\
s|${WORKPAT}/PREP|$NAME (preprocessed)|g" "$STDERR" | $SHOWXSLT
fi
}
output()
{
$FILTER "$1"
}
generate()
{
INPUT="$1"
if $XSLTPROC --xinclude -o "$XSLT" $DIR/embedded.xsl "$INPUT" 2>"$STDERR" &&
test \! -s "$STDERR"
then
if [ $MODE -eq $GENERATE ]; then
output "$XSLT"
fi
else
return 1
fi
}
preprocess()
{
INPUT="$1"
if [ $MODE -lt $PREPROCESS ]; then
return 0
fi
if $XSLTPROC --xinclude -o "$PREP" "$XSLT" "$INPUT" 2>"$STDERR" &&
test \! -s "$STDERR"
then
if [ $MODE -eq $PREPROCESS ]; then
output "$PREP"
fi
else
return 1
fi
}
validate()
{
NAME="$1"
if [ $MODE -lt $VALIDATE ]; then
return 0
fi
if $XMLLINT --noout --schema $DIR/bot.xsd "$PREP" 2>"$STDERR"
then
errout "$NAME"
else
return 1
fi
}
while [ $# -gt 0 ]; do
INPUT="$1"
NAME="`echo \"$INPUT\" | sed 's/[|\]/\\\&/g'`"
{
generate "$INPUT" &&
preprocess "$INPUT" &&
validate "$NAME"
} || {
errout "$NAME" >&2
ERR=1
}
rm -f "$XSLT" "$PREP" "$STDERR"
shift
done
exit $ERR

View File

@@ -1,39 +0,0 @@
<?xml version="1.0"?>
<!--
Name: email.xsl
Purpose: Create email address lookup.
Author: Mike Wetherell
Copyright: (c) 2007 Mike Wetherell
Licence: wxWindows licence
Usage: xsltproc -html tools/email.xsl http://svn.wxwidgets.org/users.cgi \
> config/include/wx-devs.xml
-->
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:param name="at"> -at- </xsl:param>
<xsl:output indent="yes"/>
<xsl:template match="/">
<emaillookup>
<xsl:apply-templates select="//table/tr">
<xsl:sort select="normalize-space(td[1])"/>
</xsl:apply-templates>
</emaillookup>
</xsl:template>
<xsl:template match="tr">
<xsl:variable name="id" select="normalize-space(td[1])"/>
<xsl:variable name="email" select="normalize-space(td[3])"/>
<xsl:if test="$id and not(contains($id, ' ')) and contains($email, $at)">
<email id="{$id}">
<xsl:value-of select="$email"/>
</email>
</xsl:if>
</xsl:template>
</xsl:transform>

View File

@@ -1,349 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: embedded.xsl
Purpose: Used by check.sh for offline checking of the configuration.
Author: Mike Wetherell
Copyright: (c) 2007 Mike Wetherell
Licence: wxWindows licence
-->
<transform xmlns="http://www.w3.org/1999/XSL/Transform"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:XSL="XSL"
version="1.0">
<namespace-alias stylesheet-prefix="XSL" result-prefix="xsl"/>
<output indent="yes"/>
<variable
name="root"
select="//*[not(ancestor-or-self::*[name() != name(/*)])]"/>
<variable
name="includes"
select="$root[position() > 1]"/>
<variable
xmlns:func="http://exslt.org/functions"
name="top-level"
select="$root/xsl:import |
$root/xsl:include |
$root/xsl:attribute-set |
$root/xsl:character-map |
$root/xsl:decimal-format |
$root/xsl:function |
$root/xsl:import-schema |
$root/xsl:key |
$root/xsl:namespace-alias |
$root/xsl:output |
$root/xsl:param |
$root/xsl:preserve-space |
$root/xsl:strip-space |
$root/xsl:template |
$root/xsl:variable |
$root/func:function"/>
<template match="/">
<XSL:transform>
<copy-of select="$root/namespace::*"/>
<for-each select="$root/@xsl:*">
<attribute name="{local-name()}">
<value-of select="."/>
</attribute>
</for-each>
<for-each select="$top-level">
<if test="not(../ancestor::*/*[name() = name(current()) and @name = current()/@name])">
<apply-templates mode="copy-xsl" select="."/>
</if>
</for-each>
<apply-templates select="*"/>
</XSL:transform>
</template>
<template match="*">
<variable name="pattern">
<call-template name="coord-pattern"/>
</variable>
<variable name="is-xsl">
<call-template name="is-xsl"/>
</variable>
<XSL:template match="*[generate-id() = generate-id(document('', /){$pattern})]">
<copy-of select="namespace::*"/>
<choose>
<when test="$root/xsl:template[@name = name(current())]">
<call-template name="expand">
<with-param name="inside-xsl" select="$is-xsl = 'true'"/>
</call-template>
</when>
<when test="count($includes | .) = count($includes)">
<if test="node()">
<XSL:apply-templates select="node()"/>
</if>
</when>
<when test="count($top-level | .) != count($top-level)">
<call-template name="create-context"/>
</when>
</choose>
</XSL:template>
<if test="$is-xsl != 'true'">
<apply-templates select="node()"/>
</if>
</template>
<template match="text()"/>
<template match="@*">
<copy/>
</template>
<template mode="copy-xsl" match="*[//xsl:template[not(ancestor::*[name() != name(/*)])]/@name = name()]">
<choose>
<when test="ancestor::xsl:template[@name = name(current())]">
<copy>
<call-template name="copy-xsl-children"/>
</copy>
</when>
<otherwise>
<call-template name="expand">
<with-param name="inside-xsl" select="true()"/>
</call-template>
</otherwise>
</choose>
</template>
<template mode="copy-xsl" match="@*|node()">
<copy>
<call-template name="copy-xsl-children"/>
</copy>
</template>
<template name="copy-xsl-children">
<copy-of select="namespace::*"/>
<apply-templates mode="copy-xsl" select="@*|node()"/>
</template>
<template name="coord-pattern">
<param name="element" select="."/>
<for-each select="$element/ancestor-or-self::*">
<text>/*[</text>
<value-of select="count(preceding-sibling::*) + 1"/>
<text>]</text>
</for-each>
</template>
<template name="is-xsl">
<param name="element" select="."/>
<choose>
<when test="$element/self::xsl:*">
<value-of select="true()"/>
</when>
<otherwise>
<variable name="namespace" select="namespace-uri($element)"/>
<variable name="extension-namespaces">
<for-each select="$element/ancestor-or-self::*/@xsl:extension-element-prefixes">
<variable name="prefixes"
select="concat(' ', normalize-space(.), ' ')"/>
<variable name="namespaces"
select="../namespace::*[contains($prefixes, concat(' ', name(), ' ')) or
(name() = '' and contains($prefixes, ' #default '))]"/>
<value-of select="$namespaces[. = $namespace]"/>
</for-each>
</variable>
<value-of select="$extension-namespaces != ''"/>
</otherwise>
</choose>
</template>
<template name="expand">
<param name="inside-xsl"/>
<variable name="params" select="$root/xsl:template[@name = name(current())]/xsl:param"/>
<XSL:call-template name="{name()}">
<if test="node() and $params">
<XSL:with-param name="{$params[1]/@name}">
<choose>
<when test="$inside-xsl">
<apply-templates mode="copy-xsl" select="node()"/>
</when>
<otherwise>
<variable name="pattern">
<call-template name="coord-pattern"/>
</variable>
<XSL:apply-templates select="{$pattern}/node()"/>
</otherwise>
</choose>
</XSL:with-param>
</if>
<for-each select="@*">
<variable name="len" select="string-length(.)"/>
<choose>
<when test="substring(., 1, 1) = '{' and
substring(., $len, 1) = '}'">
<XSL:with-param name="{name()}"
select="{substring(., 2, $len - 2)}"/>
</when>
<otherwise>
<XSL:with-param name="{name()}">
<call-template name="avt"/>
</XSL:with-param>
</otherwise>
</choose>
</for-each>
</XSL:call-template>
</template>
<template name="create-context">
<param name="elements" select="ancestor-or-self::*
[last() - 1 > position()]
/preceding-sibling::xsl:variable | ."/>
<variable name="pattern">
<call-template name="coord-pattern">
<with-param name="element" select="$elements[1]"/>
</call-template>
</variable>
<variable name="parent-pattern">
<call-template name="coord-pattern">
<with-param name="element" select="$elements[1]/.."/>
</call-template>
</variable>
<XSL:for-each select="{$parent-pattern}/*">
<XSL:if test="count({$pattern} | .) = 1">
<variable name="is-xsl">
<call-template name="is-xsl">
<with-param name="element" select="$elements[1]"/>
</call-template>
</variable>
<choose>
<when test="$is-xsl = 'true'">
<apply-templates mode="copy-xsl" select="$elements[1]"/>
<if test="$elements[2]">
<call-template name="create-context">
<with-param name="elements" select="$elements[position() > 1]"/>
</call-template>
</if>
</when>
<otherwise>
<copy>
<apply-templates select="@*"/>
<if test="node()">
<XSL:apply-templates select="node()"/>
</if>
</copy>
</otherwise>
</choose>
</XSL:if>
</XSL:for-each>
</template>
<template name="before">
<param name="string"/>
<param name="target"/>
<variable name="apos">'</variable>
<variable name="quot">"</variable>
<variable name="posapos" select="string-length(substring-before(
concat($string, $apos), $apos))"/>
<variable name="posquot" select="string-length(substring-before(
concat($string, $quot), $quot))"/>
<variable name="postarg" select="string-length(substring-before(
concat($string, $target), $target))"/>
<choose>
<when test="$posapos = $postarg and $posquot = $postarg">
<value-of select="$string"/>
</when>
<when test="$posapos > $postarg and $posquot > $postarg">
<value-of select="substring($string, 1, $postarg)"/>
</when>
<otherwise>
<variable name="delim">
<choose>
<when test="$posquot > $posapos">'</when>
<otherwise>"</otherwise>
</choose>
</variable>
<value-of select="substring-before($string, $delim)"/>
<value-of select="$delim"/>
<variable name="mid" select="substring-after($string, $delim)"/>
<choose>
<when test="contains($mid, $delim)">
<value-of select="substring-before($mid, $delim)"/>
<value-of select="$delim"/>
<call-template name="before">
<with-param name="string"
select="substring-after($mid, $delim)"/>
<with-param name="target"
select="$target"/>
</call-template>
</when>
<otherwise>
<value-of select="$mid"/>
</otherwise>
</choose>
</otherwise>
</choose>
</template>
<template name="avt">
<param name="string" select="."/>
<variable name="before1" select="substring-before(concat($string, '{'), '{')"/>
<variable name="len1" select="string-length($before1)"/>
<variable name="before2" select="substring-before(concat($string, '}}'), '}}')"/>
<variable name="len2" select="string-length($before2)"/>
<choose>
<when test="$before1 = $string and $before2 = $string">
<value-of select="$string"/>
</when>
<when test="$len2 &lt; $len1">
<value-of select="$before2"/>
<text>}</text>
<call-template name="avt">
<with-param name="string" select="substring($string, $len2 + 3)"/>
</call-template>
</when>
<when test="substring($string, $len1 + 2, 1) = '{'">
<value-of select="$before1"/>
<text>{</text>
<call-template name="avt">
<with-param name="string" select="substring($string, $len1 + 3)"/>
</call-template>
</when>
<otherwise>
<variable name="mid" select="substring($string, $len1 + 2)"/>
<variable name="expr">
<call-template name="before">
<with-param name="string" select="$mid"/>
<with-param name="target">}</with-param>
</call-template>
</variable>
<value-of select="$before1"/>
<XSL:copy-of select="{$expr}"/>
<call-template name="avt">
<with-param name="string" select="substring($mid, string-length($expr) + 2)"/>
</call-template>
</otherwise>
</choose>
</template>
</transform>

View File

@@ -153,8 +153,8 @@ with x.y.z+1 (minor or major versions updates require manual intervention)
and rerun both `bakefile_gen` and `autoconf` afterwards to update the version
in the generated files too.
Update the definition of the stable and release branches in
`build/buildbot/config/include/defs.xml` after a minor version change.
Update `master.cfg` in [wx/buildbot](https://github.com/wxWidgets/buildbot)
repository after a minor or major version change.
## MSW Visual Studio Official Builds