Skip to content
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

[SR-11802] Use explicit PCMs when building C modules #4646

Open
allevato opened this issue Nov 18, 2019 · 1 comment
Open

[SR-11802] Use explicit PCMs when building C modules #4646

allevato opened this issue Nov 18, 2019 · 1 comment

Comments

@allevato
Copy link

Previous ID SR-11802
Radar rdar://problem/57348895
Original Reporter @allevato
Type New Feature
Additional Detail from JIRA
Votes 0
Component/s Package Manager
Labels New Feature
Assignee None
Priority Medium

md5: 7f0e487c5842554c86852d8926a65ff4

Issue Description:

The -emit-pcm flag was added to swiftc by apple/swift#28107 so build systems can emit explicit precompiled modules of Clang module maps that are compatible with Swift's ClangImporter.

As part of its build plan, SwiftPM could emit a PCM for any C/Obj-C modules in a dependency graph and then pass those to Swift compilations that depend on them, instead of passing the module map or relying on it being found via search paths, both of which use the implicit module cache.

(While it would be nice to go a step further to 100% explicit modules and turn on -fno-implicit-modules, that would require compiling explicit modules for all the system framework/header modules as well and connecting their inter-dependencies, and would also require users to explicitly declare their dependencies on them, which is probably infeasible for SwiftPM.)

@beccadax
Copy link
Contributor

@swift-ci create

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
@shahmishal shahmishal transferred this issue from apple/swift May 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants