RESOLVED FIXED 183177
[WKL][Win][CMake] Updating IDL should ensure sources are regenerated
https://bugs.webkit.org/show_bug.cgi?id=183177
Summary [WKL][Win][CMake] Updating IDL should ensure sources are regenerated
Ross Kirsling
Reported 2018-02-27 14:03:38 PST
After updating an IDL in Sources/WebKitLegacy/win/Interfaces, the build may fail due to outdated DerivedSources.
Attachments
Ross Kirsling
Comment 1 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'
Fujii Hironori
Comment 2 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.
Fujii Hironori
Comment 3 2019-04-02 20:21:31 PDT
Fixed in Bug 182757.
Note You need to log in before you can comment on or make changes to this bug.