Thanks for the detailed response! I should be clear that I don’t have a strong 
opinion for or against flattened headers, I’m just interested in ironing out a 
perceived inconsistency.

> On Feb 3, 2022, at 15:31, Darin Adler <da...@apple.com> wrote:
> 
> Long ago, I originally created the forwarding headers to bridge the gap 
> between framework-style includes that those of us at Apple wanted to do, 
> where headers are flattened and you write #include 
> <FrameworkName/HeaderName.h>, and Unix-style installed libraries, where 
> things are not flattened. I wanted us to be able to write include statements 
> in WebKit in the traditional non-Apple-framework style so they would work on 
> those other platforms, and the forwarding headers were originally just for 
> the Apple platforms, making those includes work with the framework structure 
> provided automatically by the Apple framework build system.

IIUC, what we have today is the opposite situation. JavaScriptCore, WebCore, et 
al. have flattened headers, and it’s the _other platforms_ whose build systems 
do extra work to accommodate flattened includes. WTF and PAL are the exceptions.

> This proposal, to flatten the WTF headers, seems to be a step in of the 
> opposite direction, making the non-Apple platforms do something akin to 
> framework-style including. Not sure I understand the pros and cons are of 
> that.

The factors motivating me are…

- Consistency with other targets: It’s not clear to me why JSC and WebCore have 
flattened their headers but WTF hasn’t.
- Pleasing Xcode’s build system, which _really_ wants a target’s headers to 
always be copied to the same directory. Right now, WTF hacks around this by 
using an rsync script to copy its headers because Xcode’s native copy files 
phase doesn’t provide enough flexibility.

Build system limitations shouldn’t influence ergonomic decisions, so perhaps 
you should disregard the latter.

> I am currently suffering when working on WebKit development because of the 
> copies of headers made by the build system. I can’t count the number of times 
> I’ve edited a WTF header and then later realized I had edited the copy, not 
> the original. I would very much like a solution that resolved that problem. I 
> use Xcode features, and it seems the copies are what Xcode thinks are the 
> “real” headers.

If what you’ve experienced is unique to WTF, I’d be suspicious of the 
non-standard approach we’ve taken to copying WTF’s headers I mentioned above.

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to