Going into a little bit of detail on the meaning of type=fileset: You can think of a type=fileset module as being just a bag of source files and properties. It exists only to forward those source files and properties onward to some library module which will actually do the compilation.
The reason filesets exist right now is that the standard GWT libraries contain roughly 150 module files forming a graph with extensive circular references in the modules and in the source. Filesets allow us to bundle circularly referent areas together into a single chunk which can be compiled as a group. At the moment there are only a couple of modules (Core and User) which have been cleaned up to be compilable on their own. Over time we will break these circular references and will have more independent chunks that are independently compilable. The existence of filesets create a danger that two different libraries depend on the same fileset, and result in having duplicate copies of the compiled source in the output. But the incremental build system will detect this situation and throw an error (pointing out the two libraries that are supplying duplicate source). On Tue, Apr 22, 2014 at 2:28 PM, John Stalcup <[email protected]> wrote: > If you're depending directly on anything (in this case DOM) then that > thing needs to be separately compilable. Which means it's .gwt.xml file > needs to *not* be marked with type=fileset at the top. > > If you look at User.gwt.xml and Core.gwt.xml you'll see that these are > already not filesets, since they have been verified to be compilable on > their own (meaning they accurately include their dependencies). > > You can try changing DOM.gwt.xml by removing the type=fileset marker, and > then deal with any compile failures that result. (Likely DOM.gwt.xml does > not accurately include all its dependencies and fixing it will require > adding some references and breaking some resulting circular references. > This is what Goktug has been doing recently with some other modules). > > John > > > On Tue, Apr 22, 2014 at 2:25 PM, John Stalcup <[email protected]> wrote: > >> Hey Jens >> >> Thanks for trying it out. >> >> I would open bugs for these issues. Separate compilation does not assume >> that c.g.g.user.User is inherited. (It does secretly add an implicit >> c.g.g.core.Core dependency, but the user doesn't need to do anything for >> that). >> >> >> On Tue, Apr 22, 2014 at 2:22 PM, Jens <[email protected]> wrote: >> >>> I just tried separate compilation from gwt trunk on a very small >>> project. In this project I never inherited c.g.g.user.User directly but >>> only the most specific modules I need. >>> >>> One such module is c.g.g.dom.DOM which fails with separate compilation >>> as MediaElement needs classes from c.g.g.media.dom.client but c.g.g.dom.DOM >>> does not inherit it. >>> >>> Should we open bugs for such problems or does separate compilation >>> expect users to always inherit c.g.g.user.User? >>> >>> When I do so the compilation works again because it seems like it does >>> not want to compile the DOM module directly anymore but only the User >>> module which has c.g.g.d.DOM and (indirectly) c.g.g.media.dom.DOM >>> inherited. I guess the different compilation behavior is because of the >>> type="fileset" attribute on all these specific modules? >>> >>> Can anyone explain what type="fileset" exactly does? Are there other >>> types? >>> >>> >>> I also noticed that gwteventbinder does not work with separate >>> compilation and it seems like it is only fixable with a breaking change. >>> Anyone who is interested in it can take a look at >>> https://github.com/google/gwteventbinder/issues/20 >>> >>> >>> -- J. >>> >>> -- >>> http://groups.google.com/group/Google-Web-Toolkit-Contributors >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "GWT Contributors" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected] >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> > -- http://groups.google.com/group/Google-Web-Toolkit-Contributors --- You received this message because you are subscribed to the Google Groups "GWT Contributors" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
