Skip to content

Commit fefd4e0

Browse files
committed
Adding return value to .NET merge_assembly bazel build rule
1 parent 283a2b8 commit fefd4e0

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

dotnet/merge-assemblies.bzl

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
1-
load("@io_bazel_rules_dotnet//dotnet/private:context.bzl", "dotnet_context")
1+
load(
2+
"@io_bazel_rules_dotnet//dotnet/private:context.bzl",
3+
"dotnet_context"
4+
)
5+
load(
6+
"@io_bazel_rules_dotnet//dotnet/private:providers.bzl",
7+
"DotnetLibrary",
8+
)
29

310
def _merged_assembly_impl(ctx):
11+
dotnet = dotnet_context(ctx)
12+
name = ctx.label.name
13+
14+
deps = ctx.attr.deps
15+
result = ctx.outputs.out
16+
417
args = [
518
"-v4",
619
"-xmldocs",
@@ -23,13 +36,36 @@ def _merged_assembly_impl(ctx):
2336
outputs = [ctx.outputs.out]
2437
)
2538

39+
data = depset()
40+
41+
runfiles = depset(direct = [result], transitive = [d[DotnetLibrary].runfiles for d in deps] + [data])
42+
transitive = depset(direct = deps, transitive = [a[DotnetLibrary].transitive for a in deps])
43+
44+
merged_lib = dotnet.new_library(
45+
dotnet = dotnet,
46+
name = name,
47+
deps = deps,
48+
transitive = transitive,
49+
runfiles = runfiles,
50+
result = result,
51+
)
52+
53+
return [
54+
merged_lib,
55+
DefaultInfo(
56+
files = depset([merged_lib.result]),
57+
runfiles = ctx.runfiles(files = [], transitive_files = merged_lib.runfiles),
58+
),
59+
]
60+
2661
merged_assembly = rule(
2762
implementation = _merged_assembly_impl,
2863
attrs = {
2964
"src_assembly": attr.label(),
3065
"deps": attr.label_list(),
3166
"out": attr.output(mandatory = True),
3267
"keyfile": attr.label(allow_single_file = True),
68+
"dotnet_context_data": attr.label(default = Label("@io_bazel_rules_dotnet//:dotnet_context_data")),
3369
"merge_tool": attr.label(
3470
executable = True,
3571
cfg = "host",

0 commit comments

Comments
 (0)