Commit 52a2d752 authored by dfarler@apple.com's avatar dfarler@apple.com

Upstream package-root for iOS

Reviewed by Daniel bates.

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

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@162481 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent e8882df6
2014-01-21 David Farler <dfarler@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 <dabates@apple.com>
[iOS] Tools/Makefile shouldn't build modules DumpRenderTree, gtest, or TestWebKitAPI
......
#!/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(JavaScriptCore);
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";
}
......@@ -414,6 +414,20 @@ sub xcodeSDKPlatformName()
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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment