/// <summary> /// Returns the human-readable name of the given compiler /// </summary> /// <param name="Compiler">The compiler value</param> /// <returns>Name of the compiler</returns> public static string GetCompilerName(WindowsCompiler Compiler) { switch (Compiler) { case WindowsCompiler.VisualStudio2015: return("Visual Studio 2015"); case WindowsCompiler.VisualStudio2017: return("Visual Studio 2017"); default: return(Compiler.ToString()); } }
private ToolchainInfo GenerateToolchainInfo(CppCompileEnvironment CompileEnvironment) { ToolchainInfo ToolchainInfo = new ToolchainInfo { CppStandard = CompileEnvironment.CppStandard, Configuration = CompileEnvironment.Configuration.ToString(), bEnableExceptions = CompileEnvironment.bEnableExceptions, bOptimizeCode = CompileEnvironment.bOptimizeCode, bUseInlining = CompileEnvironment.bUseInlining, bUseUnity = CompileEnvironment.bUseUnity, bCreateDebugInfo = CompileEnvironment.bCreateDebugInfo, bIsBuildingLibrary = CompileEnvironment.bIsBuildingLibrary, bUseAVX = CompileEnvironment.bUseAVX, bIsBuildingDLL = CompileEnvironment.bIsBuildingDLL, bUseDebugCRT = CompileEnvironment.bUseDebugCRT, bUseRTTI = CompileEnvironment.bUseRTTI, bUseStaticCRT = CompileEnvironment.bUseStaticCRT, PrecompiledHeaderAction = CompileEnvironment.PrecompiledHeaderAction.ToString(), PrecompiledHeaderFile = CompileEnvironment.PrecompiledHeaderFile?.ToString(), ForceIncludeFiles = CompileEnvironment.ForceIncludeFiles.Select(Item => Item.ToString()).ToList() }; if (CurrentTarget.Platform.IsInGroup(UnrealPlatformGroup.Windows)) { ToolchainInfo.Architecture = WindowsExports.GetArchitectureSubpath(CurrentTarget.Rules.WindowsPlatform.Architecture); WindowsCompiler WindowsPlatformCompiler = CurrentTarget.Rules.WindowsPlatform.Compiler; ToolchainInfo.bStrictConformanceMode = WindowsPlatformCompiler >= WindowsCompiler.VisualStudio2017 && CurrentTarget.Rules.WindowsPlatform.bStrictConformanceMode; ToolchainInfo.Compiler = WindowsPlatformCompiler.ToString(); } else { string PlatformName = $"{CurrentTarget.Platform}Platform"; object Value = typeof(ReadOnlyTargetRules).GetProperty(PlatformName)?.GetValue(CurrentTarget.Rules); object CompilerField = Value?.GetType().GetProperty("Compiler")?.GetValue(Value); if (CompilerField != null) { ToolchainInfo.Compiler = CompilerField.ToString(); } } return(ToolchainInfo); }
/// <summary> /// Returns the human-readable name of the given compiler /// </summary> /// <param name="Compiler">The compiler value</param> /// <returns>Name of the compiler</returns> public static string GetCompilerName(WindowsCompiler Compiler) { switch(Compiler) { case WindowsCompiler.VisualStudio2013: return "Visual Studio 2013"; case WindowsCompiler.VisualStudio2015: return "Visual Studio 2015"; case WindowsCompiler.VisualStudio2017: return "Visual Studio \"15\""; default: return Compiler.ToString(); } }