Merge pull request #69 from oiltanker/master
CSharp preprocessor definitions
This commit is contained in:
@@ -16,7 +16,6 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
class CsScriptBase : AssemblyLoadContext
|
class CsScriptBase : AssemblyLoadContext
|
||||||
{
|
{
|
||||||
public static readonly List<string> PreprocessingSymbols = new List<string>();
|
|
||||||
|
|
||||||
public const string NET_ONE_TIME_SCRIPT_ASSEMBLY = "NetOneTimeScriptAssembly";
|
public const string NET_ONE_TIME_SCRIPT_ASSEMBLY = "NetOneTimeScriptAssembly";
|
||||||
public const string NET_SCRIPT_ASSEMBLY = "NetScriptAssembly";
|
public const string NET_SCRIPT_ASSEMBLY = "NetScriptAssembly";
|
||||||
@@ -27,15 +26,11 @@ namespace Barotrauma
|
|||||||
{ NET_ONE_TIME_SCRIPT_ASSEMBLY, 0}
|
{ NET_ONE_TIME_SCRIPT_ASSEMBLY, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
public CsScriptBase() : base(isCollectible: true) { }
|
public CSharpParseOptions ParseOptions { get; protected set; }
|
||||||
|
|
||||||
static CsScriptBase()
|
public CsScriptBase() : base(isCollectible: true) {
|
||||||
{
|
ParseOptions = CSharpParseOptions.Default
|
||||||
#if SERVER
|
.WithPreprocessorSymbols(new[] { LuaCsSetup.IsServer ? "SERVER" : (LuaCsSetup.IsClient ? "CLIENT" : "UNDEFINED") });
|
||||||
PreprocessingSymbols.Add("SERVER");
|
|
||||||
#else
|
|
||||||
PreprocessingSymbols.Add("CLIENT");
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SyntaxTree AssemblyInfoSyntaxTree(string asmName = null)
|
public static SyntaxTree AssemblyInfoSyntaxTree(string asmName = null)
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
foreach (var file in src)
|
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
|
var error = CsScriptFilter.FilterSyntaxTree(tree as CSharpSyntaxTree); // Check file content for prohibited stuff
|
||||||
if (error != null) throw new Exception(error);
|
if (error != null) throw new Exception(error);
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ namespace Barotrauma
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
code = ToOneTimeScript(code);
|
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);
|
var compilation = CSharpCompilation.Create(NET_ONE_TIME_SCRIPT_ASSEMBLY, new[] { AssemblyInfoSyntaxTree(NET_ONE_TIME_SCRIPT_ASSEMBLY), syntaxTree }, defaultReferences, compileOptions);
|
||||||
|
|
||||||
Assembly assembly = null;
|
Assembly assembly = null;
|
||||||
|
|||||||
Reference in New Issue
Block a user