diff --git a/Source/Tools/Flax.Build/Build/NativeCpp/CompileEnvironment.cs b/Source/Tools/Flax.Build/Build/NativeCpp/CompileEnvironment.cs
index b1159db1c..9939cea53 100644
--- a/Source/Tools/Flax.Build/Build/NativeCpp/CompileEnvironment.cs
+++ b/Source/Tools/Flax.Build/Build/NativeCpp/CompileEnvironment.cs
@@ -56,6 +56,11 @@ namespace Flax.Build.NativeCpp
///
public bool Optimization = false;
+ ///
+ /// Enables the whole program optimization.
+ ///
+ public bool WholeProgramOptimization = false;
+
///
/// Enables functions level linking support.
///
@@ -131,6 +136,7 @@ namespace Flax.Build.NativeCpp
RuntimeTypeInfo = RuntimeTypeInfo,
Inlining = Inlining,
Optimization = Optimization,
+ WholeProgramOptimization = WholeProgramOptimization,
FunctionLevelLinking = FunctionLevelLinking,
DebugInformation = DebugInformation,
UseDebugCRT = UseDebugCRT,
diff --git a/Source/Tools/Flax.Build/Platforms/Windows/WindowsToolchainBase.cs b/Source/Tools/Flax.Build/Platforms/Windows/WindowsToolchainBase.cs
index 0917b5027..79581e391 100644
--- a/Source/Tools/Flax.Build/Platforms/Windows/WindowsToolchainBase.cs
+++ b/Source/Tools/Flax.Build/Platforms/Windows/WindowsToolchainBase.cs
@@ -467,8 +467,11 @@ namespace Flax.Build.Platforms
// Frame-Pointer Omission
commonArgs.Add("/Oy");
- // Whole Program Optimization
- commonArgs.Add("/GL");
+ if (compileEnvironment.WholeProgramOptimization)
+ {
+ // Whole Program Optimization
+ commonArgs.Add("/GL");
+ }
}
else
{