public override Sharpmake.Optimization GetOptimization() { switch (Optimization) { case Optimization.Debug: return(Sharpmake.Optimization.Debug); case Optimization.Release: return(Sharpmake.Optimization.Release); default: throw new NotSupportedException("Optimization value " + Optimization.ToString()); } }
public void ToVcxprojProperties(XmlWriter writer) { if (AdditionalIncludeDirectories != null && AdditionalIncludeDirectories.Length > 0) { writer.WriteElementString("AdditionalIncludeDirectories", string.Join(";", AdditionalIncludeDirectories)); } if (AdditionalOptions != null && AdditionalOptions.Length > 0) { writer.WriteElementString("AdditionalOptions", string.Join(";", AdditionalOptions)); } if (AdditionalUsingDirectories != null && AdditionalUsingDirectories.Length > 0) { writer.WriteElementString("AdditionalUsingDirectories", string.Join(";", AdditionalUsingDirectories)); } if (!string.IsNullOrWhiteSpace(AssemblerListingLocation)) { writer.WriteElementString("AssemblerListingLocation", AssemblerListingLocation); } writer.WriteElementString("AssemblerOutput", AssemblerOutput.ToString()); if (BasicRuntimeChecks != RuntimeCheckType.Default) { writer.WriteElementString("BasicRuntimeChecks", BasicRuntimeChecks.ToString()); } if (!string.IsNullOrWhiteSpace("BrowseInformationFile")) { writer.WriteElementString("BrowseInformationFile", BrowseInformationFile); } writer.WriteElementString("BufferSecurityCheck", XmlConvert.ToString(BufferSecurityCheck)); writer.WriteElementString("CallingConvention", CallingConvention.ToString()); if (CompileAs != CLanguage.Default) { writer.WriteElementString("CompileAs", CompileAs.ToString()); } writer.WriteElementString("CompileAsManaged", CompileAsManagedToString(CompileAsManaged)); writer.WriteElementString("CreateHotpatchableImage", XmlConvert.ToString(CreateHotpatchableImage)); if (DebugInformationFormat != DebugInformationFormat.None) { writer.WriteElementString("DebugInformationFormat", DebugInformationFormat.ToString()); } writer.WriteElementString("DisableLanguageExtensions", XmlConvert.ToString(DisableLanguageExtensions)); WriteStringArray(writer, "DisableSpecificWarnings", SuppressedWarnings.Select(warn => warn.ToString(CultureInfo.InvariantCulture)).ToArray()); if (EnableEnhancedInstructionSet != EnhancedInstructionSet.None) { writer.WriteElementString("EnhancedInstructionSet", EnableEnhancedInstructionSet.ToString()); } writer.WriteElementString("EnableFiberSafeOptimizations", XmlConvert.ToString(EnableFiberSafeOptimizations)); writer.WriteElementString("CodeAnalysis", XmlConvert.ToString(CodeAnalysis)); if (ExceptionHandling != ExceptionHandlingType.NotSpecified) { writer.WriteElementString("ExceptionHandling", ExceptionHandling.ToString()); } writer.WriteElementString("ExpandAttributedSource", XmlConvert.ToString(ExpandAttributedSource)); writer.WriteElementString("FavorSizeOrSpeed", Favor.ToString()); writer.WriteElementString("FloatingPointExceptions", XmlConvert.ToString(FloatingPointExceptions)); writer.WriteElementString("FloatingPointModel", FloatingPointModel.ToString()); writer.WriteElementString("ForceConformanceInForLoopScope", XmlConvert.ToString(ForceConformanceInForLoopScope)); WriteStringArray(writer, "ForcedUsingFiles", ForcedUsingFiles); writer.WriteElementString("FunctionLevelLinking", XmlConvert.ToString(FunctionLevelLinking)); writer.WriteElementString("GenerateXMLDocumentationFiles", XmlConvert.ToString(GenerateXMLDocumentationFiles)); writer.WriteElementString("IgnoreStandardIncludePath", XmlConvert.ToString(IgnoreStandardIncludePath)); if (InlineFunctionExpansion != InlineExpansion.Default) { writer.WriteElementString("InlineFunctionExpansion", InlineFunctionExpansion.ToString()); } writer.WriteElementString("IntrinsicFunctions", XmlConvert.ToString(IntrinsicFunctions)); writer.WriteElementString("MinimalRebuild", XmlConvert.ToString(MinimalRebuild)); writer.WriteElementString("MultiProcessorCompilation", XmlConvert.ToString(MultiProcessorCompilation)); writer.WriteElementString("OmitDefaultLibName", XmlConvert.ToString(OmitDefaultLibName)); writer.WriteElementString("OmitFramePointers", XmlConvert.ToString(OmitFramePointers)); writer.WriteElementString("OpenMPSupport", XmlConvert.ToString(OpenMPSupport)); writer.WriteElementString("Optimization", Optimization.ToString()); WriteStringArray(writer, "PreprocessorDefinitions", Defines); if (ProcessorNumber.HasValue) { writer.WriteElementString("ProcessorNumber", ProcessorNumber.Value.ToString(CultureInfo.InvariantCulture)); } writer.WriteElementString("RuntimeLibrary", RuntimeLibrary.ToString()); writer.WriteElementString("RuntimeTypeInfo", XmlConvert.ToString(RuntimeTypeInfo)); writer.WriteElementString("SmallerTypeCheck", XmlConvert.ToString(SmallerTypeCheck)); writer.WriteElementString("StringPooling", XmlConvert.ToString(StringPooling)); if (StructMemberAlignment.HasValue) { writer.WriteElementString("StructMemberAlignment", StructMemberAlignment.Value.ToString(CultureInfo.InvariantCulture)); } writer.WriteElementString("AllWarningsAsError", XmlConvert.ToString(AllWarningsAsError)); WriteStringArray(writer, "SpecificWarningsAsError", SpecificWarningsAsError.Select(warn => warn.ToString(CultureInfo.InvariantCulture)).ToArray()); writer.WriteElementString("TreatWCharTAsBuiltInType", XmlConvert.ToString(TreatWCharTAsBuiltInType)); writer.WriteElementString("UndefineAllPreprocessorDefinitions", XmlConvert.ToString(UndefineAllPreprocessorDefinitions)); WriteStringArray(writer, "UndefinePreprocessorDefinitions", UndefinePreprocessorDefinitions); writer.WriteElementString("WarningLevel", WarningLevelToString(WarningLevel)); writer.WriteElementString("WholeProgramOptimization", XmlConvert.ToString(WholeProgramOptimization)); writer.WriteElementString("ProgramDataBaseFileName", PDBFileName); }
/// <summary> /// Calls the API with the source file as post data. /// </summary> /// <param name="source">The content of the source file.</param> /// <returns>The Xml response from the Google API.</returns> private static XmlDocument CallApi(string source, Optimization optimization = Optimization.SIMPLE_OPTIMIZATIONS) { using (WebClient client = new WebClient()) { client.Headers.Add("content-type", "application/x-www-form-urlencoded"); string data = string.Format(PostData, HttpUtility.UrlEncode(source), optimization.ToString()); string result = client.UploadString(ApiEndpoint, data); XmlDocument doc = new XmlDocument(); doc.LoadXml(result); return(doc); } }