Bug 183177 - [WKL][Win][CMake] Updating IDL should ensure sources are regenerated
Summary: [WKL][Win][CMake] Updating IDL should ensure sources are regenerated
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Fujii Hironori
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-02-27 14:03 PST by Ross Kirsling
Modified: 2019-04-02 20:21 PDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ross Kirsling 2018-02-27 14:03:38 PST
After updating an IDL in Sources/WebKitLegacy/win/Interfaces, the build may fail due to outdated DerivedSources.
Comment 1 Ross Kirsling 2018-02-27 14:07:33 PST
Problem example below.

Bug: https://bugs.webkit.org/show_bug.cgi?id=183166
Patch: https://bugs.webkit.org/attachment.cgi?id=334704&action=prettypatch
WinCairo build: https://webkit-queues.webkit.org/results/6695387

Failure output:

> [38/157] Building CXX object Tools\DumpRenderTree\CMakeFiles\DumpRenderTreeLib.dir\win\TestRunnerWin.cpp.obj
>
> FAILED: Tools/DumpRenderTree/CMakeFiles/DumpRenderTreeLib.dir/win/TestRunnerWin.cpp.obj 
>
> "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.12.25827\bin\Hostx64\x64\cl.exe"  /nologo /TP -DBUILDING_WITH_CMAKE=1 -DDumpRenderTreeLib_EXPORTS -DHAVE_CONFIG_H=1 -DNOMINMAX -DUCHAR_TYPE=wchar_t -DUNICODE -DUSE_CONSOLE_ENTRY_POINT -DWINVER=0x601 -DWIN_CAIRO -DWTF_PLATFORM_WIN_CAIRO=1 -D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1 -D_CRT_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0 -D_UNICODE -D_WIN32_WINNT=0x601 -D_WINDOWS -D_WINSOCKAPI_="" -I..\..\WebKitLibraries\win\include -IDerivedSources\DumpRenderTree -I..\..\Tools\TestRunnerShared\UIScriptContext -I..\..\Tools\TestRunnerShared\Bindings -I..\..\Tools\DumpRenderTree -I..\..\Source -I..\..\Source\WebCore\testing\js -I..\..\Tools\DumpRenderTree\win -I..\..\Tools\DumpRenderTree\TestNetscapePlugIn -I..\..\Tools\DumpRenderTree\TestNetscapePlugIn\ForwardingHeaders -I..\..\Tools\DumpRenderTree\TestNetscapePlugIn\Tests -I..\..\Tools\DumpRenderTree\TestNetscapePlugIn\win -I..\..\Tools\DumpRenderTree\TestNetscapePlugIn\Tests\win -I\win -IDerivedSources\WebKitLegacy\Interfaces -I..\..\Tools\DumpRenderTree\cairo -I..\..\WebKitLibraries\win\include\cairo -I..\..\Source\WebCore\platform\mock -I..\..\Source\WebCore\testing -IDerivedSources\WebCore -I. -I..\..\Source\WebCore -I..\..\Source\WebCore\Modules\airplay -I..\..\Source\WebCore\Modules\beacon -I..\..\Source\WebCore\Modules\applepay -I..\..\Source\WebCore\Modules\applepay\paymentrequest -I..\..\Source\WebCore\Modules\cache -I..\..\Source\WebCore\Modules\credentialmanagement -I..\..\Source\WebCore\Modules\encryptedmedia -I..\..\Source\WebCore\Modules\encryptedmedia\legacy -I..\..\Source\WebCore\Modules\entriesapi -I..\..\Source\WebCore\Modules\fetch -I..\..\Source\WebCore\Modules\geolocation -I..\..\Source\WebCore\Modules\indexeddb -I..\..\Source\WebCore\Modules\indexeddb\client -I..\..\Source\WebCore\Modules\indexeddb\server -I..\..\Source\WebCore\Modules\indexeddb\shared -I..\..\Source\WebCore\Modules\mediacapabilities -I..\..\Source\WebCore\Modules\mediacontrols -I..\..\Source\WebCore\Modules\mediasession -I..\..\Source\WebCore\Modules\mediasource -I..\..\Source\WebCore\Modules\mediastream -I..\..\Source\WebCore\Modules\navigatorcontentutils -I..\..\Source\WebCore\Modules\notifications -I..\..\Source\WebCore\Modules\paymentrequest -I..\..\Source\WebCore\Modules\plugins -I..\..\Source\WebCore\Modules\quota -I..\..\Source\WebCore\Modules\speech -I..\..\Source\WebCore\Modules\streams -I..\..\Source\WebCore\Modules\webaudio -I..\..\Source\WebCore\Modules\webauthn -I..\..\Source\WebCore\Modules\webdatabase -I..\..\Source\WebCore\Modules\webdriver -I..\..\Source\WebCore\Modules\websockets -I..\..\Source\WebCore\Modules\webvr -I..\..\Source\WebCore\accessibility -I..\..\Source\WebCore\animation -I..\..\Source\WebCore\bindings -I..\..\Source\WebCore\bindings\js -I..\..\Source\WebCore\bridge -I..\..\Source\WebCore\bridge\c -I..\..\Source\WebCore\bridge\jsc -I..\..\Source\WebCore\contentextensions -I..\..\Source\WebCore\crypto -I..\..\Source\WebCore\crypto\algorithms -I..\..\Source\WebCore\crypto\keys -I..\..\Source\WebCore\crypto\parameters -I..\..\Source\WebCore\css -I..\..\Source\WebCore\css\parser -I..\..\Source\WebCore\cssjit -I..\..\Source\WebCore\dom -I..\..\Source\WebCore\dom\default -I..\..\Source\WebCore\dom\messageports -I..\..\Source\WebCore\domjit -I..\..\Source\WebCore\editing -I..\..\Source\WebCore\fileapi -I..\..\Source\WebCore\history -I..\..\Source\WebCore\html -I..\..\Source\WebCore\html\canvas -I..\..\Source\WebCore\html\forms -I..\..\Source\WebCore\html\parser -I..\..\Source\WebCore\html\shadow -I..\..\Source\WebCore\html\track -I..\..\Source\WebCore\inspector -I..\..\Source\WebCore\inspector\agents -I..\..\Source\WebCore\inspector\agents\page -I..\..\Source\WebCore\inspector\agents\worker -I..\..\Source\WebCore\loader -I..\..\Source\WebCore\loader\appcache -I..\..\Source\WebCore\loader\archive -I..\..\Source\WebCore\loader\archive\mhtml -I..\..\Source\WebCore\loader\cache -I..\..\Source\WebCore\loader\icon -I..\..\Source\WebCore\mathml -I..\..\Source\WebCore\page -I..\..\Source\WebCore\page\animation -I..\..\Source\WebCore\page\csp -I..\..\Source\WebCore\page\scrolling -I..\..\Source\WebCore\platform -I..\..\Source\WebCore\platform\animation -I..\..\Source\WebCore\platform\audio -I..\..\Source\WebCore\platform\crypto -I..\..\Source\WebCore\platform\encryptedmedia -I..\..\Source\WebCore\platform\gamepad -I..\..\Source\WebCore\platform\graphics -I..\..\Source\WebCore\platform\graphics\cpu\arm -I..\..\Source\WebCore\platform\graphics\cpu\arm\filters -I..\..\Source\WebCore\platform\graphics\displaylists -I..\..\Source\WebCore\platform\graphics\filters -I..\..\Source\WebCore\platform\graphics\harfbuzz -I..\..\Source\WebCore\platform\graphics\harfbuzz\ng -I..\..\Source\WebCore\platform\graphics\iso -I..\..\Source\WebCore\platform\graphics\opentype -I..\..\Source\WebCore\platform\graphics\transforms -I..\..\Source\WebCore\platform\mediastream -I..\..\Source\WebCore\platform\mediastream\libwebrtc -I..\..\Source\WebCore\platform\mock\mediasource -I..\..\Source\WebCore\platform\network -I..\..\Source\WebCore\platform\sql -I..\..\Source\WebCore\platform\text -I..\..\Source\WebCore\platform\text\icu -I..\..\Source\WebCore\platform\vr -I..\..\Source\WebCore\plugins -I..\..\Source\WebCore\rendering -I..\..\Source\WebCore\rendering\line -I..\..\Source\WebCore\rendering\mathml -I..\..\Source\WebCore\rendering\shapes -I..\..\Source\WebCore\rendering\style -I..\..\Source\WebCore\rendering\svg -I..\..\Source\WebCore\rendering\updating -I..\..\Source\WebCore\replay -I..\..\Source\WebCore\storage -I..\..\Source\WebCore\style -I..\..\Source\WebCore\svg -I..\..\Source\WebCore\svg\animation -I..\..\Source\WebCore\svg\graphics -I..\..\Source\WebCore\svg\graphics\filters -I..\..\Source\WebCore\svg\properties -I..\..\Source\WebCore\websockets -I..\..\Source\WebCore\workers -I..\..\Source\WebCore\workers\service -I..\..\Source\WebCore\workers\service\context -I..\..\Source\WebCore\workers\service\server -I..\..\Source\WebCore\xml -I..\..\Source\WebCore\xml\parser -IDerivedSources\ForwardingHeaders\ANGLE -I..\..\Source\WebCore\platform\graphics\gpu -I..\include\private -I..\include\private\JavaScriptCore -I..\..\Source\WebCore\accessibility\win -I..\..\Source\WebCore\page\win -I..\..\Source\WebCore\platform\graphics\egl -I..\..\Source\WebCore\platform\graphics\opengl -I..\..\Source\WebCore\platform\graphics\win -I..\..\Source\WebCore\platform\network\win -I..\..\Source\WebCore\platform\win -I..\..\Source\ThirdParty\ANGLE\include -I..\..\Source\ThirdParty\ANGLE\include\egl -IDerivedSources\PAL -I..\..\Source\WebCore\platform\cf -I..\..\Source\WebCore\platform\cf\win -I..\..\Source\WebCore\platform\graphics\cairo -I..\..\Source\WebCore\platform\network\curl -I..\..\Source\WebCore\platform\image-decoders -I..\..\Source\WebCore\platform\image-decoders\bmp -I..\..\Source\WebCore\platform\image-decoders\gif -I..\..\Source\WebCore\platform\image-decoders\ico -I..\..\Source\WebCore\platform\image-decoders\jpeg -I..\..\Source\WebCore\platform\image-decoders\png -I..\..\Source\WebCore\platform\image-decoders\webp -I..\..\Source\WebCore\platform\graphics\texmap -I..\..\Source\WebCore\loader\archive\cf -IDerivedSources\ForwardingHeaders -I..\..\Source\bmalloc -IDerivedSources -I..\..\Source\ThirdParty -I..\..\Source\WebKitLegacy\Storage -I..\..\Source\WebKitLegacy\WebCoreSupport -I..\include\private\WebCore -I..\..\Source\WebKitLegacy\win -I..\..\Source\WebKitLegacy\win\plugins -I..\..\Source\WebKitLegacy\win\WebCoreSupport -IDerivedSources\WebKitLegacy\include -IDerivedSources\ForwardingHeaders\ANGLE\include -IDerivedSources\ForwardingHeaders\ANGLE\include\egl -IDerivedSources\ForwardingHeaders\ANGLE\include\khr -IDerivedSources\WebKitLegacy /DWIN32 /D_WINDOWS /W4 /GR- /EHs- /EHc-  /MD /O2 /Ob2 /DNDEBUG   /wd4018 /wd4068 /wd4099 /wd4100 /wd4127 /wd4138 /wd4146 /wd4180 /wd4189 /wd4201 /wd4206 /wd4244 /wd4251 /wd4267 /wd4275 /wd4288 /wd4291 /wd4305 /wd4309 /wd4344 /wd4355 /wd4389 /wd4396 /wd4456 /wd4457 /wd4458 /wd4459 /wd4481 /wd4503 /wd4505 /wd4510 /wd4512 /wd4530 /wd4610 /wd4611 /wd4646 /wd4702 /wd4706 /wd4722 /wd4800 /wd4819 /wd4951 /wd4952 /wd4996 /wd6011 /wd6031 /wd6211 /wd6246 /wd6255 /wd6387 /Zi /GS /EHa- /EHc- /EHs- /fp:except- /analyze- /bigobj /Gy- /openmp- /GF- /utf-8 /validate-charset /Oy- /Yu"DumpRenderTreePrefix.h" /FI"DumpRenderTreePrefix.h" /Fp"C:/WebKit-EWS/WebKit/WebKitBuild/Release/Tools/DumpRenderTree/DumpRenderTreeLib_SOURCES/DumpRenderTreePrefix.pch" /showIncludes /FoTools\DumpRenderTree\CMakeFiles\DumpRenderTreeLib.dir\win\TestRunnerWin.cpp.obj /FdTools\DumpRenderTree\CMakeFiles\DumpRenderTreeLib.dir\ /FS -c ..\..\Tools\DumpRenderTree\win\TestRunnerWin.cpp
>
> ..\..\Tools\DumpRenderTree\win\TestRunnerWin.cpp(549): error C2039: 'setSpatialNavigationEnabled': is not a member of 'IWebPreferencesPrivate'
> C:\WebKit-EWS\WebKit\WebKitBuild\Release\DerivedSources\ForwardingHeaders\WebKitLegacy/WebKit.h(30830): note: see declaration of 'IWebPreferencesPrivate'
Comment 2 Fujii Hironori 2018-02-28 20:56:27 PST
There are two problems.

One is Ninja incremental build failures.
It is easy to reproduce this just by applying the patch.
This is the same issue with Bug 182757.

Another is Visual Studio incremental build failure observed in this build log.
https://webkit-queues.webkit.org/patch/334754/win-ews
I can't reproduce this failure. And this is so weird.

The generated WebKit.h is copied in the POST_BUILD event of WebKitLegacyGUID at the moment.

> WEBKIT_MAKE_FORWARDING_HEADERS(WebKitLegacyGUID
>     DESTINATION ${FORWARDING_HEADERS_DIR}/WebKitLegacy
>     FILES win/WebKitCOMAPI.h win/CFDictionaryPropertyBag.h
>     DERIVED_SOURCE_DIRECTORIES ${DERIVED_SOURCES_WEBKITLEGACY_DIR}/Interfaces
>     FLATTENED
> )

According to the build log, WebKitLegacyGUID was rebuilt properly.

> WebKitLegacyGUID.vcxproj -> C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\lib32\WebKitGUID.lib

I don't know why the generated WebKit.h wasn't copied in this case.
Comment 3 Fujii Hironori 2019-04-02 20:21:31 PDT
Fixed in Bug 182757.