Skip to content

Commit 8fc78fa

Browse files
authored
Merge pull request #8960 from redsun82/swift-cc-wrappers
Swift: cc wrapper rules
2 parents 7efb4ab + 2fe38c2 commit 8fc78fa

File tree

2 files changed

+27
-11
lines changed

2 files changed

+27
-11
lines changed

swift/extractor/BUILD.bazel

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
load("//swift:rules.bzl", "swift_cc_binary")
2+
13
alias(
24
name = "swift-llvm-support",
35
actual = select({
@@ -6,24 +8,14 @@ alias(
68
}),
79
)
810

9-
cc_binary(
11+
swift_cc_binary(
1012
name = "extractor",
1113
srcs = [
1214
"SwiftExtractor.cpp",
1315
"SwiftExtractor.h",
1416
"SwiftExtractorConfiguration.h",
1517
"main.cpp",
1618
],
17-
copts = [
18-
# Required by LLVM/Swift
19-
"-fno-rtti",
20-
],
21-
features = ["-universal_binaries"],
22-
target_compatible_with = select({
23-
"@platforms//os:linux": [],
24-
"@platforms//os:macos": [],
25-
"//conditions:default": ["@platforms//:incompatible"],
26-
}),
2719
visibility = ["//swift:__pkg__"],
2820
deps = [
2921
":swift-llvm-support",

swift/rules.bzl

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
def _add_args(kwargs, kwarg, value):
2+
kwargs[kwarg] = kwargs.get(kwarg, []) + value
3+
4+
def _wrap_cc(rule, kwargs):
5+
_add_args(kwargs, "copts", [
6+
# Required by LLVM/Swift
7+
"-fno-rtti",
8+
])
9+
_add_args(kwargs, "features", [
10+
# temporary, before we do universal merging
11+
"-universal_binaries",
12+
])
13+
_add_args(kwargs, "target_compatible_with", select({
14+
"@platforms//os:linux": [],
15+
"@platforms//os:macos": [],
16+
"//conditions:default": ["@platforms//:incompatible"],
17+
}))
18+
rule(**kwargs)
19+
20+
def swift_cc_binary(**kwargs):
21+
_wrap_cc(native.cc_binary, kwargs)
22+
23+
def swift_cc_library(**kwargs):
24+
_wrap_cc(native.cc_library, kwargs)

0 commit comments

Comments
 (0)