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