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

Patrick Gansterer paroga at paroga.com
Sun Jul 3 02:43:59 PDT 2011


> 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