Skip to content

Commit 024efda

Browse files
authored
Merge pull request #100568 from Repiteo/dotnet/warning-as-error
C#: Add option to treat warnings as errors
2 parents 46c8f8c + 8642e97 commit 024efda

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

.github/workflows/linux_builds.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ jobs:
176176
if: matrix.build-mono
177177
run: |
178178
dotnet --info
179-
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=linuxbsd
179+
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=linuxbsd --werror
180180
181181
- name: Prepare artifact
182182
if: matrix.artifact

modules/mono/build_scripts/build_assemblies.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ def run_msbuild(tools: ToolsLocation, sln: str, chdir_to: str, msbuild_args: Opt
194194
return subprocess.call(args, env=msbuild_env, cwd=chdir_to)
195195

196196

197-
def build_godot_api(msbuild_tool, module_dir, output_dir, push_nupkgs_local, precision, no_deprecated):
197+
def build_godot_api(msbuild_tool, module_dir, output_dir, push_nupkgs_local, precision, no_deprecated, werror):
198198
target_filenames = [
199199
"GodotSharp.dll",
200200
"GodotSharp.pdb",
@@ -219,6 +219,8 @@ def build_godot_api(msbuild_tool, module_dir, output_dir, push_nupkgs_local, pre
219219
args += ["/p:GodotFloat64=true"]
220220
if no_deprecated:
221221
args += ["/p:GodotNoDeprecated=true"]
222+
if werror:
223+
args += ["/p:TreatWarningsAsErrors=true"]
222224

223225
sln = os.path.join(module_dir, "glue/GodotSharp/GodotSharp.sln")
224226
exit_code = run_msbuild(msbuild_tool, sln=sln, chdir_to=module_dir, msbuild_args=args)
@@ -339,13 +341,15 @@ def generate_sdk_package_versions():
339341

340342

341343
def build_all(
342-
msbuild_tool, module_dir, output_dir, godot_platform, dev_debug, push_nupkgs_local, precision, no_deprecated
344+
msbuild_tool, module_dir, output_dir, godot_platform, dev_debug, push_nupkgs_local, precision, no_deprecated, werror
343345
):
344346
# Generate SdkPackageVersions.props and VersionDocsUrl constant
345347
generate_sdk_package_versions()
346348

347349
# Godot API
348-
exit_code = build_godot_api(msbuild_tool, module_dir, output_dir, push_nupkgs_local, precision, no_deprecated)
350+
exit_code = build_godot_api(
351+
msbuild_tool, module_dir, output_dir, push_nupkgs_local, precision, no_deprecated, werror
352+
)
349353
if exit_code != 0:
350354
return exit_code
351355

@@ -402,6 +406,7 @@ def main():
402406
default=False,
403407
help="Build GodotSharp without using deprecated features. This is required, if the engine was built with 'deprecated=no'.",
404408
)
409+
parser.add_argument("--werror", action="store_true", default=False, help="Treat compiler warnings as errors.")
405410

406411
args = parser.parse_args()
407412

@@ -427,6 +432,7 @@ def main():
427432
push_nupkgs_local,
428433
args.precision,
429434
args.no_deprecated,
435+
args.werror,
430436
)
431437
sys.exit(exit_code)
432438

modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.types.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ namespace Godot.Bridge;
1212

1313
public static partial class ScriptManagerBridge
1414
{
15+
[SuppressMessage("Design", "CA1001", MessageId = "Types that own disposable fields should be disposable",
16+
Justification = "Not applicable. The class functions as a persistent singleton.")]
1517
private class ScriptTypeBiMap
1618
{
1719
public readonly ReaderWriterLockSlim ReadWriteLock = new(LockRecursionPolicy.SupportsRecursion);
@@ -66,7 +68,7 @@ private class PathScriptTypeBiMap
6668
private System.Collections.Generic.Dictionary<string, Type> _pathTypeMap = new();
6769
private System.Collections.Generic.Dictionary<Type, string> _typePathMap = new();
6870

69-
public IReadOnlyCollection<string> Paths => _pathTypeMap.Keys;
71+
public System.Collections.Generic.Dictionary<string, Type>.KeyCollection Paths => _pathTypeMap.Keys;
7072

7173
public void Add(string scriptPath, Type scriptType)
7274
{

0 commit comments

Comments
 (0)