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)