Skip to content

Commit 60244d3

Browse files
authored
fix: suppress modulemap target via swift interop (#1387)
rules_swift will create a modulemap automatically unless the `SwiftInteropInfo` is suppressed. Since the `generate_modulemap` rule itself is a modulemap it should not have a modulemap generated for it. ![Screenshot 2024-12-06 at 12 11 01 PM](https://github.com/user-attachments/assets/8b041952-9077-43f5-a8ba-1b8eb4cc1805)
1 parent d0fce68 commit 60244d3

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

MODULE.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ bazel_dep(name = "platforms", version = "0.0.6")
2424
# rules_swift_package_manager _must_ be a runtime dependency of rules_swift_package_manager.
2525
bazel_dep(
2626
name = "rules_swift",
27-
version = "2.1.1",
27+
version = "2.2.0",
2828
repo_name = "build_bazel_rules_swift",
2929
)
3030
bazel_dep(

swiftpkg/internal/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,7 @@ bzl_library(
232232
deps = [
233233
":clang_files",
234234
":module_maps",
235+
"@build_bazel_rules_swift//swift",
235236
],
236237
)
237238

swiftpkg/internal/generate_modulemap.bzl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
# https://github.com/bazel-xcode/PodToBUILD/blob/e9bbf68151caf6c8cd9b8ed2fa361b38e0f6a860/BazelExtensions/extensions.bzl#L113
66
# https://github.com/bazel-xcode/xchammer/blob/master/sample/UrlGet/Vendor/rules_pods/BazelExtensions/extensions.bzl
77

8+
load("@build_bazel_rules_swift//swift:swift_interop_info.bzl", "create_swift_interop_info")
89
load(":clang_files.bzl", "clang_files")
910
load(":module_maps.bzl", "write_module_map")
1011

@@ -66,6 +67,12 @@ def _generate_modulemap_impl(ctx):
6667
)
6768
provider_hdr = [modulemap_file]
6869

70+
# This target itself is a modulemap, so suppress any module generation
71+
# rules_swift does for it.
72+
swift_interop_info = create_swift_interop_info(
73+
suppressed = True,
74+
)
75+
6976
return [
7077
DefaultInfo(files = depset([modulemap_file])),
7178
ModuleMapInfo(
@@ -81,6 +88,7 @@ def _generate_modulemap_impl(ctx):
8188
includes = depset([modulemap_file.dirname]),
8289
),
8390
),
91+
swift_interop_info,
8492
]
8593

8694
generate_modulemap = rule(

0 commit comments

Comments
 (0)