Skip to content

Commit 205cdb9

Browse files
committed
Fix Bazel rule generation
1 parent ff577ee commit 205cdb9

File tree

2 files changed

+36
-14
lines changed

2 files changed

+36
-14
lines changed

.mise/tasks/scripts/gen_bazel_rules.rb

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414
"AEXML" => "@aexml",
1515
}
1616

17+
MACOS_DEPS = [
18+
"//Sources:XcodeSupport"
19+
]
20+
1721
def parse_json
1822
JSON.parse(`swift package describe --type json`)
1923
rescue JSON::ParserError => e
@@ -40,25 +44,39 @@ def generate_sources(target)
4044
end
4145

4246
def generate_dependencies(target, target_labels)
43-
deps = (target["target_dependencies"] || []).map { |dep| "\"#{target_labels[dep]}\"" }
47+
deps = (target["target_dependencies"] || []).map { |dep| "#{target_labels[dep]}" }
4448
deps += (target["product_dependencies"] || []).map do |dep|
4549
pkg = PRODUCTS[dep]
46-
"\"#{pkg}//:#{dep}\""
50+
"#{pkg}//:#{dep}"
4751
end
4852
deps
4953
end
5054

55+
def quote(deps)
56+
deps.map { |dep| "\"#{dep}\"" }
57+
end
58+
5159
def generate_attrs(target, name, path, sources, deps)
5260
attrs = {
5361
"name" => "\"#{name}\"",
5462
"module_name" => "\"#{name}\"",
5563
"srcs" => sources.map { |src| src }
5664
}
5765

58-
if target["type"] == "library"
66+
macos_deps = MACOS_DEPS & deps
67+
default_deps = deps - macos_deps
68+
69+
if macos_deps.any?
70+
attrs["deps"] = """
71+
select({
72+
\"@platforms//os:macos\": [#{quote(deps).join(",\n")}],
73+
\"//conditions:default\": [#{quote(default_deps).join(",\n")}],
74+
})
75+
"""
76+
else
77+
attrs["deps"] = "[#{quote(deps).sort.join(",")}]" unless deps.empty?
5978
end
6079

61-
attrs["deps"] = "[\n #{deps.sort.join(",\n ")}\n ]" unless deps.empty?
6280
attrs
6381
end
6482

Sources/BUILD.bazel

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -122,12 +122,6 @@ swift_library(
122122
],
123123
)
124124

125-
_PROJECT_DRIVERS_DEPS = [
126-
"//Sources:Indexer",
127-
"//Sources:Shared",
128-
"//Sources:SourceGraph",
129-
]
130-
131125
swift_library(
132126
name = "ProjectDrivers",
133127
srcs = [
@@ -139,10 +133,20 @@ swift_library(
139133
"ProjectDrivers/XcodeProjectDriver.swift",
140134
],
141135
module_name = "ProjectDrivers",
142-
deps = select({
143-
"@platforms//os:macos": _PROJECT_DRIVERS_DEPS + ["//Sources:XcodeSupport"],
144-
"//conditions:default": _PROJECT_DRIVERS_DEPS,
145-
}),
136+
deps =
137+
select({
138+
"@platforms//os:macos": [
139+
"//Sources:Indexer",
140+
"//Sources:Shared",
141+
"//Sources:SourceGraph",
142+
"//Sources:XcodeSupport",
143+
],
144+
"//conditions:default": [
145+
"//Sources:Indexer",
146+
"//Sources:Shared",
147+
"//Sources:SourceGraph",
148+
],
149+
}),
146150
)
147151

148152
swift_library(

0 commit comments

Comments
 (0)