Modified: trunk/Tools/ChangeLog (162480 => 162481)
--- trunk/Tools/ChangeLog 2014-01-21 23:54:34 UTC (rev 162480)
+++ trunk/Tools/ChangeLog 2014-01-22 00:04:26 UTC (rev 162481)
@@ -1,3 +1,14 @@
+2014-01-21 David Farler <dfar...@apple.com>
+
+ Upstream package-root for iOS
+
+ Reviewed by Daniel bates.
+
+ * Scripts/package-root: Added.
+ (usage):
+ * Scripts/webkitdirs.pm:
+ (XcodeSDKPath): Added function.
+
2014-01-21 Daniel Bates <daba...@apple.com>
[iOS] Tools/Makefile shouldn't build modules DumpRenderTree, gtest, or TestWebKitAPI
Added: trunk/Tools/Scripts/package-root (0 => 162481)
--- trunk/Tools/Scripts/package-root (rev 0)
+++ trunk/Tools/Scripts/package-root 2014-01-22 00:04:26 UTC (rev 162481)
@@ -0,0 +1,110 @@
+#!/usr/bin/perl -w
+# Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. 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.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. 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 INC. 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.
+
+use strict;
+use English;
+use File::Copy qw/ move /;
+use File::Temp qw/ tempdir tempfile /;
+use FindBin;
+use Getopt::Long qw(:config pass_through);
+use lib $FindBin::Bin;
+use webkitdirs;
+
+chdirWebKit();
+
+my $showHelp = 0;
+
+my $programName = basename($0);
+
+sub usage()
+{
+ my $usage = <<EOF;
+ Bundles up products created with build-webkit into a zip suitable for sharing as a root.
+ The archive is created in the top level webkit directory.
+
+ Usage: $programName [configuration options]
+ --help Show this help message
+ --sdk Specifies SDK for which the roots are staged
+ (Default: currently installed Base SDK)
+ --device Equivalent to --sdk iphoneos.internal
+ --simulator Equivalent to --sdk iphonesimulator
+ --debug Package roots from Debug-<platform>
+ --release Package roots from Release-<platform>
+
+EOF
+
+ print $usage;
+ exit 0;
+}
+
+my %options = (
+ 'help' => \$showHelp,
+);
+
+usage() if not @ARGV or not GetOptions(
+ 'help' => \$showHelp,
+);
+usage() if $showHelp;
+
+setConfiguration();
+
+my @privateFrameworks = qw(WebCore WebKit WebKit2);
+my @publicFrameworks = qw(_javascript_Core);
+my $privateInstallPath = "/System/Library/PrivateFrameworks";
+my $publicInstallPath = "/System/Library/Frameworks";
+
+my $configuration = configuration();
+my $platform = xcodeSDKPlatformName();
+my $installPrefix = xcodeSDK() =~ /iphoneos/ ? "/" : XcodeSDKPath();
+my $productDir = productDir();
+my $stagingRoot = tempdir(CLEANUP => 1);
+my $stagingPrivatePath = "/$stagingRoot/$installPrefix/$privateInstallPath";
+my $stagingPublicPath = "/$stagingRoot/$installPrefix/$publicInstallPath";
+my $archiveName = "webkit-$configuration-$platform";
+my $archivePath = "$productDir/$archiveName.tar.gz";
+my ($fh, $tempArchiveName) = tempfile( "/tmp/$archiveName-XXXXXXX");
+
+foreach my $framework (@privateFrameworks) {
+ print "Copying Private $framework from $productDir ...\n";
+ system 'ditto', $productDir . "/$framework.framework/", "$stagingPrivatePath/$framework.framework/";
+ die "Check to see that you have built $framework for $configuration-$platform" if $? and $framework ne 'WebKit2';
+}
+
+foreach my $framework (@publicFrameworks) {
+ print "Copying Public $framework from $productDir ...\n";
+ system 'ditto', $productDir . "/$framework.framework/", "$stagingPublicPath/$framework.framework/";
+ die "Check to see that you have built $framework for $configuration-$platform" if $?;
+}
+
+chdir $stagingRoot;
+print "Creating compressed archive ...\n";
+system 'ditto', '-cz', $stagingRoot, $tempArchiveName;
+
+chdirWebKit();
+my $moved = move($tempArchiveName, $archivePath);
+
+if ($moved) {
+ print "Your root is: $archivePath\n";
+} else {
+ print "Couldn't move temporary archive $tempArchiveName to $archivePath\n";
+}
Property changes on: trunk/Tools/Scripts/package-root
___________________________________________________________________
Modified: trunk/Tools/Scripts/webkitdirs.pm (162480 => 162481)
--- trunk/Tools/Scripts/webkitdirs.pm 2014-01-21 23:54:34 UTC (rev 162480)
+++ trunk/Tools/Scripts/webkitdirs.pm 2014-01-22 00:04:26 UTC (rev 162481)
@@ -414,6 +414,20 @@
die "Couldn't determine platform name from Xcode SDK";
}
+sub XcodeSDKPath
+{
+ determineXcodeSDK();
+
+ die "Can't find the SDK path because no Xcode SDK was specified" if not $xcodeSDK;
+
+ my $sdkPath = `xcrun --sdk $xcodeSDK --show-sdk-path` if $xcodeSDK;
+ die 'Failed to get SDK path from xcrun' if $?;
+ chomp $sdkPath;
+
+ return $sdkPath;
+}
+
+
sub programFilesPath
{
return $programFilesPath if defined $programFilesPath;