diff --git a/Sharpmake.Generators/FastBuild/Bff.Template.cs b/Sharpmake.Generators/FastBuild/Bff.Template.cs index abd22b945..e2dd6ed8d 100644 --- a/Sharpmake.Generators/FastBuild/Bff.Template.cs +++ b/Sharpmake.Generators/FastBuild/Bff.Template.cs @@ -411,6 +411,7 @@ public static class ConfigurationFile + ' /errorReport:queue' // Character Set // --------------------------- + + ' [cmdLineOptions.TranslateIncludes]' + ' [cmdLineOptions.CharacterSet]' // Additional compiler options //-------------------------- diff --git a/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs b/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs index c74a04d04..e20264682 100644 --- a/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs +++ b/Sharpmake.Generators/VisualStudio/ProjectOptionsGenerator.cs @@ -498,6 +498,11 @@ private void GenerateCompilerOptions(IGenerationContext context, ProjectOptionsG Options.Option(Options.Vc.General.DiagnosticsFormat.ColumnInfo, () => { context.Options["DiagnosticsFormat"] = "Column"; context.CommandLineOptions["DiagnosticsFormat"] = "/diagnostics:column"; }) ); + context.SelectOption + ( + Options.Option(Options.Vc.General.TreatAngleIncludeAsExternal.Enable, () => { context.Options["TreatAngleIncludeAsExternal"] = "true"; context.CommandLineOptions["TreatAngleIncludeAsExternal"] = "/external:anglebrackets"; }), + Options.Option(Options.Vc.General.TreatAngleIncludeAsExternal.Disable, () => { context.Options["TreatAngleIncludeAsExternal"] = FileGeneratorUtilities.RemoveLineTag; context.CommandLineOptions["TreatAngleIncludeAsExternal"] = FileGeneratorUtilities.RemoveLineTag; }) + ); context.Options["TrackFileAccess"] = FileGeneratorUtilities.RemoveLineTag; diff --git a/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs b/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs index b8f7ac61b..b825b737b 100644 --- a/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs +++ b/Sharpmake.Platforms/Sharpmake.CommonPlatforms/BasePlatform.Vcxproj.Template.cs @@ -175,6 +175,7 @@ public abstract partial class BasePlatform [options.ConfigurationType] [options.UseDebugLibraries] [options.PreferredToolArchitecture] + [options.TranslateIncludes] [options.CharacterSet] [options.UseOfMfc] [clrSupport] diff --git a/Sharpmake/Options.Vc.cs b/Sharpmake/Options.Vc.cs index 97165fabf..d1aa2a555 100644 --- a/Sharpmake/Options.Vc.cs +++ b/Sharpmake/Options.Vc.cs @@ -87,6 +87,19 @@ public enum WindowsTargetPlatformVersion Latest, // latest available in host machine } + /// + /// Translate Includes to Imports + /// + /// + /// Enables the compiler to translate #include directives into import directives for the available header units. (/translateInclude) + /// + public enum TranslateIncludes + { + Enable, + [Default] + Disable + } + /// /// Character Set ///