From 6a23dece355fb245cfd14edea58025a6dbbac19a Mon Sep 17 00:00:00 2001 From: Oiltanker Date: Mon, 25 Apr 2022 17:55:53 +0300 Subject: [PATCH] CSharp preprocessor definitions --- .../SharedSource/LuaCs/Cs/CsScriptBase.cs | 13 ++++--------- .../SharedSource/LuaCs/Cs/CsScriptLoader.cs | 2 +- .../SharedSource/LuaCs/Cs/CsScriptRunner.cs | 2 +- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptBase.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptBase.cs index d3e518247..4ddf8da24 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptBase.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptBase.cs @@ -16,7 +16,6 @@ namespace Barotrauma { class CsScriptBase : AssemblyLoadContext { - public static readonly List PreprocessingSymbols = new List(); public const string NET_ONE_TIME_SCRIPT_ASSEMBLY = "NetOneTimeScriptAssembly"; public const string NET_SCRIPT_ASSEMBLY = "NetScriptAssembly"; @@ -27,15 +26,11 @@ namespace Barotrauma { NET_ONE_TIME_SCRIPT_ASSEMBLY, 0} }; - public CsScriptBase() : base(isCollectible: true) { } + public CSharpParseOptions ParseOptions { get; protected set; } - static CsScriptBase() - { -#if SERVER - PreprocessingSymbols.Add("SERVER"); -#else - PreprocessingSymbols.Add("CLIENT"); -#endif + public CsScriptBase() : base(isCollectible: true) { + ParseOptions = CSharpParseOptions.Default + .WithPreprocessorSymbols(new[] { LuaCsSetup.IsServer ? "SERVER" : (LuaCsSetup.IsClient ? "CLIENT" : "UNDEFINED") }); } public static SyntaxTree AssemblyInfoSyntaxTree(string asmName = null) diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptLoader.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptLoader.cs index a6893a251..81d5d79c9 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptLoader.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptLoader.cs @@ -69,7 +69,7 @@ namespace Barotrauma { foreach (var file in src) { - var tree = SyntaxFactory.ParseSyntaxTree(File.ReadAllText(file), CSharpParseOptions.Default.WithPreprocessorSymbols(PreprocessingSymbols), file); + var tree = SyntaxFactory.ParseSyntaxTree(File.ReadAllText(file), ParseOptions, file); var error = CsScriptFilter.FilterSyntaxTree(tree as CSharpSyntaxTree); // Check file content for prohibited stuff if (error != null) throw new Exception(error); diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptRunner.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptRunner.cs index 069a0bf49..afbd52b62 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptRunner.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptRunner.cs @@ -55,7 +55,7 @@ namespace Barotrauma try { code = ToOneTimeScript(code); - var syntaxTree = SyntaxFactory.ParseSyntaxTree(code, CSharpParseOptions.Default.WithPreprocessorSymbols(PreprocessingSymbols)); + var syntaxTree = SyntaxFactory.ParseSyntaxTree(code, ParseOptions); var compilation = CSharpCompilation.Create(NET_ONE_TIME_SCRIPT_ASSEMBLY, new[] { AssemblyInfoSyntaxTree(NET_ONE_TIME_SCRIPT_ASSEMBLY), syntaxTree }, defaultReferences, compileOptions); Assembly assembly = null;