[webkit-dev] IDL generation: [Conditional=XXX] vs. #if defined(ENABLE_XXX)

Adam Barth abarth at webkit.org
Sun Jul 3 03:04:59 PDT 2011


Maybe the easier fix to make the code generator generate the proper
conditionals for the includes?

Adam


On Sun, Jul 3, 2011 at 2:43 AM, Patrick Gansterer <paroga at paroga.com> wrote:
>> Does this cause a concrete problem?
>
> That's the only problem I had, when I compiling with !ENABLE(DATABASE).
> IMO we don't require a new buildslave for this. Instead that's a more general problem.
> I think we will see the same problem for ENABLE(SVG) on the Qt minimal bot when we change the #if ENABLE_SVG to [Conditional=SVG].
>
>> I guess there are some configurations that don't build?
>
> Yes, but they are usually easy to fix. (see !ENABLE(SVG_ANIMATION) fix with http://trac.webkit.org/changeset/90106)
> IMHO the problem with the IDL generation is a more general, because it can happen not only with one configuration.
>
> - Patrick
>
> Am 03.07.2011 um 11:29 schrieb Adam Barth:
>
>> Does this cause a concrete problem?  I guess there are some
>> configurations that don't build?  Generally, configurations without
>> buildbot won't actually build.  The Qt minimal bot helps keep us
>> honest in this regard, but I suspect there are lots of configurations
>> that don't actually build.
>>
>> Adam
>>
>>
>> On Sun, Jul 3, 2011 at 2:12 AM, Patrick Gansterer <paroga at paroga.com> wrote:
>>> IMO [Conditional=XXX] does not generate correct output (only tried JSC). It adds top many header includes.
>>>
>>> Example with DOMWindow.idl:
>>> The line
>>> attribute [Conditional=DATABASE] SQLExceptionConstructor SQLException;
>>> adds #include "JSSQLException.h" independently of ENABLE_DATABASE.
>>>
>>> The lines
>>> #if defined(ENABLE_DATABASE) && ENABLE_DATABASE
>>> attribute SQLExceptionConstructor SQLException;
>>> #endif
>>> generate the #include only if ENABLE_DATABSE is true.
>>>
>>> If we add "JSSQLException.h" unconditionally we also need to generate the corresponding IDL all the time.
>>>
>>> I see three possible solutions:
>>> 1) Always generate all IDL files.
>>> 2) Change all [Conditional=XXX] to #if define(ENABLE_XXX).
>>> 3) Add the correct #if ENABLE(XXX) around the header includes.
>>>
>>> BTW: Should we unify the #if defined(ENABLE_XXX) and [Conditional=XX] in all IDL files?
>>>
>>> - Patrick
>>> _______________________________________________
>>> webkit-dev mailing list
>>> webkit-dev at lists.webkit.org
>>> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
>>>
>
>


More information about the webkit-dev mailing list