Teach build-webkit where newer Xcode versions store the application-wide build settin...
authormitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Apr 2011 04:53:27 +0000 (04:53 +0000)
committermitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Apr 2011 04:53:27 +0000 (04:53 +0000)
Reviewed by Mark Rowe.

* Scripts/webkitdirs.pm:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@84876 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/Scripts/webkitdirs.pm

index 73aed6c..73bd217 100644 (file)
@@ -1,3 +1,11 @@
+2011-04-25  Dan Bernstein  <mitz@apple.com>
+
+        Reviewed by Mark Rowe.
+
+        Teach build-webkit where newer Xcode versions store the application-wide build settings user default.
+
+        * Scripts/webkitdirs.pm:
+
 2011-04-25  Sam Weinig  <sam@webkit.org>
 
         Reviewed by Adam Roben.
index 2b40a1a..3f99391 100644 (file)
@@ -140,22 +140,17 @@ sub determineBaseProductDir
             unlink($personalPlistFile) || die "Could not delete $personalPlistFile: $!";
         }
 
-        open PRODUCT, "defaults read com.apple.Xcode PBXApplicationwideBuildSettings 2> " . File::Spec->devnull() . " |" or die;
+        my $xcodebuildVersionOutput = `xcodebuild -version`;
+        my $xcodeVersion = ($xcodebuildVersionOutput =~ /Xcode ([0-9](\.[0-9]+)*)/) ? $1 : undef;
+        my $xcodeDefaultsDomain = $xcodeVersion < 4 ? "com.apple.Xcode" : "com.apple.dt.Xcode";
+        my $xcodeDefaultsPrefix = $xcodeVersion < 4 ? "PBX" : "IDE";
+
+        open PRODUCT, "defaults read $xcodeDefaultsDomain ${xcodeDefaultsPrefix}ApplicationwideBuildSettings 2> " . File::Spec->devnull() . " |" or die;
         $baseProductDir = join '', <PRODUCT>;
         close PRODUCT;
 
         $baseProductDir = $1 if $baseProductDir =~ /SYMROOT\s*=\s*\"(.*?)\";/s;
         undef $baseProductDir unless $baseProductDir =~ /^\//;
-
-        if (!defined($baseProductDir)) {
-            open PRODUCT, "defaults read com.apple.Xcode PBXProductDirectory 2> " . File::Spec->devnull() . " |" or die;
-            $baseProductDir = <PRODUCT>;
-            close PRODUCT;
-            if ($baseProductDir) {
-                chomp $baseProductDir;
-                undef $baseProductDir unless $baseProductDir =~ /^\//;
-            }
-        }
     } elsif (isSymbian()) {
         # Shadow builds are not supported on Symbian
         $baseProductDir = $sourceDir;