Bug 190183
| Summary: | [Win][Ninja] incremental build failure of WebKit due to not triggering recompilations by modifying WebCore forwarding header | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Fujii Hironori <fujii> |
| Component: | WebKit2 | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | don.olmstead |
| Priority: | P2 | ||
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Fujii Hironori
[Win][Ninja] incremental build failure of WebKit due to not triggering recompilations by modifying WebCore forwarding header
Applying Bug 190154 Comment 3 causes incremental build failure of WebKit.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Fujii Hironori
> 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?
Fujii Hironori
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.
Don Olmstead
Won't this just be fixed if we move to copying all files and enumerating them? We're still doing groups in our copying.
Fujii Hironori
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
Fujii Hironori
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
Fujii Hironori
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).
Fujii Hironori
WinCairo port has switched to clang-cl. I think this problem is no longer happenning. Closed.