Title: [162481] trunk/Tools
Revision
162481
Author
dfar...@apple.com
Date
2014-01-21 16:04:26 -0800 (Tue, 21 Jan 2014)

Log Message

Upstream package-root for iOS

Reviewed by Daniel bates.

* Scripts/package-root: Added.
(usage):
* Scripts/webkitdirs.pm:
(XcodeSDKPath): Added function.

Modified Paths

Added Paths

Diff

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
___________________________________________________________________

Added: svn:executable

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;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to