The whole world rebuilds when you touch any IDL file
Created attachment 147644 [details] Patch
The introduction of Supplemental support in IDLs a while back resulted in a situation where changing any IDL file would cause every bindings file to be regenerated, even ones whose interfaces are not supplemented. As a result, this would cause nearly a world build of WebCore every time. My attached patch fixes it for build systems that use DerivedSources.make. I do not know how to fix it for other build systems though.
@haraken: I thought you fixed this issue a while back. Did this regress?
Committed r120361: <http://trac.webkit.org/changeset/120361>
Comment on attachment 147644 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=147644&action=review The approach looks reasonable. Thank you very much for fixing this. Would it be possible to make the same change to cmake (UseJSC.cmake, UseV8.pm), qmake (DerivedSources.pri), automake (GNUMakefile.am) and GYP (WebCore.gyp)? Actually the reason why I didn't take your approach (i.e. generate makefile dynamically) was that I was not sure if I can describe the "dynamic dependencies" in other build systems than makefile (I think it would be impossible in GYP). So I had been seeking for another approach that requires static dependencies only (https://bugs.webkit.org/show_bug.cgi?id=76970). No good idea for now though:) > Source/WebCore/DerivedSources.make:953 > -SUPPLEMENTAL_DEPENDENCY_FILE = ./supplemental_dependency.tmp > +SUPPLEMENTAL_DEPENDENCY_FILE = ./SupplementalDependencies.txt In the future we want to make the rename in all other build systems. ./SupplementalDependencies.txt is a better name. > Source/WebCore/bindings/scripts/preprocess-idls.pl:115 > + my @all_dependencies = []; Nit: This line is not needed.
This isn't such a big deal in the Chromium build system because Chromium cats all the derived source files together into large compilation units anyway, so there isn't much of a difference. I think that's why I didn't notice that this issue still existed.
(In reply to comment #4) > Committed r120361: <http://trac.webkit.org/changeset/120361> It broke building WebKit in Xcode with the WebKit workspace :(