示例#1
0
        /// <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());
            }
        }
示例#2
0
        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();
			}
		}