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
+ )
2
9
3
10
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
+
4
17
args = [
5
18
"-v4" ,
6
19
"-xmldocs" ,
@@ -23,13 +36,36 @@ def _merged_assembly_impl(ctx):
23
36
outputs = [ctx .outputs .out ]
24
37
)
25
38
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
+
26
61
merged_assembly = rule (
27
62
implementation = _merged_assembly_impl ,
28
63
attrs = {
29
64
"src_assembly" : attr .label (),
30
65
"deps" : attr .label_list (),
31
66
"out" : attr .output (mandatory = True ),
32
67
"keyfile" : attr .label (allow_single_file = True ),
68
+ "dotnet_context_data" : attr .label (default = Label ("@io_bazel_rules_dotnet//:dotnet_context_data" )),
33
69
"merge_tool" : attr .label (
34
70
executable = True ,
35
71
cfg = "host" ,
0 commit comments