RESOLVED FIXED 29114
JS and ObjC binding dependencies not taken into account by DerivedSources.make
https://bugs.webkit.org/show_bug.cgi?id=29114
Summary JS and ObjC binding dependencies not taken into account by DerivedSources.make
Cameron McCormack (:heycam)
Reported 2009-09-09 17:55:53 PDT
Since the Objective C bindings essentially flatten multiple inheritance in the generated DOM*.mm files, there are dependencies on ancestor IDL files that aren't noticed by DerivedSources.make. For example, the SVGAnimationElement interface inheritance hierarchy looks like: SVGAnimationElement | +--SVGElement | | | +--Element | | | +-- ... | +--SVGTests | +--SVGExternalResourcesRequired | +--ElementTimeControl All of the attributes and operations in SVGTests, SVGExternalResourcesRequired and ElementTimeControl will be implemented in SVGAnimationElement.mm, but make doesn't know that SVGAnimationElement.mm depends on SVGTests.idl, SVGExternalResourcesRequired.idl and ElementTimeControl.idl. Thus, if a patch touches ElementTimeControl.idl, for example, the build will break unless a clean is done first (or something else that forces the bindings to be regenerated, such as touching CodeGenerator.pm). This probably affects the V8 bindings too, but I haven't looked closely enough to be sure.
Attachments
Patch v1 (14.02 KB, patch)
2009-09-10 00:24 PDT, Cameron McCormack (:heycam)
no flags
Cameron McCormack (:heycam)
Comment 1 2009-09-10 00:22:15 PDT
Same for the JS bindings.
Cameron McCormack (:heycam)
Comment 2 2009-09-10 00:24:55 PDT
Created attachment 39327 [details] Patch v1 This patch makes DerivedSources.make use automatically generated dependency information à la http://make.paulandlesley.org/autodep.html#advanced to ensure that changes to multiply inherited IDL interfaces (such as ElementTimeControl in the example above) cause the JS and ObJC binding classes to be regenerated.
Eric Seidel (no email)
Comment 3 2009-09-10 13:17:44 PDT
Comment on attachment 39327 [details] Patch v1 Wow. That's just awesome. It would be nice to see an example .deps file, but this looks great!
WebKit Commit Bot
Comment 4 2009-09-10 14:34:07 PDT
Comment on attachment 39327 [details] Patch v1 Clearing flags on attachment: 39327 Committed r48266: <http://trac.webkit.org/changeset/48266>
WebKit Commit Bot
Comment 5 2009-09-10 14:34:10 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.