[Xcode] With Xcode 9 developer beta, everything rebuilds when switching between comma...
authormitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 10 Aug 2017 23:57:47 +0000 (23:57 +0000)
committermitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 10 Aug 2017 23:57:47 +0000 (23:57 +0000)
https://bugs.webkit.org/show_bug.cgi?id=173223

Reviewed by Tim Horton.

The rebuilds were happening due to a difference in the compiler options that the IDE and
xcodebuild were specifying. Only the IDE was passing the -index-store-path option. To make
xcodebuild pass that option, too, set INDEX_ENABLE_DATA_STORE to YES and
INDEX_DATA_STORE_DIR to the Index Datastore path specified in Xcode Locations preferences >
Advanced when a Custom Absolute path is selected.

* Scripts/webkitdirs.pm:
(determineBaseProductDir):

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

Tools/ChangeLog
Tools/Scripts/webkitdirs.pm

index 9431ac8..2000164 100644 (file)
@@ -1,3 +1,19 @@
+2017-08-10  Dan Bernstein  <mitz@apple.com>
+
+        [Xcode] With Xcode 9 developer beta, everything rebuilds when switching between command-line and IDE
+        https://bugs.webkit.org/show_bug.cgi?id=173223
+
+        Reviewed by Tim Horton.
+
+        The rebuilds were happening due to a difference in the compiler options that the IDE and
+        xcodebuild were specifying. Only the IDE was passing the -index-store-path option. To make
+        xcodebuild pass that option, too, set INDEX_ENABLE_DATA_STORE to YES and
+        INDEX_DATA_STORE_DIR to the Index Datastore path specified in Xcode Locations preferences >
+        Advanced when a Custom Absolute path is selected.
+
+        * Scripts/webkitdirs.pm:
+        (determineBaseProductDir):
+
 2017-08-10  Yusuke Suzuki  <utatane.tea@gmail.com>
 
         Run more WTF tests
index 14643a5..11fb8e0 100755 (executable)
@@ -230,6 +230,7 @@ sub determineBaseProductDir
     determineSourceDir();
 
     my $setSharedPrecompsDir;
+    my $indexDataStoreDir;
     $baseProductDir = $ENV{"WEBKIT_OUTPUTDIR"};
 
     if (!defined($baseProductDir) and isAppleCocoaWebKit()) {
@@ -247,7 +248,10 @@ sub determineBaseProductDir
         if ($buildLocationStyle eq "Custom") {
             my $buildLocationType = join '', readXcodeUserDefault("IDECustomBuildLocationType");
             # FIXME: Read CustomBuildIntermediatesPath and set OBJROOT accordingly.
-            $baseProductDir = readXcodeUserDefault("IDECustomBuildProductsPath") if $buildLocationType eq "Absolute";
+            if ($buildLocationType eq "Absolute") {
+                $baseProductDir = readXcodeUserDefault("IDECustomBuildProductsPath");
+                $indexDataStoreDir = readXcodeUserDefault("IDECustomIndexStorePath");
+            }
         }
 
         # DeterminedByTargets corresponds to a setting of "Legacy" in Xcode.
@@ -280,6 +284,7 @@ sub determineBaseProductDir
         die "Can't handle Xcode product directory with a variable in it.\n" if $baseProductDir =~ /\$/;
         @baseProductDirOption = ("SYMROOT=$baseProductDir", "OBJROOT=$baseProductDir");
         push(@baseProductDirOption, "SHARED_PRECOMPS_DIR=${baseProductDir}/PrecompiledHeaders") if $setSharedPrecompsDir;
+        push(@baseProductDirOption, "INDEX_ENABLE_DATA_STORE=YES", "INDEX_DATA_STORE_DIR=${indexDataStoreDir}") if $indexDataStoreDir;
     }
 
     if (isCygwin()) {