⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 build-launcher-dmg

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻
字号:
#!/usr/bin/perl -w# Copyright (C) 2006 Apple Computer, Inc.  All rights reserved.# Copyright (C) 2006 Mark Rowe <opendarwin.org@bdash.net.nz>.  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 Computer, 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.# Script used by build slaves to create a disk-image containing WebKit.app.use strict;use File::Basename;use File::Glob ':globally';use Getopt::Long;use FindBin;use lib "$FindBin::Bin/../Scripts";use Cwd 'realpath';use webkitdirs;use VCSUtils;my $branch;my $leopardProductDir;my $nightlyBuild = 0;my $productDir;my $revision;my $tigerProductDir;my $uploadTo;GetOptions('upload-to-host=s' => \$uploadTo,           'upload-as-nightly!' => \$nightlyBuild,           'branch=s' => \$branch,           'revision=i' => \$revision,           'build-dir=s' => \$productDir,           'build-dir-10-4=s' => \$tigerProductDir,           'build-dir-10-5=s' => \$leopardProductDir);$branch = currentBranch() unless defined($branch);$revision = currentSVNRevision() unless defined($revision);$tigerProductDir = realpath("$FindBin::Bin/../../WebKitBuildTiger") unless defined($tigerProductDir);$leopardProductDir = realpath("$FindBin::Bin/../../WebKitBuildLeopard") unless defined($leopardProductDir);$productDir = $tigerProductDir unless $productDir;setBaseProductDir($productDir);my $configuration = $ENV{'RC_JASPER'} eq 'YES' ? '' : configuration();my $nightlyLauncherStagingPath = $productDir . "/WebKit.app";my $nightlyLauncherDiskImagePath;my $nightlySymbolArchivePath;my $nightlyRemoteHost = 'rsync://nightly@builds.nightly.webkit.org';my $nightlyAdminHost = 'http://admin:admin@delta.macosforge.org';sub buildDiskImage{    $nightlyLauncherDiskImagePath = $productDir . "/WebKit-SVN-r$revision.dmg";        print "Removing previous temp source directory (if any)...\n";    `rm -rf /tmp/WebKitNightly`;    die "Removing previous temp source directory failed" if $?;    print "Making a new temp source directory...\n";    `mkdir /tmp/WebKitNightly`;    die "Making a new temp source directory failed" if $?;    print "Copying WebKit.app to temp source directory...\n";    `cp -R \"$nightlyLauncherStagingPath\" /tmp/WebKitNightly/WebKit.app`;    die "Copying WebKit.app to temp source directory failed" if $?;    print "Creating disk image...\n";    `hdiutil create \"$nightlyLauncherDiskImagePath\" -ov -srcfolder /tmp/WebKitNightly -fs HFS+ -volname \"WebKit\"`;    die "Creating disk image failed" if $?;    print "Removing temp source directory...\n";    `rm -rf /tmp/WebKitNightly`;    die "Removing temp source directory failed" if $?;    print "Compressing disk image...\n";    system("mv", "-f", $nightlyLauncherDiskImagePath, "$nightlyLauncherDiskImagePath.uncompressed.dmg") == 0 or die "Renaming disk image failed";    system("hdiutil", "convert", "-quiet", "$nightlyLauncherDiskImagePath.uncompressed.dmg", "-format", "UDBZ", "-imagekey", "zlib-level=9", "-o", "$nightlyLauncherDiskImagePath");    die "Compressing disk image failed" if $?;    unlink "$nightlyLauncherDiskImagePath.uncompressed.dmg";}sub buildSymbolArchive{    my $symbolDir = "$productDir/Symbols";    my $tigerSymbolDir = "$symbolDir/10.4";    my $leopardSymbolDir = "$symbolDir/10.5";    print "Removing previous symbol directory (if any)...\n";    `rm -rf \"$symbolDir\"`;    die "Removing previous symbol directory failed" if $?;    print "Making a new symbol directory...\n";    `mkdir -p \"$symbolDir\" \"$tigerSymbolDir\" \"$leopardSymbolDir\"`;    die "Making a new symbol directory failed" if $?;    my %allPlatformsInfo = ("tiger" => {"symbols" => $tigerSymbolDir, "products" => $tigerProductDir},                            "leopard" => {"symbols" => $leopardSymbolDir, "products" => $leopardProductDir}                            );    foreach my $platform (qw(tiger leopard)) {        my $platformInfo = $allPlatformsInfo{$platform};        my $platformProductDir = $platformInfo->{"products"};        my $platformSymbolDir = $platformInfo->{"symbols"};        my @dsyms = <$platformProductDir\/$configuration\/*.dSYM>;        my @binaries = map { $a = $_; $a =~ s/\.dSYM//g; $a } @dsyms;        my $platformName = ucfirst($platform);        print "Copying $platformName symbols into symbol directory...";        foreach my $file (@dsyms, @binaries) {            my $name = basename($file);            `ditto --nocache $file \"$platformSymbolDir\"/$name`;            die "\nCopying $platformName symbols into symbol directory failed" if $?;            print ".";        }        print "\n";    }    $nightlySymbolArchivePath = "$productDir/WebKit-r$revision-symbols.zip";    print "Creating symbol archive...\n";    `ditto --nocache -c -k $symbolDir $nightlySymbolArchivePath`;    die "Creating symbol archive failed" if $?;}sub uploadNightlyDiskImage{    my $branch = shift(@_);    my $fileName = basename($nightlyLauncherDiskImagePath);    my $nightlyRemoteDiskImagePath = "webkit-builds/files/$branch/mac/" . $fileName;    system("rsync", "--password-file=$ENV{HOME}/.nightly-rsync-password", "-vP", $nightlyLauncherDiskImagePath, "$nightlyRemoteHost/$nightlyRemoteDiskImagePath") == 0 or die "Failed uploading disk image";    system("curl", "-H", "Host: nightly.webkit.org", "-H", "Accept: text/plain", "$nightlyAdminHost/admin/register-build/$branch/mac/$revision/$fileName") == 0 or die "Failed to register build";    system("curl", "-H", "Host: nightly.webkit.org", "-H", "Accept: text/plain", "$nightlyAdminHost/admin/purge-cache") == 0 or die "Failed to purge cache";}sub uploadNightlySymbolArchive{    my $branch = shift(@_);    my $fileName = basename($nightlySymbolArchivePath);    my $nightlyRemoteSymbolArchivePath = "webkit-builds/symbols/$branch/mac/" . $fileName;    system("rsync", "--password-file=$ENV{HOME}/.nightly-rsync-password", "-vP", $nightlySymbolArchivePath, "$nightlyRemoteHost/$nightlyRemoteSymbolArchivePath") == 0 or die "Failed uploading symbol archive";    system("curl", "-H", "Host: nightly.webkit.org", "-H", "Accept: text/plain", "$nightlyAdminHost/admin/register-symbols/$branch/mac/$revision/$fileName") == 0 or die "Failed to register symbols";}sub uploadBuildSlaveDiskImage{    my $remoteDiskImagePath = shift(@_) . basename($nightlyLauncherDiskImagePath);    system("rsync", "-vP", $nightlyLauncherDiskImagePath, $remoteDiskImagePath) == 0 or die "Failed uploading disk image";}chdirWebKit();buildDiskImage($branch);buildSymbolArchive($branch);if ($nightlyBuild) {    uploadNightlyDiskImage($branch);    uploadNightlySymbolArchive($branch);} elsif ($uploadTo) {    uploadBuildSlaveDiskImage($uploadTo);} else {    print "Disk image left at $nightlyLauncherDiskImagePath\n";}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -