Reviewed by Antti.
[WebKit-https.git] / WebKitTools / BuildSlaveSupport / build-launcher-app
index 3e4dc1abdad7b4833ce50d467e53dfadc5b0328e..19b55c92431beac21d74b3ca19584b980713b02b 100755 (executable)
@@ -38,22 +38,35 @@ use webkitdirs;
 my @xcodeBuildArguments = XcodeOptions();
 my $nightlyLauncherTemplatePath = "$FindBin::Bin/../WebKitLauncher";
 my $nightlyLauncherStagingPath = productDir() . "/WebKit.app";
-my $droseraProjectPath = "$FindBin::Bin/../Drosera";
+my $droseraProjectPath = "$FindBin::Bin/../Drosera/mac";
 my $droseraStagingPath = productDir() . "/DroseraLauncher.app";
 
 sub buildNightlyLauncher
 {
     chdir($nightlyLauncherTemplatePath);
-    system("xcodebuild", "clean", "-alltargets", @xcodeBuildArguments) == 0 or die "Failed cleaning WebKitLauncher project";
-    system("xcodebuild", @xcodeBuildArguments) == 0 or die "Failed building WebKitLauncher project";
+    system("xcodebuild", "clean", "-alltargets", @xcodeBuildArguments, @ARGV) == 0 or die "Failed cleaning WebKitLauncher project";
+    system("xcodebuild", @xcodeBuildArguments, @ARGV) == 0 or die "Failed building WebKitLauncher project";
     chdirWebKit();
 }
 
+sub currentSVNBranch
+{
+    my $sourceDir = sourceDir();
+    my $svnInfo = `LC_ALL=C svn info $sourceDir | grep URL:`;
+    (my $url) = ($svnInfo =~ m/URL: (.+)/g);
+    (my $branch) = ($url =~ m/\/svn\/webkit\/(trunk|branches\/[^\/]+)/);
+    die "Unable to determine current SVN branch in $sourceDir" unless (defined $branch);
+    $branch =~ s/^branches\///;
+    return $branch
+}
+
 sub copyNightlyLauncher
 {
     my $revision = currentSVNRevision();
+    my $branch = currentSVNBranch();
     my $infoPlist = "$nightlyLauncherStagingPath/Contents/Info.plist";
     my $versionFile = "$nightlyLauncherStagingPath/Contents/Resources/VERSION";
+    my $branchFile = "$nightlyLauncherStagingPath/Contents/Resources/BRANCH";
     my $data;
     open(IN, $infoPlist) or die "Couldn't open Info.plist in built application for reading";
     {
@@ -70,6 +83,10 @@ sub copyNightlyLauncher
     print OUT "$revision\n";
     close(OUT);
 
+    open(OUT, ">$branchFile") or die "Couldn't open BRANCH in built application for writing";
+    print OUT "$branch\n";
+    close(OUT);
+
     my @frameworks = ("JavaScriptCore", "JavaScriptGlue", "WebCore", "WebKit");
     for my $framework (@frameworks) {
         system("ditto", productDir() . "/$framework.framework", "$nightlyLauncherStagingPath/Contents/Resources/$framework.framework") == 0 or die "Failed copying $framework.framework into $nightlyLauncherStagingPath";
@@ -79,10 +96,10 @@ sub copyNightlyLauncher
 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";
+    system("xcodebuild", "clean", "-alltargets", @xcodeBuildArguments, @ARGV) == 0 or die "Failed cleaning Drosera project";
+    # Build native platform only right now, as building universal with the 10.4u SDK cause Xcode to look for WebKit,
+    # WebCore & JavaScriptCore in the SDK under /Developer/SDKs/MacOSX10.4u.sdk/$(BUILT_PRODUCTS_DIR) where they do not exist
+    system("xcodebuild", "-alltargets", @xcodeBuildArguments, @ARGV) == 0 or die "Failed building Drosera project";
     chdirWebKit();
 }