[webkit-dev] Unified sources have broken our #include hygiene

Geoffrey Garen ggaren at apple.com
Sun Sep 2 14:46:19 PDT 2018


FWIW, this problem is caused by unified sources *and* precompiled headers.

> Unified sources allow you to get away without #including all the files you need in a .cpp file, because some earlier file in the group has probably already included them for you.
> 
> This means that when you add a new file to the build, and the unified sources get shuffled around, you end up with a long list of build breakages, some platform-specific, that you can only fix by repeating EWS trials. Here's an example: https://bugs.webkit.org/show_bug.cgi?id=189223. That patch added on new file in Source/WebCore/rendering, which required unrelated #include changes in at least:
> 
> rendering/RenderBlockFlow.cpp:
> rendering/RenderFrame.cpp:
> rendering/RenderImage.cpp:
> 
> How can we solve this? Should we have an EWS that builds non-unified? Can we somehow have the style checker do #include enforcement?

I think the solution to eagerly fix unified vs non-unified missing #includes would be strictly more costly than the problem — since the problem is that you sometimes have to fix unified vs non-unified missing #includes.

Geoff


More information about the webkit-dev mailing list