Skip to content

Commit

Permalink
Refactoring .NET Bazel targets to be consistent with other rules
Browse files Browse the repository at this point in the history
  • Loading branch information
jimevans committed Nov 2, 2020
1 parent bd11115 commit 201b5f8
Show file tree
Hide file tree
Showing 15 changed files with 124 additions and 13 deletions.
14 changes: 14 additions & 0 deletions dotnet/defs.bzl
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
load("//dotnet/private:assembly_info.bzl", _generated_assembly_info = "generated_assembly_info")
load("//dotnet/private:executable_assembly.bzl", _csharp_executable = "csharp_executable")
load("//dotnet/private:generate_devtools.bzl", _generate_devtools = "generate_devtools")
load("//dotnet/private:merge_assemblies.bzl", _merged_assembly = "merged_assembly")
load("//dotnet/private:nuget.bzl", _nuget_package = "nuget_package", _nuget_push = "nuget_push")
load("//dotnet/private:nunit_test.bzl", _nunit_test = "nunit_test")

generated_assembly_info = _generated_assembly_info
csharp_executable = _csharp_executable
generate_devtools = _generate_devtools
merged_assembly = _merged_assembly
nuget_package = _nuget_package
nuget_push = _nuget_push
nunit_test = _nunit_test
Empty file added dotnet/private/BUILD.bazel
Empty file.
File renamed without changes.
File renamed without changes.
File renamed without changes.
89 changes: 89 additions & 0 deletions dotnet/private/merge_assemblies.bzl
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
load(
"@d2l_rules_csharp//csharp/private:common.bzl",
"collect_transitive_info",
"fill_in_missing_frameworks",
)
load(
"@d2l_rules_csharp//csharp/private:providers.bzl",
"CSharpAssemblyInfo",
)

def _merged_assembly_impl(ctx):
providers = {}
name = ctx.label.name

deps = ctx.attr.deps
result = ctx.outputs.out

target_framework = ctx.attr.target_framework

args = [
"-ndebug",
"-v4",
"-xmldocs",
"-internalize",
]

if ctx.attr.keyfile != None:
key_path = ctx.expand_location(ctx.attr.keyfile.files.to_list()[0].path)
args.append("-keyfile:{}".format(key_path))

args.append("-out={}".format(ctx.outputs.out.path))
args.append(ctx.attr.src_assembly.files.to_list()[0].path)
(refs, runfiles, native_dlls) = collect_transitive_info(deps, target_framework)
for ref in refs.to_list():
args.append(ref.path)

ctx.actions.run(
executable = ctx.executable.merge_tool,
progress_message = "Merging assembiles into {}".format(ctx.outputs.out.path),
arguments = args,
inputs = ctx.attr.src_assembly.files,
outputs = [ctx.outputs.out],
)

runfiles = ctx.runfiles(
files = [ctx.outputs.out],
)

for dep in ctx.files.deps:
runfiles = runfiles.merge(dep[DefaultInfo].default_runfiles)

providers[target_framework] = CSharpAssemblyInfo[target_framework](
out = ctx.outputs.out,
refout = None,
pdb = None,
native_dlls = native_dlls,
deps = deps,
transitive_refs = refs,
transitive_runfiles = depset([]),
actual_tfm = target_framework,
runtimeconfig = None,
)

fill_in_missing_frameworks(providers)
returned_info = providers.values()
returned_info.append(
DefaultInfo(
runfiles = runfiles,
),
)
return returned_info

merged_assembly = rule(
implementation = _merged_assembly_impl,
attrs = {
"src_assembly": attr.label(),
"deps": attr.label_list(),
"out": attr.output(mandatory = True),
"keyfile": attr.label(allow_single_file = True),
"target_framework": attr.string(mandatory = True),
"merge_tool": attr.label(
executable = True,
cfg = "host",
default = Label("//third_party/dotnet/ilmerge:ilmerge.exe"),
allow_single_file = True,
),
},
toolchains = ["//third_party/dotnet/ilmerge:toolchain_type"],
)
File renamed without changes.
2 changes: 1 addition & 1 deletion dotnet/nunit-test.bzl → dotnet/private/nunit_test.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Rules for compiling NUnit tests.
"""

load("@d2l_rules_csharp//csharp/private:providers.bzl", "AnyTargetFrameworkInfo")
load("//dotnet:executable-assembly.bzl", "create_executable_assembly")
load("//dotnet/private:executable_assembly.bzl", "create_executable_assembly")

def _nunit_test_impl(ctx):
extra_srcs = [ctx.file._nunit_shim]
Expand Down
7 changes: 5 additions & 2 deletions dotnet/src/support/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
load("@d2l_rules_csharp//csharp:defs.bzl", "csharp_library")
load("//common:defs.bzl", "copy_file")
load("//dotnet:nuget.bzl", "nuget_package")
load("//dotnet:assembly-info.bzl", "generated_assembly_info")
load(
"//dotnet:defs.bzl",
"generated_assembly_info",
"nuget_package",
"nuget_push")
load(
"//dotnet:selenium-dotnet-version.bzl",
"ASSEMBLY_COMPANY",
Expand Down
9 changes: 6 additions & 3 deletions dotnet/src/webdriver/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
load("@d2l_rules_csharp//csharp:defs.bzl", "csharp_library")
load("//common:defs.bzl", "copy_file")
load("//dotnet:merge-assemblies.bzl", "merged_assembly")
load("//dotnet:assembly-info.bzl", "generated_assembly_info")
load("//dotnet:nuget.bzl", "nuget_package", "nuget_push")
load(
"//dotnet:defs.bzl",
"merged_assembly",
"generated_assembly_info",
"nuget_package",
"nuget_push")
load(
"//dotnet:selenium-dotnet-version.bzl",
"ASSEMBLY_COMPANY",
Expand Down
2 changes: 1 addition & 1 deletion dotnet/src/webdriver/cdp/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("//dotnet:generate-devtools.bzl", "generate_devtools")
load("//dotnet:defs.bzl", "generate_devtools")

SUPPORTED_DEVTOOLS_VERSIONS = [
"v84",
Expand Down
7 changes: 5 additions & 2 deletions dotnet/src/webdriverbackedselenium/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
load("@d2l_rules_csharp//csharp:defs.bzl", "csharp_library")
load("//common:defs.bzl", "copy_file")
load("//dotnet:nuget.bzl", "nuget_package")
load("//dotnet:assembly-info.bzl", "generated_assembly_info")
load(
"//dotnet:defs.bzl",
"generated_assembly_info",
"nuget_package",
"nuget_push")
load(
"//dotnet:selenium-dotnet-version.bzl",
"ASSEMBLY_COMPANY",
Expand Down
2 changes: 1 addition & 1 deletion dotnet/test/common/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("//dotnet:nunit-test.bzl", "nunit_test")
load("//dotnet:defs.bzl", "nunit_test")

SUPPORTED_BROWSERS = [
("chrome", "Chrome"),
Expand Down
2 changes: 1 addition & 1 deletion dotnet/test/support/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("//dotnet:nunit-test.bzl", "nunit_test")
load("//dotnet:defs.bzl", "nunit_test")

nunit_test(
name = "support",
Expand Down
3 changes: 1 addition & 2 deletions third_party/dotnet/devtools/src/generator/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
load("//dotnet:executable-assembly.bzl", "csharp_executable")
load("//dotnet:assembly-info.bzl", "generated_assembly_info")
load("//dotnet:defs.bzl", "csharp_executable", "generated_assembly_info")
load(
"//dotnet:selenium-dotnet-version.bzl",
"ASSEMBLY_COMPANY",
Expand Down

0 comments on commit 201b5f8

Please sign in to comment.