From 6e930f60485d2894296b5c06903922d728bae8bb Mon Sep 17 00:00:00 2001 From: David Anderson Date: Sat, 6 Sep 2008 07:39:10 +0000 Subject: [PATCH] Added buildbot script for building builder tool. --HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%402491 --- tools/buildbot/build_builder.pl | 18 +++++ tools/buildbot/helpers.pm | 116 ++++++++++++++++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100755 tools/buildbot/build_builder.pl create mode 100644 tools/buildbot/helpers.pm diff --git a/tools/buildbot/build_builder.pl b/tools/buildbot/build_builder.pl new file mode 100755 index 00000000..ba724f83 --- /dev/null +++ b/tools/buildbot/build_builder.pl @@ -0,0 +1,18 @@ +#!/usr/bin/perl + +require 'helpers.pm'; + +chdir('../builder'); +if ($^O eq "linux") +{ + Build::Command('make clean'); + Build::Command('make'); +} +else +{ + Build::Command($ENV{'MSVC7'} . ' /Rebuild Release builder.csproj'); + Build::Command('move ' . Build::PathFormat('bin/Release/builder.exe') . ' .'); +} + +die "Unable to build builder tool!\n" unless -e 'builder.exe'; + diff --git a/tools/buildbot/helpers.pm b/tools/buildbot/helpers.pm new file mode 100644 index 00000000..c1b5de72 --- /dev/null +++ b/tools/buildbot/helpers.pm @@ -0,0 +1,116 @@ +#!/usr/bin/perl + +use strict; +use Cwd; + +package Build; + +our $SVN = "/usr/bin/svn"; +our $SVN_USER = 'dvander'; +our $SVN_ARGS = ''; +our $SVN_VERSION = "/usr/bin/svnversion"; + +sub Revision +{ + my ($str)=(@_); + my $dir = $SVN_VERSION; + + my $data = Command($dir . ' -c ' . $str); + if ($data =~ /(\d+):(\d+)/) + { + return $2; + } elsif ($data =~ /(\d+)/) { + return $1; + } else { + return 0; + } +} + +sub Delete +{ + my ($str)=(@_); + if ($^O =~ /MSWin/) + { + Command("del /S /F /Q \"$str\""); + Command("rmdir /S /Q \"$str\""); + } else { + Command("rm -rf $str"); + } + return !(-e $str); +} + +sub Copy +{ + my ($src,$dest)=(@_); + if ($^O =~ /MSWin/) + { + Command("copy \"$src\" \"$dest\" /y"); + } else { + Command("cp \"$src\" \"$dest\""); + } + return (-e $dest); +} + +sub Move +{ + my ($src,$dest)=(@_); + if ($^O =~ /MSWin/) + { + Command("move \"$src\" \"$dest\""); + } else { + Command("mv \"$src\" \"$dest\""); + } + return (-e $dest); +} + +sub Command +{ + my($cmd)=(@_); + print "$cmd\n"; + return `$cmd`; +} + +sub PathFormat +{ + my ($str)=(@_); + if ($^O =~ /MSWin/) + { + $str =~ s#/#\\#g; + } else { + $str =~ s#\\#/#g; + } + return $str; +} + +sub SVN_Remove +{ + my ($file)=(@_); + my ($path, $name); + if ($^O =~ /MSWin/) + { + ($path, $name) = ($file =~ /(.+)\/([^\/]+)$/); + } else { + ($path, $name) = ($file =~ /(.+)\\([^\\]+)$/); + } + my $dir = Cwd::cwd(); + chdir($path); + Command($SVN . ' ' . $SVN_ARGS . ' delete ' . $name); + chdir($dir); +} + +sub SVN_Add +{ + my ($file)=(@_); + my ($path, $name); + if ($^O =~ /MSWin/) + { + ($path, $name) = ($file =~ /(.+)\/([^\/]+)$/); + } else { + ($path, $name) = ($file =~ /(.+)\\([^\\]+)$/); + } + my $dir = Cwd::cwd(); + chdir($path); + Command($SVN . ' ' . $SVN_ARGS . ' add ' . $name); + chdir($dir); +} +