Look for the new Xcode 3 preference key (PBXApplicationwideBuildSettings...
authorthatcher <thatcher@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 15 Aug 2007 18:45:22 +0000 (18:45 +0000)
committerthatcher <thatcher@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 15 Aug 2007 18:45:22 +0000 (18:45 +0000)
        The value of PBXApplicationwideBuildSettings is a dictionary, so we have to pull the SYMROOT out of it.

        Also pass xcodebuild OBJROOT with the same value as SYMROOT if we fallback to the default WebKitBuild,
        this prevents making "build" directories in each project folder.

        * Scripts/webkitdirs.pm:

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

WebKitTools/ChangeLog
WebKitTools/Scripts/webkitdirs.pm

index 3e3e308a15c22a7785f695731984659a83899492..31e1b3bfa9b265b537e802b37c1c1696574bc7bd 100644 (file)
@@ -1,3 +1,13 @@
+2007-08-15  Timothy Hatcher  <timothy@apple.com>
+
+        Look for the new Xcode 3 preference key (PBXApplicationwideBuildSettings) for the global build locations.
+        The value of PBXApplicationwideBuildSettings is a dictionary, so we have to pull the SYMROOT out of it.
+
+        Also pass xcodebuild OBJROOT with the same value as SYMROOT if we fallback to the default WebKitBuild,
+        this prevents making "build" directories in each project folder.
+
+        * Scripts/webkitdirs.pm:
+
 2007-08-14  Geoffrey Garen  <ggaren@apple.com>
 
         Reviewed by Kevin Mccullough.
index ae5e7fd575e9999f48a875d5b417358701a177bf..64378ad954c92c7e3df60f8df519094f53c5ea74 100644 (file)
@@ -82,12 +82,21 @@ sub determineBaseProductDir
     return if defined $baseProductDir;
     determineSourceDir();
     if (isOSX()) {
-        open PRODUCT, "defaults read com.apple.Xcode PBXProductDirectory 2> /dev/null |" or die;
-        $baseProductDir = <PRODUCT>;
+        open PRODUCT, "defaults read com.apple.Xcode PBXApplicationwideBuildSettings 2> /dev/null |" or die;
+        $baseProductDir = join '', <PRODUCT>;
         close PRODUCT;
-        if ($baseProductDir) {
-            chomp $baseProductDir;
-            undef $baseProductDir unless $baseProductDir =~ /^\//;
+
+        $baseProductDir = $1 if $baseProductDir =~ /SYMROOT\s*=\s*\"(.*?)\";/s;
+        undef $baseProductDir unless $baseProductDir =~ /^\//;
+
+        if (!defined($baseProductDir)) {
+            open PRODUCT, "defaults read com.apple.Xcode PBXProductDirectory 2> /dev/null |" or die;
+            $baseProductDir = <PRODUCT>;
+            close PRODUCT;
+            if ($baseProductDir) {
+                chomp $baseProductDir;
+                undef $baseProductDir unless $baseProductDir =~ /^\//;
+            }
         }
     } else {
         $baseProductDir = $ENV{"WEBKITOUTPUTDIR"};
@@ -109,7 +118,7 @@ sub determineBaseProductDir
 
     if (!defined($baseProductDir)) {
         $baseProductDir = "$sourceDir/WebKitBuild";
-        @baseProductDirOption = ("SYMROOT=$baseProductDir") if (isOSX());
+        @baseProductDirOption = ("SYMROOT=$baseProductDir", "OBJROOT=$baseProductDir") if (isOSX());
         if (isCygwin()) {
             my $dosBuildPath = `cygpath --windows \"$baseProductDir\"`;
             chomp $dosBuildPath;