Summary: | [Win][Ninja] incremental build failure of WebKit due to not triggering recompilations by modifying WebCore forwarding header | ||
---|---|---|---|
Product: | WebKit | Reporter: | Fujii Hironori <Hironori.Fujii> |
Component: | WebKit2 | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW --- | ||
Severity: | Normal | CC: | don.olmstead |
Priority: | P2 | ||
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Unspecified |
Description
Fujii Hironori
2018-10-01 20:00:38 PDT
> C:\webkit\ga\WebKitBuild\Release>ninja -t deps Source\WebKit\CMakeFiles\WebKit.dir\Shared\curl\WebCoreArgumentCodersCurl.cpp.obj | findstr ResourceRequest
> derivedsources/forwardingheaders/webcore/ResourceRequest.h
> derivedsources/forwardingheaders/webcore/ResourceRequestBase.h
>
> C:\webkit\ga\WebKitBuild\Release>ninja -t query DerivedSources\ForwardingHeaders\WebCore\ResourceRequestBase.h
> DerivedSources/ForwardingHeaders/WebCore/ResourceRequestBase.h:
> input: CUSTOM_COMMAND
> ../../Source/WebCore/platform/network/ResourceRequestBase.h
> outputs:
> Source/WebCore/WebCoreForwardingHeaders
> Source/WebCore/CMakeFiles/WebCoreForwardingHeaders
case sensitive issue?
By googling, https://chromium.googlesource.com/external/martine/ninja/+/02d51b3f3d3058411a06bb08d5b773f60848fec4 https://bugs.chromium.org/p/chromium/issues/detail?id=242397 But, I don't understand. Won't this just be fixed if we move to copying all files and enumerating them? We're still doing groups in our copying. I don't understand this issue yet. Hopefully, it will be fixed by switching to Clang (Bug 171618). There is a ticket in Ninja issue tracker. Make path matching case insensitive on Windows by moroten · Pull Request #1393 · ninja-build/ninja https://github.com/ninja-build/ninja/pull/1393 Stop `-t msvc -o` from lowercasing paths from /showIncludes output. by nico · Pull Request #589 · ninja-build/ninja https://github.com/ninja-build/ninja/pull/589 Finally, I think maybe I understand this issue. This is a problem because the output directory DerivedSources/ForwardingHeaders/WebCore has uppercase. while Chromium uses lowercase for directory names of generated headers. Possible solutions are: * Downcase output directory names for generated headers * Use MSBuild instead of Ninja * Fix Ninja I have confirmed 'clang-cl /showIncludes' seems to preserve original casing, and it recompiles fine in this case. > C:\webkit\gb\WebKitBuild\Release>ninja -t deps Source\WebKit\CMakeFiles\WebKit.dir\Shared\curl\WebCoreArgumentCodersCurl.cpp.obj | findstr ResourceRequest > DerivedSources/ForwardingHeaders/WebCore/ResourceRequest.h > DerivedSources/ForwardingHeaders/WebCore/ResourceRequestBase.h This becomes another reason WinCairo port should switch to Clang (Bug 171618). |