C#: Provide skeleton to generate an assemblyInfo file.

Each unit gets a unique assemblyInfo file, on top
of the ones for entrypoints that also gets the git info embedded.
This commit is contained in:
Cornelius Riemenschneider
2024-06-07 15:10:59 +02:00
committed by Tamas Vajk
parent 16f8be4ba4
commit 6731bccc92
4 changed files with 73 additions and 24 deletions

View File

@@ -4,10 +4,25 @@ load("//misc/bazel:pkg.bzl", "codeql_pkg_files")
TARGET_FRAMEWORK = "net8.0"
def _gen_assembly_info(name):
assembly_info_gen = name + "-assembly-info"
native.genrule(
name = assembly_info_gen,
outs = [name + "AssemblyInfo.cs"],
cmd = "$(execpath //csharp/scripts:gen-assembly-info) $@ " + name,
tools = ["//csharp/scripts:gen-assembly-info"],
)
return ":" + assembly_info_gen
def codeql_csharp_library(name, **kwargs):
assembly_info_gen = _gen_assembly_info(name)
srcs = kwargs.pop("srcs", [])
srcs.append(assembly_info_gen)
kwargs.setdefault("nullable", "enable")
kwargs.setdefault("target_frameworks", [TARGET_FRAMEWORK])
csharp_library(name = name, **kwargs)
csharp_library(name = name, srcs = srcs, **kwargs)
def codeql_xunit_test(name, **kwargs):
kwargs.setdefault("nullable", "enable")
@@ -40,8 +55,11 @@ def codeql_csharp_binary(name, **kwargs):
resources = kwargs.pop("resources", [])
srcs = kwargs.pop("srcs", [])
assembly_info_gen = _gen_assembly_info(name)
srcs.append(assembly_info_gen)
# always add the assembly info file that sets the AssemblyInformationalVersion attribute to the extractor version
srcs.append("//csharp/scripts:assembly-info-src")
srcs.append("//csharp/scripts:git-assembly-info-src")
csharp_binary_target = "bin/" + name
publish_binary_target = "publish/" + name