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/TestWebKitAPI" or die;
60
61my $result;
62if (isAppleMacWebKit()) {
63    $result = buildXCodeProject("TestWebKitAPI", $clean, XcodeOptions(), @ARGV);
64} elsif (isAppleWinWebKit()) {
65    $result = buildVisualStudioProject("win/TestWebKitAPI.sln", $clean);
66} else {
67    die "TestWebKitAPI is not supported on this platform.\n";
68}
69
70exit exitStatus($result);
71