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 26 use strict; 27 use File::Basename; 28 use FindBin; 29 use Getopt::Long qw(:config pass_through); 30 use lib $FindBin::Bin; 31 use webkitdirs; 32 use POSIX; 33 34 my $showHelp = 0; 35 my $clean = 0; 36 37 my $programName = basename($0); 38 my $usage = <<EOF; 39 Usage: $programName [options] [options to pass to build system] 40 --help Show this help message 41 --clean Clean up the build directory 42 EOF 43 44 GetOptions( 45 'help' => \$showHelp, 46 'clean' => \$clean, 47 ); 48 49 if ($showHelp) { 50 print STDERR $usage; 51 exit 1; 52 } 53 54 checkRequiredSystemConfig(); 55 setConfiguration(); 56 chdirWebKit(); 57 58 # Build 59 chdir "Tools/TestWebKitAPI" or die; 60 61 my $result; 62 if (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 70 exit exitStatus($result); 71