<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>183177</bug_id>
          
          <creation_ts>2018-02-27 14:03:38 -0800</creation_ts>
          <short_desc>[WKL][Win][CMake] Updating IDL should ensure sources are regenerated</short_desc>
          <delta_ts>2019-04-02 20:21:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=183166</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ross Kirsling">ross.kirsling</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>fred.wang</cc>
    
    <cc>fujii</cc>
    
    <cc>lforschler</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1402411</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-02-27 14:03:38 -0800</bug_when>
    <thetext>After updating an IDL in Sources/WebKitLegacy/win/Interfaces, the build may fail due to outdated DerivedSources.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402412</commentid>
    <comment_count>1</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-02-27 14:07:33 -0800</bug_when>
    <thetext>Problem example below.

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

Failure output:

&gt; [38/157] Building CXX object Tools\DumpRenderTree\CMakeFiles\DumpRenderTreeLib.dir\win\TestRunnerWin.cpp.obj
&gt;
&gt; FAILED: Tools/DumpRenderTree/CMakeFiles/DumpRenderTreeLib.dir/win/TestRunnerWin.cpp.obj 
&gt;
&gt; &quot;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.12.25827\bin\Hostx64\x64\cl.exe&quot;  /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_=&quot;&quot; -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&quot;DumpRenderTreePrefix.h&quot; /FI&quot;DumpRenderTreePrefix.h&quot; /Fp&quot;C:/WebKit-EWS/WebKit/WebKitBuild/Release/Tools/DumpRenderTree/DumpRenderTreeLib_SOURCES/DumpRenderTreePrefix.pch&quot; /showIncludes /FoTools\DumpRenderTree\CMakeFiles\DumpRenderTreeLib.dir\win\TestRunnerWin.cpp.obj /FdTools\DumpRenderTree\CMakeFiles\DumpRenderTreeLib.dir\ /FS -c ..\..\Tools\DumpRenderTree\win\TestRunnerWin.cpp
&gt;
&gt; ..\..\Tools\DumpRenderTree\win\TestRunnerWin.cpp(549): error C2039: &apos;setSpatialNavigationEnabled&apos;: is not a member of &apos;IWebPreferencesPrivate&apos;
&gt; C:\WebKit-EWS\WebKit\WebKitBuild\Release\DerivedSources\ForwardingHeaders\WebKitLegacy/WebKit.h(30830): note: see declaration of &apos;IWebPreferencesPrivate&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402819</commentid>
    <comment_count>2</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-02-28 20:56:27 -0800</bug_when>
    <thetext>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&apos;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.

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

According to the build log, WebKitLegacyGUID was rebuilt properly.

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

I don&apos;t know why the generated WebKit.h wasn&apos;t copied in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1523590</commentid>
    <comment_count>3</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-04-02 20:21:31 -0700</bug_when>
    <thetext>Fixed in Bug 182757.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>