📄 build-webkit
字号:
#!/usr/bin/perl -w# Copyright (C) 2005, 2006 Apple Computer, 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. # 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.# Build script wrapper for the WebKit Open Source Project.use strict;use File::Basename;use File::Spec;use FindBin;use Getopt::Long qw(:config pass_through);use lib $FindBin::Bin;use webkitdirs;use POSIX;my $originalWorkingDirectory = getcwd();my $channelMessagingSupport = 0;my $databaseSupport = 1;my $domStorageSupport = 1;my $gnomeKeyringSupport = 0;my $iconDatabaseSupport = 1;my $offlineWebApplicationSupport = 1;my $svgSupport = 1;my $svgAnimationSupport = 1;my $svgFiltersSupport = 0;my $svgForeignObjectSupport = 1;my $svgUseSupport = 1;my $svgFontsSupport = 1;my $svgAsImageSupport = 1;my $xpathSupport = 1;my $xsltSupport = 1;my $wmlSupport = 0;my $coverageSupport = 0;my $videoSupport = isAppleWebKit(); # Enable by default for Apple's buildsmy $workersSupport = (isAppleWebKit() || isGtk()); # Enable by default for Apple's builds (mac/win) and Gtk+my $geolocationSupport = (isAppleMacWebKit() && !isTiger() && !isLeopard());my $showHelp = 0;my $clean = 0;my $buildUniversal = 0;my $buildSixtyFourBit = 0;my $threeDTransformsSupport = 0;my $programName = basename($0);my $usage = <<EOF;Usage: $programName [options] [options to pass to build system] --help Show this help message --cairo-win32 Build using Cairo (rather than CoreGraphics) on Windows --chromium Build the Chromium port on Mac/Win/Linux --clean Cleanup the build directory --gtk Build the GTK+ port --universal Build 2-way universal (PPC and Intel 32-bit) --64-bit Build 64-bit, combine with --universal to build 4-way universal --[no-]3d-transforms Toggle 3D Transforms support (default: $threeDTransformsSupport) --[no-]channel-messaging Toggle MessageChannel and MessagePort support (default: $channelMessagingSupport) --[no-]offline-web-applications Toggle Offline Web Application Support (default : $offlineWebApplicationSupport) --[no-]database Toggle Database Support (default: $databaseSupport) --[no-]dom-storage Toggle DOM Storage Support (default: $domStorageSupport) --[no-]gnomekeyring Toggle GNOME Keyring Support (GTK+ port only) (default: $gnomeKeyringSupport) --[no-]icon-database Toggle Icon database support (default: $iconDatabaseSupport) --[no-]svg Toggle SVG support (default: $svgSupport) --[no-]svg-animation Toggle SVG animation support (default: $svgAnimationSupport, implies SVG Support) --[no-]svg-filters Toggle SVG filters support (default: $svgFiltersSupport, implies SVG Support) --[no-]svg-foreign-object Toggle SVG foreign object support (default: $svgForeignObjectSupport, implies SVG Support) --[no-]svg-fonts Toggle SVG fonts support (default: $svgFontsSupport, implies SVG Support) --[no-]svg-as-image Toggle SVG as Image support (default: $svgAsImageSupport, implies SVG Support) --[no-]svg-use Toggle SVG use element support (default: $svgUseSupport, implies SVG Support) --[no-]xpath Toggle XPath support (default: $xpathSupport) --[no-]xslt Toggle XSLT support (default: $xsltSupport) --[no-]wml Toggle WML support (default: $wmlSupport) --[no-]video Toggle Video support (default: $videoSupport) --[no-]workers Toggle Web Workers support (default: $workersSupport) --[no-]geolocation Toggle Geolocation support (default: $geolocationSupport) --[no-]coverage Toggle code coverage support (default: $coverageSupport)EOFGetOptions( '3d-transforms!' => \$threeDTransformsSupport, 'channel-messaging!' => \$channelMessagingSupport, 'database!' => \$databaseSupport, 'dom-storage!' => \$domStorageSupport, 'gnomekeyring!' => \$gnomeKeyringSupport, 'icon-database!' => \$iconDatabaseSupport, 'offline-web-applications!' => \$offlineWebApplicationSupport, 'svg!' => \$svgSupport, 'svg-animation!' => \$svgAnimationSupport, 'svg-filters!' => \$svgFiltersSupport, 'svg-foreign-object!' => \$svgForeignObjectSupport, 'svg-fonts!' => \$svgFontsSupport, 'svg-as-image!' => \$svgAsImageSupport, 'svg-use!' => \$svgUseSupport, 'xpath!' => \$xpathSupport, 'xslt!' => \$xsltSupport, 'wml!' => \$wmlSupport, 'video!' => \$videoSupport, 'workers!' => \$workersSupport, 'geolocation!' => \$geolocationSupport, 'coverage!' => \$coverageSupport, 'help' => \$showHelp, 'universal' => \$buildUniversal, '64-bit' => \$buildSixtyFourBit, 'clean' => \$clean);if ($showHelp) { print STDERR $usage; exit 1;}checkRequiredSystemConfig();setConfiguration();chdirWebKit();if (isWx()) { $ENV{"WEBKITOUTPUTDIR"} = productDir(); my @opts = getWxArgs(); if ($clean) { push(@opts, "clean"); } system "WebKitTools/wx/build-wxwebkit @opts"; exit exitStatus($?);}my $productDir = productDir();my @overrideFeatureDefinesOption = ();push @overrideFeatureDefinesOption, "ENABLE_3D_TRANSFORMS" if $threeDTransformsSupport;push @overrideFeatureDefinesOption, "ENABLE_CHANNEL_MESSAGING" if $channelMessagingSupport;push @overrideFeatureDefinesOption, "ENABLE_DATABASE" if $databaseSupport;push @overrideFeatureDefinesOption, "ENABLE_DOM_STORAGE" if $domStorageSupport;push @overrideFeatureDefinesOption, "ENABLE_ICONDATABASE" if $iconDatabaseSupport;push @overrideFeatureDefinesOption, "ENABLE_OFFLINE_WEB_APPLICATIONS" if $offlineWebApplicationSupport;push @overrideFeatureDefinesOption, "ENABLE_SVG" if $svgSupport;push @overrideFeatureDefinesOption, "ENABLE_SVG_ANIMATION" if $svgAnimationSupport;push @overrideFeatureDefinesOption, "ENABLE_SVG_AS_IMAGE" if $svgAsImageSupport;push @overrideFeatureDefinesOption, "ENABLE_SVG_FILTERS" if $svgFiltersSupport;push @overrideFeatureDefinesOption, "ENABLE_SVG_FONTS" if $svgFontsSupport;push @overrideFeatureDefinesOption, "ENABLE_SVG_FOREIGN_OBJECT" if $svgForeignObjectSupport;push @overrideFeatureDefinesOption, "ENABLE_SVG_USE" if $svgUseSupport;push @overrideFeatureDefinesOption, "ENABLE_VIDEO" if $videoSupport;push @overrideFeatureDefinesOption, "ENABLE_WORKERS" if $workersSupport;push @overrideFeatureDefinesOption, "ENABLE_XPATH" if $xpathSupport;push @overrideFeatureDefinesOption, "ENABLE_XSLT" if $xsltSupport;push @overrideFeatureDefinesOption, "ENABLE_WML" if $wmlSupport;push @overrideFeatureDefinesOption, "ENABLE_GEOLOCATION" if $geolocationSupport;my $overrideFeatureDefinesString = "FEATURE_DEFINES=" . join(" ", @overrideFeatureDefinesOption);my @coverageSupportOption = ($coverageSupport) ? XcodeCoverageSupportOptions() : ();# Check that all the project directories are there.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -