| #!/usr/bin/perl -w | |
| # Copyright (C) 2005-2009, 2013, 2014 Apple Inc. All rights reserved. | |
| # Copyright (C) 2009 Google Inc. All rights reserved. | |
| # Copyright (C) 2011 Brent Fulgham. All rights reserved. | |
| # | |
| # Redistribution and use in source and binary forms, with or without | |
| # modification, are permitted provided that the following conditions | |
| # are met: | |
| # | |
| # 1. Redistributions of source code must retain the above copyright | |
| # notice, this list of conditions and the following disclaimer. | |
| # 2. Redistributions in binary form must reproduce the above copyright | |
| # notice, this list of conditions and the following disclaimer in the | |
| # documentation and/or other materials provided with the distribution. | |
| # 3. Neither the name of Apple Inc. ("Apple") nor the names of | |
| # its contributors may be used to endorse or promote products derived | |
| # from this software without specific prior written permission. | |
| # | |
| # THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY | |
| # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |
| # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
| # DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY | |
| # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |
| # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |
| # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |
| # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | |
| # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
| # Update script for WebKit Open Source Project. | |
| use strict; | |
| use FindBin; | |
| use lib $FindBin::Bin; | |
| use File::Basename; | |
| use File::Spec; | |
| use Getopt::Long; | |
| use VCSUtils; | |
| use webkitdirs; | |
| # Handle options | |
| my $quiet = ''; | |
| my $showHelp; | |
| # This call is needed to eat --wincairo argument and avoid unknown option error. | |
| # FIXME: Allow port options explicitly or make this script port-agnostic. | |
| determinePortName(); | |
| chdirWebKit(); | |
| my $auxiliaryLibs = 1; | |
| my $getOptionsResult = GetOptions( | |
| 'h|help' => \$showHelp, | |
| 'q|quiet' => \$quiet, | |
| 'auxiliary-libs!' => \$auxiliaryLibs, | |
| ); | |
| if (!$getOptionsResult || $showHelp) { | |
| print STDERR <<__END__; | |
| Usage: @{[ basename($0) ]} [options] | |
| -h|--help show the help message | |
| -q|--quiet pass -q to svn update for quiet updates | |
| --[no-]auxiliary-libs [don\'t] update the auxiliary libraries for Windows (default: update) | |
| __END__ | |
| exit 1; | |
| } | |
| my @svnOptions = (); | |
| push @svnOptions, '-q' if $quiet; | |
| # Don't prompt when using svn-1.6 or newer. | |
| push @svnOptions, qw(--accept postpone) if isSVNVersion16OrNewer(); | |
| print "Updating OpenSource\n" unless $quiet; | |
| runSvnUpdateAndResolveChangeLogs(@svnOptions) if isSVN(); | |
| runGitUpdate() if isGit(); | |
| if (isAppleWinWebKit() && $auxiliaryLibs) { | |
| system($^X, File::Spec->catfile("Tools", "Scripts", "update-webkit-auxiliary-libs")) == 0 or die; | |
| if (isWinCairo()) { | |
| # WinCairo shares the auxiliary libs from the Apple port. | |
| system($^X, File::Spec->catfile("Tools", "Scripts", "update-webkit-wincairo-libs")) == 0 or die; | |
| } | |
| } | |
| setupAppleWinEnv() if isAppleWinWebKit(); | |
| exit 0; |