On May 24, 2009, at 9:28 PM, Peter Kasting wrote:
On Sun, May 24, 2009 at 12:19 AM, Maciej Stachowiak <[email protected]>
wrote:
On May 23, 2009, at 9:38 AM, David Kilzer wrote:
There are essentially two options here:
1. Add #if/#endif guards to entire source files, but include every
file in every build system.
2. Make each build system smart enough to exclude source files that
implement a feature, thus pushing the policy decision down (up?)
into the build system (which is where most of the decisions are
made today anyway).
I know there is a potential compile time tradeoff, but in some ways
it would be nicer if all build systems built the same set of files,
and we ifdef'd the contents. That would put the policy decisions all
in one place (the port header).
It seems like build systems will already differ insofar as they
include various explicitly platform-specific files
("foo_bar_gtk.cc") so differing more doesn't seem to hurt much.
We could actually avoid that by having all ports include FooBar.cpp in
the build, and that file conditionally #includes the appropriate port-
specific implementation.
My bias is always against #ifdefs so I feel more like David Kilzer
does -- option #2 feels a lot cleaner to me.
ifdefs can be messy, but at least the conditional logic becomes
explicit in the code, instead of being buried in various build
systems. I think the the only serious downside is the potential to
increase compile time.
On the other hand my experience is much more with Chromium ports
instead of WebKit ports so my opinion should probably be discounted :)
I don't think it should be discounted. It might be helpful to clarify
why you think ifdefs are a bad solution.
Regards,
Maciej
_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev