diff --git a/Source/Engine/Scripting/Scripting.Build.cs b/Source/Engine/Scripting/Scripting.Build.cs index 21f4477d0..10fc2aff9 100644 --- a/Source/Engine/Scripting/Scripting.Build.cs +++ b/Source/Engine/Scripting/Scripting.Build.cs @@ -17,10 +17,29 @@ public class Scripting : EngineModule { if (EngineConfiguration.WithDotNet(options)) { + void AddFrameworkDefines(string template, int major, int latestMinor) + { + for (int minor = latestMinor; minor >= 0; minor--) + { + options.ScriptingAPI.Defines.Add(string.Format(template, major, minor)); + options.ScriptingAPI.Defines.Add(string.Format($"{template}_OR_GREATER", major, minor)); + } + } + // .NET options.PrivateDependencies.Add("nethost"); options.ScriptingAPI.Defines.Add("USE_NETCORE"); + // .NET SDK + AddFrameworkDefines("NET{0}_{1}", 7, 0); // "NET7_0" and "NET7_0_OR_GREATER" + AddFrameworkDefines("NET{0}_{1}", 6, 0); + AddFrameworkDefines("NET{0}_{1}", 5, 0); + options.ScriptingAPI.Defines.Add("NET"); + AddFrameworkDefines("NETCOREAPP{0}_{1}", 3, 1); // "NETCOREAPP3_1" and "NETCOREAPP3_1_OR_GREATER" + AddFrameworkDefines("NETCOREAPP{0}_{1}", 2, 2); + AddFrameworkDefines("NETCOREAPP{0}_{1}", 1, 1); + options.ScriptingAPI.Defines.Add("NETCOREAPP"); + if (options.Target is EngineTarget engineTarget && engineTarget.UseSeparateMainExecutable(options)) { // Build target doesn't support linking again main executable (eg. Linux) thus additional shared library is used for the engine (eg. libFlaxEditor.so)