my @xcodeBuildArguments = XcodeOptions();
my $nightlyLauncherTemplatePath = "$FindBin::Bin/../WebKitLauncher";
my $nightlyLauncherStagingPath = productDir() . "/WebKit.app";
+my $droseraProjectPath = "$FindBin::Bin/../Drosera";
+my $droseraStagingPath = productDir() . "/DroseraLauncher.app";
sub buildNightlyLauncher
{
chdir($nightlyLauncherTemplatePath);
- system("xcodebuild", "clean", @xcodeBuildArguments) == 0 or die "Failed cleaning WebKitLauncher project";
+ system("xcodebuild", "clean", "-alltargets", @xcodeBuildArguments) == 0 or die "Failed cleaning WebKitLauncher project";
system("xcodebuild", @xcodeBuildArguments) == 0 or die "Failed building WebKitLauncher project";
chdirWebKit();
}
}
}
+sub buildDroseraLauncher
+{
+ chdir($droseraProjectPath);
+ system("xcodebuild", "clean", "-alltargets", @xcodeBuildArguments) == 0 or die "Failed cleaning Drosera project";
+ # build PPC only right now, building universal with the 10.4u SDK cause Xcode to look for the wrong WebCore & JavaScriptCore in the SDK
+ # universal fails because these frameworks are part of the WebKit umbrella, not in /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks
+ system("xcodebuild", "-alltargets", "ARCHS=ppc", @xcodeBuildArguments) == 0 or die "Failed building Drosera project";
+ chdirWebKit();
+}
+
+sub setDroseraLauncherVersion
+{
+ my $revision = currentSVNRevision();
+ my $infoPlist = "$droseraStagingPath/Contents/Info.plist";
+ my $data;
+ open(IN, $infoPlist) or die "Couldn't open Info.plist in built application for reading";
+ {
+ undef $/;
+ $data = <IN>;
+ }
+ close(IN);
+ open(OUT, ">$infoPlist") or die "Couldn't open Info.plist in built application for writing";
+ $data =~ s/VERSION/$revision/g;
+ print OUT $data;
+ close(OUT);
+}
+
chdirWebKit();
buildNightlyLauncher();
copyNightlyLauncher();
+buildDroseraLauncher();
+setDroseraLauncherVersion();
use webkitdirs;
my $nightlyLauncherStagingPath = productDir() . "/WebKit.app";
+my $droseraStagingPath = productDir() . "/DroseraLauncher.app";
my $nightlyLauncherDiskImagePath;
my $nightlyRemoteHost = 'webkit-nightlies@nightly.webkit.org';
my $productDir = productDir();
$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 "Copying Drosera.app to temp source directory...\n";
+ `cp -R \"$droseraStagingPath\" /tmp/WebKitNightly/Drosera.app`;
+ die "Copying Drosera.app to temp source directory failed" if $?;
+
print "Creating disk image...\n";
- my $output = `hdiutil create \"$nightlyLauncherDiskImagePath\" -ov -srcfolder $nightlyLauncherStagingPath -fs HFS+ -volname \"WebKit\"`;
+ `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", "UDZO", "-imagekey", "zlib-level=9", "-o", "$nightlyLauncherDiskImagePath");
die "Compressing disk image failed" if $?;
-
+
unlink "$nightlyLauncherDiskImagePath.uncompressed.dmg";
}
+2006-06-20 Timothy Hatcher <timothy@apple.com>
+
+ Reviewed by Eric.
+
+ Builds Drosera and a launcher to include with the nightly.
+
+ * BuildSlaveSupport/build-launcher-app:
+ * BuildSlaveSupport/build-launcher-dmg:
+ * Drosera/Drosera.xcodeproj/project.pbxproj:
+ * Drosera/Info.plist:
+ * Drosera/LauncherInfo.plist: Added.
+ * Drosera/launcher.m: Added.
+ (displayErrorAndQuit):
+ (checkMacOSXVersion):
+ (myExecve):
+ (main):
+ * Scripts/build-drosera
+ * WebKitLauncher/WebKitLauncher.xcodeproj/project.pbxproj:
+ * WebKitLauncher/main.m:
+ (main):
+
2006-06-20 Timothy Hatcher <timothy@apple.com>
Reviewed by Darin.
1CC059200A44A210006FE533 /* stepOver.tif in Resources */ = {isa = PBXBuildFile; fileRef = 1CC058EA0A44A210006FE533 /* stepOver.tif */; };
1CC059210A44A210006FE533 /* stop.tif in Resources */ = {isa = PBXBuildFile; fileRef = 1CC058EB0A44A210006FE533 /* stop.tif */; };
1CC059700A44A485006FE533 /* toolbarBackground.png in Resources */ = {isa = PBXBuildFile; fileRef = 1CC0596F0A44A485006FE533 /* toolbarBackground.png */; };
+ 1CD8D5690A49041C00E5677B /* launcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CD8D5680A49041C00E5677B /* launcher.m */; };
+ 1CD8D56C0A49043E00E5677B /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */; };
+ 1CD8D5A60A49102900E5677B /* Drosera.app in Resources */ = {isa = PBXBuildFile; fileRef = 8D15AC370486D014006FF6A4 /* Drosera.app */; };
8D15AC2D0486D014006FF6A4 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */; };
8D15AC2E0486D014006FF6A4 /* Debugger.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B4FDCFA73011CA2CEA /* Debugger.nib */; };
8D15AC310486D014006FF6A4 /* DebuggerDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4ACFDCFA73011CA2CEA /* DebuggerDocument.m */; settings = {ATTRIBUTES = (); }; };
8D15AC340486D014006FF6A4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */; };
/* End PBXBuildFile section */
+/* Begin PBXContainerItemProxy section */
+ 1CD8D5A90A49104E00E5677B /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 2A37F4A9FDCFA73011CA2CEA /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 8D15AC270486D014006FF6A4 /* Drosera */;
+ remoteInfo = Drosera;
+ };
+/* End PBXContainerItemProxy section */
+
/* Begin PBXFileReference section */
1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
13E42FBA07B3F13500E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
1CC058EA0A44A210006FE533 /* stepOver.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = stepOver.tif; sourceTree = "<group>"; };
1CC058EB0A44A210006FE533 /* stop.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = stop.tif; sourceTree = "<group>"; };
1CC0596F0A44A485006FE533 /* toolbarBackground.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = toolbarBackground.png; sourceTree = "<group>"; };
+ 1CD8D54D0A4902B000E5677B /* DroseraLauncher.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DroseraLauncher.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 1CD8D54F0A4902B000E5677B /* LauncherInfo.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = LauncherInfo.plist; sourceTree = "<group>"; };
+ 1CD8D5680A49041C00E5677B /* launcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = launcher.m; sourceTree = "<group>"; };
2A37F4ACFDCFA73011CA2CEA /* DebuggerDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DebuggerDocument.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
2A37F4AEFDCFA73011CA2CEA /* DebuggerDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DebuggerDocument.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
2A37F4B0FDCFA73011CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
+ 1CD8D54B0A4902B000E5677B /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1CD8D56C0A49043E00E5677B /* Cocoa.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
8D15AC330486D014006FF6A4 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
isa = PBXGroup;
children = (
8D15AC370486D014006FF6A4 /* Drosera.app */,
+ 1CD8D54D0A4902B000E5677B /* DroseraLauncher.app */,
);
name = Products;
sourceTree = "<group>";
path = Images;
sourceTree = "<group>";
};
+ 1CD8D53C0A49025D00E5677B /* Nightly Support */ = {
+ isa = PBXGroup;
+ children = (
+ 1CD8D54F0A4902B000E5677B /* LauncherInfo.plist */,
+ 1CD8D5680A49041C00E5677B /* launcher.m */,
+ );
+ name = "Nightly Support";
+ sourceTree = "<group>";
+ };
2A37F4AAFDCFA73011CA2CEA /* SafariBug */ = {
isa = PBXGroup;
children = (
2A37F4ABFDCFA73011CA2CEA /* Classes */,
2A37F4AFFDCFA73011CA2CEA /* Other Sources */,
2A37F4B8FDCFA73011CA2CEA /* Resources */,
+ 1CD8D53C0A49025D00E5677B /* Nightly Support */,
2A37F4C3FDCFA73011CA2CEA /* Frameworks */,
19C28FB0FE9D524F11CA2CBB /* Products */,
);
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
+ 1CD8D54C0A4902B000E5677B /* Drosera (Nightly Launcher) */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1CD8D5500A4902B000E5677B /* Build configuration list for PBXNativeTarget "Drosera (Nightly Launcher)" */;
+ buildPhases = (
+ 1CD8D5490A4902B000E5677B /* Resources */,
+ 1CD8D54A0A4902B000E5677B /* Sources */,
+ 1CD8D54B0A4902B000E5677B /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 1CD8D5AA0A49104E00E5677B /* PBXTargetDependency */,
+ );
+ name = "Drosera (Nightly Launcher)";
+ productName = "Drosera (Nightly Launcher)";
+ productReference = 1CD8D54D0A4902B000E5677B /* DroseraLauncher.app */;
+ productType = "com.apple.product-type.application";
+ };
8D15AC270486D014006FF6A4 /* Drosera */ = {
isa = PBXNativeTarget;
buildConfigurationList = C05733C708A9546B00998B17 /* Build configuration list for PBXNativeTarget "Drosera" */;
projectDirPath = "";
targets = (
8D15AC270486D014006FF6A4 /* Drosera */,
+ 1CD8D54C0A4902B000E5677B /* Drosera (Nightly Launcher) */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
+ 1CD8D5490A4902B000E5677B /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1CD8D5A60A49102900E5677B /* Drosera.app in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
8D15AC2B0486D014006FF6A4 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
+ 1CD8D54A0A4902B000E5677B /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1CD8D5690A49041C00E5677B /* launcher.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
8D15AC300486D014006FF6A4 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
};
/* End PBXSourcesBuildPhase section */
+/* Begin PBXTargetDependency section */
+ 1CD8D5AA0A49104E00E5677B /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 8D15AC270486D014006FF6A4 /* Drosera */;
+ targetProxy = 1CD8D5A90A49104E00E5677B /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
/* Begin PBXVariantGroup section */
2A37F4B4FDCFA73011CA2CEA /* Debugger.nib */ = {
isa = PBXVariantGroup;
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
+ 1CD8D5510A4902B000E5677B /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ GCC_DEBUGGING_SYMBOLS = full;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ INFOPLIST_FILE = LauncherInfo.plist;
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_NAME = DroseraLauncher;
+ WRAPPER_EXTENSION = app;
+ };
+ name = Debug;
+ };
+ 1CD8D5520A4902B000E5677B /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ DEPLOYMENT_POSTPROCESSING = YES;
+ GCC_DEBUGGING_SYMBOLS = full;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ INFOPLIST_FILE = LauncherInfo.plist;
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_NAME = DroseraLauncher;
+ WRAPPER_EXTENSION = app;
+ };
+ name = Release;
+ };
C05733C808A9546B00998B17 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
+ 1CD8D5500A4902B000E5677B /* Build configuration list for PBXNativeTarget "Drosera (Nightly Launcher)" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1CD8D5510A4902B000E5677B /* Debug */,
+ 1CD8D5520A4902B000E5677B /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
C05733C708A9546B00998B17 /* Build configuration list for PBXNativeTarget "Drosera" */ = {
isa = XCConfigurationList;
buildConfigurations = (
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
- <string>com.apple.drosera</string>
+ <string>org.webkit.drosera</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CFBundleIconFile</key>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIdentifier</key>
+ <string>org.webkit.drosera.launcher</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>VERSION</string>
+ <key>NSMainNibFile</key>
+ <string>MainMenu</string>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+</dict>
+</plist>
--- /dev/null
+/*
+ * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2006 Mark Rowe. 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.
+ */
+
+#import <Cocoa/Cocoa.h>
+#import <CoreFoundation/CoreFoundation.h>
+
+void displayErrorAndQuit(NSString *title, NSString *message)
+{
+ NSApplicationLoad();
+ NSRunCriticalAlertPanel(title, message, @"Quit", nil, nil);
+ exit(0);
+}
+
+void checkMacOSXVersion()
+{
+ long versionNumber = 0;
+ OSErr error = Gestalt(gestaltSystemVersion, &versionNumber);
+ if (error != noErr || versionNumber < 0x1040)
+ displayErrorAndQuit(@"Mac OS X 10.4 is Required", @"Nightly builds of Drosera require Mac OS X 10.4 or newer.");
+}
+
+static void myExecve(NSString *executable, NSArray *args, NSDictionary *environment)
+{
+ char **argv = (char **)calloc(sizeof(char *), [args count] + 1);
+ char **env = (char **)calloc(sizeof(char *), [environment count] + 1);
+
+ NSEnumerator *e = [args objectEnumerator];
+ NSString *s;
+ int i = 0;
+ while (s = [e nextObject])
+ argv[i++] = (char *) [s UTF8String];
+
+ e = [environment keyEnumerator];
+ i = 0;
+ while (s = [e nextObject])
+ env[i++] = (char *) [[NSString stringWithFormat:@"%@=%@", s, [environment objectForKey:s]] UTF8String];
+
+ execve([executable fileSystemRepresentation], argv, env);
+}
+
+int main(int argc, char *argv[])
+{
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+ checkMacOSXVersion();
+
+ CFURLRef webkitURL = nil;
+ OSStatus err = LSFindApplicationForInfo(kLSUnknownCreator, CFSTR("org.webkit.nightly.WebKit"), nil, nil, &webkitURL);
+ if (err != noErr)
+ displayErrorAndQuit(@"Unable to locate WebKit.app", @"Drosera nightly builds require WebKit.app to run. Please check that it is available and then try again.");
+
+ NSBundle *webKitAppBundle = [NSBundle bundleWithPath:[(NSURL *)webkitURL path]];
+ NSString *frameworkPath = [webKitAppBundle resourcePath];
+ NSBundle *droseraBundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"Drosera" ofType:@"app"]];
+ NSString *executablePath = [droseraBundle executablePath];
+ NSString *pathToEnablerLib = [webKitAppBundle pathForResource:@"WebKitNightlyEnabler" ofType:@"dylib"];
+
+ NSMutableArray *arguments = [NSMutableArray arrayWithObjects:executablePath, @"-WebKitDeveloperExtras", @"YES", nil];
+
+ while (*++argv)
+ [arguments addObject:[NSString stringWithUTF8String:*argv]];
+
+ NSDictionary *environment = [NSDictionary dictionaryWithObjectsAndKeys:frameworkPath, @"DYLD_FRAMEWORK_PATH",
+ @"YES", @"WEBKIT_UNSET_DYLD_FRAMEWORK_PATH", pathToEnablerLib, @"DYLD_INSERT_LIBRARIES",
+ [[NSBundle mainBundle] executablePath], @"CFProcessPath", nil];
+
+ myExecve(executablePath, arguments, environment);
+
+ char *error = strerror(errno);
+ NSString *errorMessage = [NSString stringWithFormat:@"Launching Drosera at %@ failed with the error '%s' (%d)", [(NSURL *)webkitURL path], error, errno];
+ displayErrorAndQuit(@"Unable to launch Drosera", errorMessage);
+
+ [pool release];
+ return 0;
+}
--- /dev/null
+#!/usr/bin/perl -w
+
+# Copyright (C) 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.
+
+# Simplified build script for Web Kit Open Source Project.
+# Modified copy of build-webkit. Perhaps these could share code.
+# Currently only works for the Deployment build style.
+
+use strict;
+use FindBin;
+use lib $FindBin::Bin;
+use webkitdirs;
+use POSIX;
+
+checkRequiredSystemConfig();
+setConfiguration();
+chdirWebKit();
+my @options = XcodeOptions();
+
+# Build
+chdir "WebKitTools/Drosera" or die;
+my $result;
+if (isOSX()) {
+ print "xcodebuild -project Drosera.xcodeproj ", @options, "\n";
+ $result = system "xcodebuild", "-project", "Drosera.xcodeproj", @options;
+} else {
+ die "Building not defined for this platform!\n";
+}
+exit WEXITSTATUS($result);
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
/* End PBXBuildFile section */
-/* Begin PBXBuildStyle section */
- 4A9504CCFFE6A4B311CA0CBA /* Debug */ = {
- isa = PBXBuildStyle;
- buildSettings = {
- };
- name = Debug;
- };
- 4A9504CDFFE6A4B311CA0CBA /* Release */ = {
- isa = PBXBuildStyle;
- buildSettings = {
- };
- name = Release;
- };
-/* End PBXBuildStyle section */
-
/* Begin PBXContainerItemProxy section */
5D650F4409DB8B830075E9A8 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
5D650F7509DB8CB40075E9A8 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
5DB70524097B94CD009875EC /* webkit.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = webkit.icns; sourceTree = "<group>"; };
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
- 8D1107320486CEB800E47090 /* WebKit.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = WebKit.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 8D1107320486CEB800E47090 /* WebKit.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WebKit.app; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
);
buildRules = (
);
- buildSettings = {
- EXECUTABLE_PREFIX = lib;
- GCC_ENABLE_FIX_AND_CONTINUE = YES;
- GCC_MODEL_TUNING = G5;
- INSTALL_PATH = /usr/local/lib;
- PREBINDING = NO;
- PRODUCT_NAME = WebKitNightlyEnabler;
- ZERO_LINK = YES;
- };
dependencies = (
);
name = WebKitNightlyEnabler;
);
buildRules = (
);
- buildSettings = {
- };
dependencies = (
5D650F4509DB8B830075E9A8 /* PBXTargetDependency */,
);
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "WebKitLauncher" */;
- buildSettings = {
- };
- buildStyles = (
- 4A9504CCFFE6A4B311CA0CBA /* Debug */,
- 4A9504CDFFE6A4B311CA0CBA /* Release */,
- );
hasScannedForEncodings = 1;
mainGroup = 29B97314FDCFA39411CA2CEA /* WebKit */;
projectDirPath = "";
NSString *executablePath = [[NSBundle bundleWithPath:[(NSURL *)safariURL path]] executablePath];
NSString *pathToEnablerLib = [[NSBundle mainBundle] pathForResource:@"WebKitNightlyEnabler" ofType:@"dylib"];
- NSMutableArray *arguments = [NSMutableArray arrayWithObjects:executablePath, @"-WebKitDeveloperExtras", @"YES", nil];
+ NSMutableArray *arguments = [NSMutableArray arrayWithObjects:executablePath, @"-WebKitDeveloperExtras", @"YES", @"-WebKitScriptDebuggerEnabled", @"YES", nil];
addStartPageToArgumentsIfNeeded(arguments);
while (*++argv)