rules_swift
rules_swift copied to clipboard
Add feature for partially explicit modules
As of Swift 5.6 and this PR https://github.com/apple/swift/pull/39887
the new json format used for entirely explicit module builds can be used
without entirely disabling implicit modules. This provides an
alternative to VFS overlays for discovering dependencies without -I
search paths. This is theoretically about the same but I expect this
file format to have better support in general than VFS overlays for
things like the new incremental compilation support, which currently
doesn't support VFS overlays, and this shouldn't have any downsides vs
VFS files.
This format does support some more keys than just the 2 we pass, as far as I can tell they are unused today, so I'm opting not to pass them. We may have to revisit this in the future.
Lyft integration job started: https://buildkite.com/lyft/rules-swift/builds/236 (must be Lyft employee to view)
Lyft integration job started: https://buildkite.com/lyft/rules-swift/builds/237 (must be Lyft employee to view)
Lyft integration job started: https://buildkite.com/lyft/rules-swift/builds/238 (must be Lyft employee to view)
Lyft integration job started: https://buildkite.com/lyft/rules-swift/builds/348 (must be Lyft employee to view)
https://github.com/bazelbuild/rules_swift/commit/1666670edadfe6e440b23d7142b0e21bf1043402
ok I pushed a new version here where I manually pulled changes from the upstream commit, but also left the VFS feature around for existing users. we can probably remove it as upstream did once we're confident this works without downsides and we don't care about older swift versions