Do not generate empty unified sources when unified builds are disabled
authorcsaavedra@igalia.com <csaavedra@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 10 Apr 2019 17:53:21 +0000 (17:53 +0000)
committercsaavedra@igalia.com <csaavedra@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 10 Apr 2019 17:53:21 +0000 (17:53 +0000)
https://bugs.webkit.org/show_bug.cgi?id=196767

Reviewed by Konstantin Tokarev.

If unified builds are disabled, the ruby script to generate them
is still used to list the sources that need to be
compiled. Currently, the script always generates bundled unified
sources, even if it's being used just to list all the sources. So
when the unified builds are disabled and no files are going to be
bundled, the script generates one empty file per bundle manager
(that is, one C++ and one ObjectiveC), that gets added to the
sources to be compiled.

* Scripts/generate-unified-source-bundles.rb: Only go through the
bundle managers file generation when not running in
PrintAllSources mode, to avoid generating empty bundle files.

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

Source/WTF/ChangeLog
Source/WTF/Scripts/generate-unified-source-bundles.rb

index 0b362c0..152bd14 100644 (file)
@@ -1,3 +1,23 @@
+2019-04-10  Claudio Saavedra  <csaavedra@igalia.com>
+
+        Do not generate empty unified sources when unified builds are disabled
+        https://bugs.webkit.org/show_bug.cgi?id=196767
+
+        Reviewed by Konstantin Tokarev.
+
+        If unified builds are disabled, the ruby script to generate them
+        is still used to list the sources that need to be
+        compiled. Currently, the script always generates bundled unified
+        sources, even if it's being used just to list all the sources. So
+        when the unified builds are disabled and no files are going to be
+        bundled, the script generates one empty file per bundle manager
+        (that is, one C++ and one ObjectiveC), that gets added to the
+        sources to be compiled.
+
+        * Scripts/generate-unified-source-bundles.rb: Only go through the
+        bundle managers file generation when not running in
+        PrintAllSources mode, to avoid generating empty bundle files.
+
 2019-04-10  Enrique Ocaña González  <eocanha@igalia.com>
 
         [WPE] Avoid async IO starving timers
index b76986d..d352a7c 100644 (file)
@@ -343,22 +343,24 @@ sourceFiles.sort.each {
     end
 }
 
-$bundleManagers.each_value {
-    | manager |
-    manager.flush
+if $mode != :PrintAllSources
+    $bundleManagers.each_value {
+        | manager |
+        manager.flush
 
-    maxCount = manager.maxCount
-    next if !maxCount
+        maxCount = manager.maxCount
+        next if !maxCount
 
-    manager.flushToMax
+        manager.flushToMax
 
-    unless manager.extraFiles.empty?
-        extension = manager.extension
-        bundleCount = manager.bundleCount
-        filesToAdd = manager.extraFiles.join(", ")
-        raise "number of bundles for #{extension} sources, #{bundleCount}, exceeded limit, #{maxCount}. Please add #{filesToAdd} to Xcode then update UnifiedSource#{extension.capitalize}FileCount"
-    end
-}
+        unless manager.extraFiles.empty?
+            extension = manager.extension
+            bundleCount = manager.bundleCount
+            filesToAdd = manager.extraFiles.join(", ")
+            raise "number of bundles for #{extension} sources, #{bundleCount}, exceeded limit, #{maxCount}. Please add #{filesToAdd} to Xcode then update UnifiedSource#{extension.capitalize}FileCount"
+        end
+    }
+end
 
 if $mode == :GenerateXCFilelists
     IO::write($inputXCFilelistPath, $inputSources.sort.join("\n") + "\n") if $inputXCFilelistPath