Add USE_AOT define to C# when compiling with AOT-enabled
This commit is contained in:
@@ -129,8 +129,6 @@ API_ENUM() enum class BuildPlatform
|
||||
iOSARM64 = 14,
|
||||
};
|
||||
|
||||
extern FLAXENGINE_API const Char* ToString(const BuildPlatform platform);
|
||||
|
||||
/// <summary>
|
||||
/// Game build configuration modes.
|
||||
/// </summary>
|
||||
@@ -152,8 +150,6 @@ API_ENUM() enum class BuildConfiguration
|
||||
Release = 2,
|
||||
};
|
||||
|
||||
extern FLAXENGINE_API const Char* ToString(const BuildConfiguration configuration);
|
||||
|
||||
/// <summary>
|
||||
/// .NET Ahead of Time Compilation (AOT) modes.
|
||||
/// </summary>
|
||||
@@ -180,6 +176,10 @@ enum class DotNetAOTModes
|
||||
MonoAOTStatic,
|
||||
};
|
||||
|
||||
extern FLAXENGINE_API const Char* ToString(const BuildPlatform platform);
|
||||
extern FLAXENGINE_API const Char* ToString(const BuildConfiguration configuration);
|
||||
extern FLAXENGINE_API const Char* ToString(const DotNetAOTModes mode);
|
||||
|
||||
#define BUILD_STEP_CANCEL_CHECK if (GameCooker::IsCancelRequested()) return true
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -149,7 +149,7 @@ const Char* ToString(const BuildPlatform platform)
|
||||
case BuildPlatform::iOSARM64:
|
||||
return TEXT("iOS ARM64");
|
||||
default:
|
||||
return TEXT("?");
|
||||
return TEXT("");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,7 +164,24 @@ const Char* ToString(const BuildConfiguration configuration)
|
||||
case BuildConfiguration::Release:
|
||||
return TEXT("Release");
|
||||
default:
|
||||
return TEXT("?");
|
||||
return TEXT("");
|
||||
}
|
||||
}
|
||||
|
||||
const Char* ToString(const DotNetAOTModes mode)
|
||||
{
|
||||
switch (mode)
|
||||
{
|
||||
case DotNetAOTModes::None:
|
||||
return TEXT("None");
|
||||
case DotNetAOTModes::ILC:
|
||||
return TEXT("ILC");
|
||||
case DotNetAOTModes::MonoAOTDynamic:
|
||||
return TEXT("MonoAOTDynamic");
|
||||
case DotNetAOTModes::MonoAOTStatic:
|
||||
return TEXT("MonoAOTStatic");
|
||||
default:
|
||||
return TEXT("");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -188,8 +188,8 @@ bool CompileScriptsStep::Perform(CookingData& data)
|
||||
LOG(Info, "Starting scripts compilation for game...");
|
||||
const String logFile = data.CacheDirectory / TEXT("CompileLog.txt");
|
||||
auto args = String::Format(
|
||||
TEXT("-log -logfile=\"{4}\" -build -mutex -buildtargets={0} -platform={1} -arch={2} -configuration={3}"),
|
||||
target, platform, architecture, configuration, logFile);
|
||||
TEXT("-log -logfile=\"{4}\" -build -mutex -buildtargets={0} -platform={1} -arch={2} -configuration={3} -aotMode={5}"),
|
||||
target, platform, architecture, configuration, logFile, ToString(data.Tools->UseAOT()));
|
||||
#if PLATFORM_WINDOWS
|
||||
if (data.Platform == BuildPlatform::LinuxX64)
|
||||
#elif PLATFORM_LINUX
|
||||
|
||||
@@ -58,22 +58,9 @@ bool PrecompileAssembliesStep::Perform(CookingData& data)
|
||||
const Char *platform, *architecture, *configuration = ::ToString(data.Configuration);
|
||||
data.GetBuildPlatformName(platform, architecture);
|
||||
const String logFile = data.CacheDirectory / TEXT("AotLog.txt");
|
||||
const Char* aotModeName = TEXT("");
|
||||
switch (aotMode)
|
||||
{
|
||||
case DotNetAOTModes::ILC:
|
||||
aotModeName = TEXT("ILC");
|
||||
break;
|
||||
case DotNetAOTModes::MonoAOTDynamic:
|
||||
aotModeName = TEXT("MonoAOTDynamic");
|
||||
break;
|
||||
case DotNetAOTModes::MonoAOTStatic:
|
||||
aotModeName = TEXT("MonoAOTStatic");
|
||||
break;
|
||||
}
|
||||
auto args = String::Format(
|
||||
TEXT("-log -logfile=\"{}\" -runDotNetAOT -mutex -platform={} -arch={} -configuration={} -aotMode={} -binaries=\"{}\" -intermediate=\"{}\""),
|
||||
logFile, platform, architecture, configuration, aotModeName, data.DataOutputPath, data.ManagedCodeOutputPath);
|
||||
logFile, platform, architecture, configuration, ToString(aotMode), data.DataOutputPath, data.ManagedCodeOutputPath);
|
||||
for (const String& define : data.CustomDefines)
|
||||
{
|
||||
args += TEXT(" -D");
|
||||
|
||||
@@ -76,6 +76,10 @@ namespace Flax.Build
|
||||
{
|
||||
options.ScriptingAPI.Defines.Add(GetCSharpBuildDefine(options.Configuration));
|
||||
options.ScriptingAPI.Defines.Add(GetCSharpPlatformDefine(options.Platform.Target));
|
||||
if ((options.Platform != null && !options.Platform.HasDynamicCodeExecutionSupport) || Configuration.AOTMode != DotNetAOTModes.None)
|
||||
{
|
||||
options.ScriptingAPI.Defines.Add("USE_AOT");
|
||||
}
|
||||
}
|
||||
|
||||
internal static string GetCSharpBuildDefine(TargetConfiguration configuration)
|
||||
|
||||
Reference in New Issue
Block a user