Skip to content

Latest commit

 

History

History
56 lines (45 loc) · 7.75 KB

csharp_library.md

File metadata and controls

56 lines (45 loc) · 7.75 KB

Rule for compiling C# libraries.

csharp_library

load("@rules_dotnet//dotnet/private/rules/csharp:library.bzl", "csharp_library")

csharp_library(name, deps, srcs, data, resources, out, additionalfiles, allow_unsafe_blocks,
               analyzer_configs, compile_data, compiler_options, defines, exports,
               generate_documentation_file, internals_visible_to, is_analyzer,
               is_language_specific_analyzer, keyfile, langversion, nowarn, nullable, project_sdk,
               run_analyzers, target_frameworks, treat_warnings_as_errors, warning_level,
               warnings_as_errors, warnings_not_as_errors)

Compile a C# DLL

ATTRIBUTES

Name Description Type Mandatory Default
name A unique name for this target. Name required
deps Other libraries, binaries, or imported DLLs List of labels optional []
srcs The source files used in the compilation. List of labels optional []
data Runtime files. It is recommended to use the @rules_dotnet//tools/runfiles library to read the runtime files. List of labels optional []
resources A list of files to embed in the DLL as resources. List of labels optional []
out File name, without extension, of the built assembly. String optional ""
additionalfiles Extra files to configure analyzers. List of labels optional []
allow_unsafe_blocks Allow compiling unsafe code. It true, /unsafe is passed to the compiler. Boolean optional False
analyzer_configs A list of analyzer configuration files. See: https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/configuration-files List of labels optional []
compile_data Additional compile time files. List of labels optional []
compiler_options Additional options to pass to the compiler. This attribute should only be used if the compiler flag has not already been exposed as an attribute. List of strings optional []
defines A list of preprocessor directive symbols to define. List of strings optional []
exports List of targets to add to the dependencies of those that depend on this target. Use this sparingly as it weakens the precision of the build graph.

This attribute does nothing if you don't have strict dependencies enabled.
List of labels optional []
generate_documentation_file Whether or not to generate a documentation file. Boolean optional True
internals_visible_to Other libraries that can see the assembly's internal symbols. Using this rather than the InternalsVisibleTo assembly attribute will improve build caching. List of strings optional []
is_analyzer Whether this library is an analyzer or not. This flag is needs to be set to true if the library is an analyzer or a source generator. Boolean optional False
is_language_specific_analyzer Whether this library is a language specific analyzer/source generator or not. This flag is needs to be set to true if the library is a analyzer that is specific to a language or if the library is a source generator. Boolean optional False
keyfile The key file used to sign the assembly with a strong name. Label optional None
langversion The version string for the language. String optional ""
nowarn List of warnings that should be ignored List of strings optional ["CS1701", "CS1702"]
nullable Enable nullable context, or nullable warnings. String optional "disable"
project_sdk The project SDK that is being targeted. See https://learn.microsoft.com/en-us/dotnet/core/project-sdk/overview String optional "default"
run_analyzers Controls whether analyzers run at build time. Boolean optional True
target_frameworks A list of target framework monikers to buildSee https://docs.microsoft.com/en-us/dotnet/standard/frameworks List of strings required
treat_warnings_as_errors Treat all compiler warnings as errors. Note that this attribute can not be used in conjunction with warnings_as_errors. Boolean optional False
warning_level The warning level that should be used by the compiler. Integer optional 3
warnings_as_errors List of compiler warning codes that should be considered as errors. Note that this attribute can not be used in conjunction with treat_warning_as_errors. List of strings optional []
warnings_not_as_errors List of compiler warning codes that should not be considered as errors. Note that this attribute can only be used in conjunction with treat_warning_as_errors. List of strings optional []