[Win][CMake] Changes in WebKit options are not reflected in incremental builds.
authorpvollan@apple.com <pvollan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 15 Jun 2016 17:08:08 +0000 (17:08 +0000)
committerpvollan@apple.com <pvollan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 15 Jun 2016 17:08:08 +0000 (17:08 +0000)
https://bugs.webkit.org/show_bug.cgi?id=158727

Reviewed by Alex Christensen.

Delete CMake cache file if WebKit options have been modified.

* Scripts/build-webkit:
* Scripts/webkitdirs.pm:
(shouldRemoveCMakeCache):

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

Tools/ChangeLog
Tools/Scripts/build-webkit
Tools/Scripts/webkitdirs.pm

index e86d2b6..3a9ba9a 100644 (file)
@@ -1,3 +1,16 @@
+2016-06-15  Per Arne Vollan  <pvollan@apple.com>
+
+        [Win][CMake] Changes in WebKit options are not reflected in incremental builds.
+        https://bugs.webkit.org/show_bug.cgi?id=158727
+
+        Reviewed by Alex Christensen.
+
+        Delete CMake cache file if WebKit options have been modified.
+
+        * Scripts/build-webkit:
+        * Scripts/webkitdirs.pm:
+        (shouldRemoveCMakeCache):
+
 2016-06-15  Romain Bellessort  <romain.bellessort@crf.canon.fr>
 
         Enabling Shadow DOM for all platforms
index 088a457..653d374 100755 (executable)
@@ -243,6 +243,9 @@ if (isCMakeBuild() && !isAnyWindows()) {
 
 my $baseProductDir = baseProductDir();
 if (isAppleWinWebKit() || isWinCairo()) {
+    my @featureArgs = cMakeArgsFromFeatures();
+    removeCMakeCache(@featureArgs);
+
     chdirWebKit();
     if (exitStatus(generateBuildSystemFromCMakeProject())) {
         die "Run \"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/vcvarsall.bat\" before build-webkit when using ninja";
index 41063b4..04bbb45 100755 (executable)
@@ -1904,6 +1904,13 @@ sub shouldRemoveCMakeCache(@)
         return 1;
     }
 
+    if(isAnyWindows()) {
+        my $winConfiguration = File::Spec->catdir(sourceDir(), "Source", "cmake", "OptionsWin.cmake");
+        if ($cacheFileModifiedTime < stat($winConfiguration)->mtime) {
+            return 1;
+        }
+    }
+
     return 0;
 }