-
Notifications
You must be signed in to change notification settings - Fork 196
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Explicit Module Builds] Add support for header dependencies of binary Swift module dependencies #1375
[Explicit Module Builds] Add support for header dependencies of binary Swift module dependencies #1375
Conversation
@swift-ci test |
c772569
to
adb2f2c
Compare
@swift-ci test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with a comment.
@@ -228,6 +228,14 @@ private extension SwiftScan { | |||
try getOptionalPathDetail(from: moduleDetailsRef, | |||
using: api.swiftscan_swift_binary_detail_get_module_source_info_path) | |||
|
|||
let headerDependencies: [TextualVirtualPath]? | |||
if supportsBinaryModuleHeaderDependencies { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you need to do this check as getOptionalPathArrayDetails
will return the same result?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed, thanks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes look good to me! Do we have a radar tracking the issue?
rdar://109426410 |
adb2f2c
to
f4b528e
Compare
@swift-ci test |
f4b528e
to
d2d781a
Compare
@swift-ci test |
…y Swift module dependencies When we encounter a pre-built Swift binary module dependency (without an interface file), such module may have been built with a bridging header, which must still be present and is referenced by the binary .swiftmodule as either a .h or, more-likely, a pre-built .pch in a fully-explicit build. Clients must be able to know about such header dependencies in order to be able to import this binary module, because this binary module may be referencing types brought in via its bridging header. The build-system client (swift-driver) will then ensure these header dependencies are fed as inputs to all requiring compilation tasks. This adds support to the driver to query such header dependencies and feed them as inputs to all requiring compilation tasks.
@swift-ci test |
d2d781a
to
754672e
Compare
@swift-ci test |
When we encounter a pre-built Swift binary module dependency (without an interface file), such module may have been built with a bridging header, which must still be present and is referenced by the binary .swiftmodule as either a .h or, more-likely, a pre-built .pch in a fully-explicit build.
Clients must be able to know about such header dependencies in order to be able to import this binary module, because this binary module may be referencing types brought in via its bridging header. The build-system client (swift-driver) will then ensure these header dependencies are fed as inputs to all requiring compilation tasks.
This adds support to the driver to query such header dependencies and feed them as inputs to all requiring compilation tasks.
Companion change to swiftlang/swift#66556