Bug 183896

Summary: [WPE][GTK] Build failure when ENABLE_VIDEO, ENABLE_WEB_AUDIO and ENABLE_XSLT are disabled
Product: WebKit Reporter: Adrian Perez <aperez>
Component: WPE WebKitAssignee: Adrian Perez <aperez>
Status: RESOLVED FIXED    
Severity: Normal CC: bugs-noreply, clopez, commit-queue, dino, graouts, mcatanzaro, ysuzuki, zan
Priority: P2    
Version: Other   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Description Adrian Perez 2018-03-22 05:30:44 PDT
This can be reproduced with the following commands:

   % cd path/to/WebKit
   % mkdir build && cd $_
   % cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DDEVELOPER_MODE=ON \
           -DCMAKE_INSTALL_PREFIX=$JHENV -DENABLE_VIDEO=OFF \
           -DENABLE_WEB_AUDIO=OFF -DENABLE_XSLT=OFF -DPORT=WPE \
           -G Ninja ..
   % ninja

The build error is as follows, I think that DEVELOPER_MODE is not really
the culprit:

In file included from /usr/include/c++/7.3.1/bits/move.h:54:0,
                 from /usr/include/c++/7.3.1/bits/nested_exception.h:40,
                 from /usr/include/c++/7.3.1/exception:143,
                 from /usr/include/c++/7.3.1/new:40,
                 from DerivedSources/ForwardingHeaders/wtf/FastMalloc.h:24,
                 from ../Source/WebCore/config.h:55,
                 from ../Source/WebCore/bindings/js/JSTextTrackListCustom.cpp:26,
                 from DerivedSources/WebCore/unified-sources/UnifiedSource169.cpp:1:
/usr/include/c++/7.3.1/type_traits: In instantiation of ‘struct std::is_base_of<WebCore::ScriptExecutionContext, WebCore::Document>’:
DerivedSources/ForwardingHeaders/wtf/TypeCasts.h:82:80:   required from ‘typename WTF::match_constness<Source, Target>::type& WTF::downcast(Source&) [with Target = WebCore::Document; Source = WebCore::ScriptExecutionContext; typename WTF::match_constness<Source, Target>::type = WebCore::Document]’
../Source/WebCore/bindings/js/JSWebAnimationCustom.cpp:63:49:   required from here
/usr/include/c++/7.3.1/type_traits:1512:12: error: invalid use of incomplete type ‘class WebCore::Document’
     struct is_base_of
            ^~~~~~~~~~
In file included from ../Source/WebCore/dom/Node.h:33:0,
                 from ../Source/WebCore/bindings/js/JSTreeWalkerCustom.cpp:23,
                 from DerivedSources/WebCore/unified-sources/UnifiedSource169.cpp:3:
../Source/WebCore/dom/TreeScope.h:38:7: note: forward declaration of ‘class WebCore::Document’
 class Document;
       ^~~~~~~~
In file included from DerivedSources/ForwardingHeaders/wtf/Ref.h:34:0,
                 from DerivedSources/ForwardingHeaders/wtf/VectorTraits.h:24,
                 from DerivedSources/ForwardingHeaders/wtf/Vector.h:38,
                 from DerivedSources/ForwardingHeaders/wtf/text/StringImpl.h:32,
                 from DerivedSources/ForwardingHeaders/wtf/text/UniquedStringImpl.h:29,
                 from DerivedSources/ForwardingHeaders/wtf/text/SymbolImpl.h:28,
                 from DerivedSources/ForwardingHeaders/JavaScriptCore/PrivateName.h:28,
                 from DerivedSources/ForwardingHeaders/JavaScriptCore/Identifier.h:23,
                 from DerivedSources/WebCore/JSDOMBindingInternalsBuiltins.h:34,
                 from DerivedSources/WebCore/WebCoreJSBuiltinInternals.h:39,
                 from ../Source/WebCore/bindings/js/JSDOMGlobalObject.h:29,
                 from ../Source/WebCore/bindings/js/JSDOMWrapper.h:24,
                 from DerivedSources/WebCore/JSTreeWalker.h:23,
                 from ../Source/WebCore/bindings/js/JSTreeWalkerCustom.cpp:21,
                 from DerivedSources/WebCore/unified-sources/UnifiedSource169.cpp:3:
DerivedSources/ForwardingHeaders/wtf/TypeCasts.h: In instantiation of ‘typename WTF::match_constness<Source, Target>::type& WTF::downcast(Source&) [with Target = WebCore::Document; Source = WebCore::ScriptExecutionContext; typename WTF::match_constness<Source, Target>::type = WebCore::Document]’:
../Source/WebCore/bindings/js/JSWebAnimationCustom.cpp:63:49:   required from here
DerivedSources/ForwardingHeaders/wtf/TypeCasts.h:82:80: error: ‘value’ is not a member of ‘std::is_base_of<WebCore::ScriptExecutionContext, WebCore::Document>’
     return static_cast<typename match_constness<Source, Target>::type&>(source);
                                                                                ^
DerivedSources/ForwardingHeaders/wtf/TypeCasts.h:82:12: error: invalid static_cast from type ‘WebCore::ScriptExecutionContext’ to type ‘WTF::match_constness<WebCore::ScriptExecutionContext, WebCore::Document>::type& {aka WebCore::Document&}’
     return static_cast<typename match_constness<Source, Target>::type&>(source);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Comment 1 Adrian Perez 2018-03-22 05:33:58 PDT
Created attachment 336276 [details]
Patch
Comment 2 Yusuke Suzuki 2018-03-22 06:23:42 PDT
Comment on attachment 336276 [details]
Patch

r=me
Comment 3 WebKit Commit Bot 2018-03-22 06:48:38 PDT
Comment on attachment 336276 [details]
Patch

Clearing flags on attachment: 336276

Committed r229848: <https://trac.webkit.org/changeset/229848>
Comment 4 WebKit Commit Bot 2018-03-22 06:48:40 PDT
All reviewed patches have been landed.  Closing bug.