mirror of
https://github.com/github/codeql.git
synced 2025-12-17 01:03:14 +01:00
C#: Add Bazel-based build system.
This commits a bazel-based build system for C# using `rules_dotnet`. External dependencies are managed via `paket`, and updates to the generated bazel files are done via `./update-deps.sh`. We're providing our own (minimal) test runner for `xunit` tests.
This commit is contained in:
18
csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BUILD.bazel
Normal file
18
csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BUILD.bazel
Normal file
@@ -0,0 +1,18 @@
|
||||
load(
|
||||
"//misc/bazel:csharp.bzl",
|
||||
"codeql_xunit_test",
|
||||
)
|
||||
|
||||
codeql_xunit_test(
|
||||
name = "Semmle.Autobuild.CSharp.Tests",
|
||||
srcs = glob([
|
||||
"*.cs",
|
||||
"Properties/*.cs",
|
||||
]),
|
||||
deps = [
|
||||
"//csharp/autobuilder/Semmle.Autobuild.CSharp:bin/Semmle.Autobuild.CSharp",
|
||||
"//csharp/autobuilder/Semmle.Autobuild.Shared",
|
||||
"@paket.main//microsoft.net.test.sdk",
|
||||
"@paket.main//system.io.filesystem",
|
||||
],
|
||||
)
|
||||
@@ -215,9 +215,9 @@ namespace Semmle.Autobuild.CSharp.Tests
|
||||
|
||||
internal class TestDiagnosticWriter : IDiagnosticsWriter
|
||||
{
|
||||
public IList<DiagnosticMessage> Diagnostics { get; } = new List<DiagnosticMessage>();
|
||||
public IList<Semmle.Util.DiagnosticMessage> Diagnostics { get; } = new List<Semmle.Util.DiagnosticMessage>();
|
||||
|
||||
public void AddEntry(DiagnosticMessage message) => this.Diagnostics.Add(message);
|
||||
public void AddEntry(Semmle.Util.DiagnosticMessage message) => this.Diagnostics.Add(message);
|
||||
|
||||
public void Dispose() { }
|
||||
}
|
||||
|
||||
21
csharp/autobuilder/Semmle.Autobuild.CSharp/BUILD.bazel
Normal file
21
csharp/autobuilder/Semmle.Autobuild.CSharp/BUILD.bazel
Normal file
@@ -0,0 +1,21 @@
|
||||
load(
|
||||
"//misc/bazel:csharp.bzl",
|
||||
"codeql_csharp_binary",
|
||||
)
|
||||
|
||||
codeql_csharp_binary(
|
||||
name = "Semmle.Autobuild.CSharp",
|
||||
srcs = glob([
|
||||
"*.cs",
|
||||
"Properties/*.cs",
|
||||
]),
|
||||
visibility = ["//csharp:__subpackages__"],
|
||||
deps = [
|
||||
"//csharp/autobuilder/Semmle.Autobuild.Shared",
|
||||
"//csharp/extractor/Semmle.Extraction.CSharp",
|
||||
"//csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching",
|
||||
"//csharp/extractor/Semmle.Util",
|
||||
"@paket.main//microsoft.build",
|
||||
"@paket.main//newtonsoft.json",
|
||||
],
|
||||
)
|
||||
18
csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/BUILD.bazel
Normal file
18
csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/BUILD.bazel
Normal file
@@ -0,0 +1,18 @@
|
||||
load(
|
||||
"//misc/bazel:csharp.bzl",
|
||||
"codeql_xunit_test",
|
||||
)
|
||||
|
||||
codeql_xunit_test(
|
||||
name = "Semmle.Autobuild.Cpp.Tests",
|
||||
srcs = glob([
|
||||
"*.cs",
|
||||
"Properties/*.cs",
|
||||
]),
|
||||
deps = [
|
||||
"//csharp/autobuilder/Semmle.Autobuild.Cpp:bin/Semmle.Autobuild.Cpp",
|
||||
"//csharp/autobuilder/Semmle.Autobuild.Shared",
|
||||
"@paket.main//microsoft.net.test.sdk",
|
||||
"@paket.main//system.io.filesystem",
|
||||
],
|
||||
)
|
||||
@@ -200,9 +200,9 @@ namespace Semmle.Autobuild.Cpp.Tests
|
||||
|
||||
internal class TestDiagnosticWriter : IDiagnosticsWriter
|
||||
{
|
||||
public IList<DiagnosticMessage> Diagnostics { get; } = new List<DiagnosticMessage>();
|
||||
public IList<Semmle.Util.DiagnosticMessage> Diagnostics { get; } = new List<Semmle.Util.DiagnosticMessage>();
|
||||
|
||||
public void AddEntry(DiagnosticMessage message) => this.Diagnostics.Add(message);
|
||||
public void AddEntry(Semmle.Util.DiagnosticMessage message) => this.Diagnostics.Add(message);
|
||||
|
||||
public void Dispose() { }
|
||||
}
|
||||
|
||||
18
csharp/autobuilder/Semmle.Autobuild.Cpp/BUILD.bazel
Normal file
18
csharp/autobuilder/Semmle.Autobuild.Cpp/BUILD.bazel
Normal file
@@ -0,0 +1,18 @@
|
||||
load(
|
||||
"//misc/bazel:csharp.bzl",
|
||||
"codeql_csharp_binary",
|
||||
)
|
||||
|
||||
codeql_csharp_binary(
|
||||
name = "Semmle.Autobuild.Cpp",
|
||||
srcs = glob([
|
||||
"*.cs",
|
||||
"Properties/*.cs",
|
||||
]),
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//csharp/autobuilder/Semmle.Autobuild.Shared",
|
||||
"//csharp/extractor/Semmle.Util",
|
||||
"@paket.main//microsoft.build",
|
||||
],
|
||||
)
|
||||
17
csharp/autobuilder/Semmle.Autobuild.Shared/BUILD.bazel
Normal file
17
csharp/autobuilder/Semmle.Autobuild.Shared/BUILD.bazel
Normal file
@@ -0,0 +1,17 @@
|
||||
load(
|
||||
"//misc/bazel:csharp.bzl",
|
||||
"codeql_csharp_library",
|
||||
)
|
||||
|
||||
codeql_csharp_library(
|
||||
name = "Semmle.Autobuild.Shared",
|
||||
srcs = glob([
|
||||
"*.cs",
|
||||
"Properties/*.cs",
|
||||
]),
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//csharp/extractor/Semmle.Util",
|
||||
"@paket.main//microsoft.build",
|
||||
],
|
||||
)
|
||||
Reference in New Issue
Block a user