[Webkit-unassigned] [Bug 235744] [XCBuild] WTF's headers are copied via a script and are invisible to the build system
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Fri Jan 28 18:28:30 PST 2022
https://bugs.webkit.org/show_bug.cgi?id=235744
Elliott Williams <emw at apple.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #450297| |review?
Flags| |
--- Comment #5 from Elliott Williams <emw at apple.com> ---
Comment on attachment 450297
--> https://bugs.webkit.org/attachment.cgi?id=450297
Patch
View in context: https://bugs.webkit.org/attachment.cgi?id=450297&action=review
Back to r?
This approach is obtuse. But as far as I can tell, the best way to get what we need (native PbxCp tasks for each header) is to create one copy files build phase per header subdirectory.
Alternatives considered:
1. Copy the entire `wtf/` directory using a copy files phase: This generates the right task information for each header (letting downstream tasks depend on specific headers), but it copies the entire wtf/ directory, including source code. As far as I can tell, there's no way to exclude sources from the copy without having a separate script phase that removes non-headers from /usr/local/include/wtf. I experimented with such a script phase, but it would run redundantly and cause spurious recompilation of source files.
2. Modify the existing rsync-based script to generate input and output xcfilelists: This would give us input/output xcfilelists to provide to the build system, but they would need to be committed since we use them for build task ordering. A proof-of-concept is easy, but to get expected functionality (like forcing a rebuild when the list of headers changes), we'd need to hook this into generate_xcfilelists_lib which would be less trivial.
> Source/WTF/WTF.xcodeproj/project.pbxproj:1314
> + DD3DC9C127A4C4BD007E5B61 /* spi */ = {isa = PBXFileReference; lastKnownFileType = folder; path = spi; sourceTree = "<group>"; };
The `spi/` headers are a special case: The SPI directory _only_ contains headers, and it's highly nested. It'd be annoying to have separate build phases for each subdirectory within spi/, but since it only has headers we can tell Xcode to copy the whole directory and its contents. Switching to a folder reference removes the PBXFileReferences for each header and replaces it with this reference, which appears as a blue folder in the project navigator.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20220129/61bd3751/attachment.htm>
More information about the webkit-unassigned
mailing list