WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
235094
[XCBuild] Add "product dependencies" which influence workspace build order
https://bugs.webkit.org/show_bug.cgi?id=235094
Summary
[XCBuild] Add "product dependencies" which influence workspace build order
Elliott Williams
Reported
2022-01-11 20:25:05 PST
[XCBuild] Add "product dependencies" which influence workspace build order
Attachments
Patch
(48.17 KB, patch)
2022-01-11 21:48 PST
,
Elliott Williams
ews-feeder
: commit-queue-
Details
Formatted Diff
Diff
Patch
(48.96 KB, patch)
2022-01-11 22:54 PST
,
Elliott Williams
no flags
Details
Formatted Diff
Diff
Patch
(47.32 KB, patch)
2022-01-12 14:56 PST
,
Elliott Williams
no flags
Details
Formatted Diff
Diff
Show Obsolete
(2)
View All
Add attachment
proposed patch, testcase, etc.
Elliott Williams
Comment 1
2022-01-11 21:48:20 PST
Created
attachment 448905
[details]
Patch
Elliott Williams
Comment 2
2022-01-11 21:49:25 PST
rdar://86871388
Radar WebKit Bug Importer
Comment 3
2022-01-11 21:50:43 PST
<
rdar://problem/87436702
>
Elliott Williams
Comment 4
2022-01-11 22:54:58 PST
Created
attachment 448908
[details]
Patch
Alexey Proskuryakov
Comment 5
2022-01-12 09:18:15 PST
Comment on
attachment 448908
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=448908&action=review
> Source/JavaScriptCore/ChangeLog:8 > + Some ancillary targets (e.g. script-only targets like Derived Sources) do not have implicit > + dependencies visible to Xcode. In workspace builds, we need to give XCBuild additional > + information to ensure that they always run after their dependencies.
Is this a temporary measure before scripts in these targets have inputs/outputs defined, or is it necessary even when those are present?
Elliott Williams
Comment 6
2022-01-12 10:19:32 PST
(In reply to Alexey Proskuryakov from
comment #5
)
> Is this a temporary measure before scripts in these targets have > inputs/outputs defined, or is it necessary even when those are present?
I thought it would always be necessary, but checking my work right now it looks like these dependencies could be elided in the future if we get more precise inputs/outputs. Script inputs/outputs will influence whether a script runs, and what order it runs relative to other tasks (citation:
https://help.apple.com/xcode/mac/11.4/#/devc8c930575
). A missing script input will not _cause_ another target to build, meaning script inputs are not inferred as _target dependencies_ the same way linked frameworks or copied products are. But that's okay for us, because the main targets of each project have the necessary target dependency. For example: JavaScriptCore (the target) links against libWTF.a, which forms a target dependency on WTF. JSC's "Generate Unified Sources" is an explicit target dependency of JavaScriptCore. So when we build JavaScriptCore, both WTF and Generate Unified Sources are in the build graph, and script phase inputs/outputs would be enough to show the relationship between Generate Unified Sources and the headers it uses. So, while I don't want to commit to deleting all of these product dependencies yet, I think they could be deleted later on to improve performance.
Alexey Proskuryakov
Comment 7
2022-01-12 10:34:19 PST
Comment on
attachment 448908
[details]
Patch Sounds good! EWS is of course red, marking r- to get this out of review queue for now.
Elliott Williams
Comment 8
2022-01-12 14:56:51 PST
Created
attachment 449000
[details]
Patch
EWS
Comment 9
2022-01-13 17:02:50 PST
Committed
r287999
(
246026@main
): <
https://commits.webkit.org/246026@main
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 449000
[details]
.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug