On 11/24/2014 6:16 AM, Kan-Ru Chen (陳侃如) wrote: > Hi, > > Do we have policy about what headers should/could be in EXPORTS? I found > that some exported headers include other headers that aren't exported so > the header using site has to use LOCAL_INCLUDES which IMO defeats the > purpose of EXPORTS. > > So exporting more headers could fix it, but that leads to the question > about what headers should/could be in EXPORTS. I don't know much about > the history of embedding gecko but I guess the exported files were > considered part of the stable API? > > I am pretty confident that we do not have an actual policy here. For historical context, we used to provide a stable C++ API, and things that went in EXPORTS wound up being part of that API, so it was important to be careful around that. We stopped promising that stable C++ API a while ago (although we do attempt to be kind to consumers of it by not breaking things willy-nilly), so that is not as much of a concern. Additionally, it used to be that module boundaries in Gecko were treated more seriously, in that they were built at different times and so you had to use EXPORTS to include headers from other modules (and you couldn't build dependencies in certain directions). Those days are gone, and we build most of Gecko in a single pass and we use LOCAL_INCLUDES all over the place. At this point, you probably shouldn't bother with EXPORTS unless you are trying to present a somewhat-official API to a component.
-Ted _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform