1#!/usr/bin/perl -w 2 3# Copyright (C) 2010 Apple Inc. All rights reserved. 4# 5# Redistribution and use in source and binary forms, with or without 6# modification, are permitted provided that the following conditions 7# are met: 8# 1. Redistributions of source code must retain the above copyright 9# notice, this list of conditions and the following disclaimer. 10# 2. Redistributions in binary form must reproduce the above copyright 11# notice, this list of conditions and the following disclaimer in the 12# documentation and/or other materials provided with the distribution. 13# 14# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' 15# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 16# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS 18# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 19# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 20# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 22# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 23# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 24# THE POSSIBILITY OF SUCH DAMAGE. 25 26use strict; 27use File::Basename; 28use FindBin; 29use Getopt::Long qw(:config pass_through); 30use lib $FindBin::Bin; 31use webkitdirs; 32use POSIX; 33 34my $showHelp = 0; 35my $clean = 0; 36 37my $programName = basename($0); 38my $usage = <<EOF; 39Usage: $programName [options] [options to pass to build system] 40 --help Show this help message 41 --clean Clean up the build directory 42EOF 43 44GetOptions( 45 'help' => \$showHelp, 46 'clean' => \$clean, 47); 48 49if ($showHelp) { 50 print STDERR $usage; 51 exit 1; 52} 53 54checkRequiredSystemConfig(); 55setConfiguration(); 56chdirWebKit(); 57 58# Build 59chdir "Tools/WebKitTestRunner" or die; 60 61my $result; 62if (isAppleMacWebKit()) { 63 $result = buildXCodeProject("WebKitTestRunner", $clean, XcodeOptions(), @ARGV); 64} elsif (isAppleWinWebKit()) { 65 $result = buildVisualStudioProject("WebKitTestRunner.sln", $clean); 66} elsif (isQt()) { 67 # Qt builds everything in one shot. No need to build anything here. 68 $result = 0; 69} else { 70 die "WebKitTestRunner is not supported on this platform.\n"; 71} 72 73exit exitStatus($result); 74