diff --git a/Source/Editor/Cooker/CookingData.h b/Source/Editor/Cooker/CookingData.h
index 487c796bf..95d508509 100644
--- a/Source/Editor/Cooker/CookingData.h
+++ b/Source/Editor/Cooker/CookingData.h
@@ -129,8 +129,6 @@ API_ENUM() enum class BuildPlatform
iOSARM64 = 14,
};
-extern FLAXENGINE_API const Char* ToString(const BuildPlatform platform);
-
///
/// Game build configuration modes.
///
@@ -152,8 +150,6 @@ API_ENUM() enum class BuildConfiguration
Release = 2,
};
-extern FLAXENGINE_API const Char* ToString(const BuildConfiguration configuration);
-
///
/// .NET Ahead of Time Compilation (AOT) modes.
///
@@ -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
///
diff --git a/Source/Editor/Cooker/GameCooker.cpp b/Source/Editor/Cooker/GameCooker.cpp
index f2aa6fc4a..ed6a21058 100644
--- a/Source/Editor/Cooker/GameCooker.cpp
+++ b/Source/Editor/Cooker/GameCooker.cpp
@@ -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("");
}
}
diff --git a/Source/Editor/Cooker/Steps/CompileScriptsStep.cpp b/Source/Editor/Cooker/Steps/CompileScriptsStep.cpp
index d12ee6a02..6a8408df5 100644
--- a/Source/Editor/Cooker/Steps/CompileScriptsStep.cpp
+++ b/Source/Editor/Cooker/Steps/CompileScriptsStep.cpp
@@ -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
diff --git a/Source/Editor/Cooker/Steps/PrecompileAssembliesStep.cpp b/Source/Editor/Cooker/Steps/PrecompileAssembliesStep.cpp
index a23ebcdfb..0bc6e3461 100644
--- a/Source/Editor/Cooker/Steps/PrecompileAssembliesStep.cpp
+++ b/Source/Editor/Cooker/Steps/PrecompileAssembliesStep.cpp
@@ -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");
diff --git a/Source/Tools/Flax.Build/Build/Module.cs b/Source/Tools/Flax.Build/Build/Module.cs
index e00fa1362..e1394193b 100644
--- a/Source/Tools/Flax.Build/Build/Module.cs
+++ b/Source/Tools/Flax.Build/Build/Module.cs
@@ -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)