private static void AddSettingsForCompilerToolNMake(CompilerSettings settings, dynamic nMakeTool) { var additionalOptions = GetSettingsFromAdditionalOptionsNMake(nMakeTool); string prePro = nMakeTool.PreprocessorDefinitions ?? ""; if (settings.InheritPreprocessorDefinitions) { settings.preprocessorDefinitions += prePro + ";" + additionalOptions.Item1 + ";"; } string additionalDirs = nMakeTool.IncludeSearchPath ?? ""; if (settings.InheritAdditionalIncludeDirectories) { settings.additionalIncludeDirectories += additionalDirs + ";" + additionalOptions.Item2 + ";"; } string forcedIncludes = nMakeTool.ForcedIncludes ?? ""; if (settings.InheritForcedIncludeFiles) { settings.forcedIncludeFiles += forcedIncludes + ";" + additionalOptions.Item3 + ";"; } }
/// <summary> /// Gets current Settings for an VCProject. /// Reads out Settings of the entry project. /// 1. Main Project Settings /// 2. Property Sheet Settings of current project. /// </summary> /// <param name="Project"></param> /// <param name="ActiveSetting">Active Setting Debug/Release ...</param> /// <param name="settings"></param> /// <returns>IncludeDirs and PreprocessorDefines</returns> private static void AddSettingsFromVCProject(CompilerSettings settings, dynamic Project, string ActiveSetting) { //Projects can have there settings in a PropertySheet or Tools Collection. dynamic CollectionOfConfigurations = Project.Configurations; //Extract Config from Collection, with Name stored in ActiveSetting dynamic Configuration = CollectionOfConfigurations.Item(ActiveSetting); //1st collect Tool Data from Project Setting! ***************************************************** dynamic Tools = Configuration.Tools; try { //Get VCCLCompilerTool dynamic CompilerTool = Tools.Item("VCCLCompilerTool"); if (CompilerTool != null) { AddSettingsForCompilerTool(settings, CompilerTool); } } catch { } try { dynamic nMakeTool = Tools.Item("VCNMakeTool"); if (nMakeTool != null) { AddSettingsForCompilerToolNMake(settings, nMakeTool); } } catch { } //2nd collect Tool Data from PropertySheets! ***************************************************** //PropertySheets Collection dynamic CollectionOfPropertySheets = Configuration.PropertySheets; //Count Sheets... int SheetCount = CollectionOfPropertySheets.Count; for (int i = 0; i < SheetCount; i++) { try { //Get Sheet from Collection dynamic PropertySheet = CollectionOfPropertySheets.Item(i + 1); //Get Tools dynamic CollectionOfTools = PropertySheet.Tools; //Get VCCLCompilerTool dynamic CompilerTool = CollectionOfTools.Item("VCCLCompilerTool"); if (CompilerTool != null) { AddSettingsForCompilerTool(settings, CompilerTool); } dynamic nMakeTool = CollectionOfTools.Item("VCNMakeTool"); if (nMakeTool != null) { AddSettingsForCompilerToolNMake(settings, nMakeTool); } } catch { } } }
public CompilerSettings(ProjectItem prjItem) { dynamic vcProject = prjItem.ContainingProject.Object; dynamic file = prjItem.Object; var activeConf = prjItem.ContainingProject.ConfigurationManager.ActiveConfiguration; var activeSetting = activeConf.ConfigurationName + "|" + activeConf.PlatformName; CompilerSettings.AddSettingsFromVCFile(this, file, activeSetting); CompilerSettings.AddSettingsFromVCProject(this, vcProject, activeSetting); this.additionalIncludeDirectories = CompilerSettings.ExecuteMacroProject(vcProject, activeSetting, this.additionalIncludeDirectories); this.preprocessorDefinitions = CompilerSettings.ExecuteMacroProject(vcProject, activeSetting, this.preprocessorDefinitions); this.forcedIncludeFiles = CompilerSettings.ExecuteMacroProject(vcProject, activeSetting, this.forcedIncludeFiles); }
private static void AddSettingsForCompilerTool(CompilerSettings settings, dynamic compilerTool) { string prePro = compilerTool.PreprocessorDefinitions; if (prePro != null && settings.InheritPreprocessorDefinitions) settings.preprocessorDefinitions += prePro + ";"; string additionalDirs = compilerTool.AdditionalIncludeDirectories; if (additionalDirs != null && settings.InheritAdditionalIncludeDirectories) settings.additionalIncludeDirectories += additionalDirs + ";"; string forcedIncludes = compilerTool.ForcedIncludeFiles; if (forcedIncludes != null && settings.InheritForcedIncludeFiles) settings.forcedIncludeFiles += forcedIncludes + ";"; }
/// <summary> /// Gets current Settings for an VCFile. /// </summary> /// <returns>IncludeDirs and PreprocessorDefines</returns> private static void AddSettingsFromVCFile(CompilerSettings settings, dynamic File, string ActiveSetting) { //Extract Config from Collection, with Name stored in ActiveSetting dynamic CollectionOfFileConfigurations = File.FileConfigurations; dynamic FileConfiguration = CollectionOfFileConfigurations.Item(ActiveSetting); try { //Get Tool dynamic CompilerTool = FileConfiguration.Tool; if (CompilerTool != null) { AddSettingsForCompilerTool(settings, CompilerTool); } } catch { } }
private static void AddSettingsForCompilerTool(CompilerSettings settings, dynamic compilerTool) { string prePro = compilerTool.PreprocessorDefinitions; if (prePro != null && settings.InheritPreprocessorDefinitions) { settings.preprocessorDefinitions += prePro + ";"; } string additionalDirs = compilerTool.AdditionalIncludeDirectories; if (additionalDirs != null && settings.InheritAdditionalIncludeDirectories) { settings.additionalIncludeDirectories += additionalDirs + ";"; } string forcedIncludes = compilerTool.ForcedIncludeFiles; if (forcedIncludes != null && settings.InheritForcedIncludeFiles) { settings.forcedIncludeFiles += forcedIncludes + ";"; } }
private static void AddSettingsForCompilerToolNMake(CompilerSettings settings, dynamic nMakeTool) { var additionalOptions = GetSettingsFromAdditionalOptionsNMake(nMakeTool); string prePro = nMakeTool.PreprocessorDefinitions ?? ""; if (settings.InheritPreprocessorDefinitions) settings.preprocessorDefinitions += prePro + ";" + additionalOptions.Item1 + ";"; string additionalDirs = nMakeTool.IncludeSearchPath ?? ""; if (settings.InheritAdditionalIncludeDirectories) settings.additionalIncludeDirectories += additionalDirs + ";" + additionalOptions.Item2 + ";"; string forcedIncludes = nMakeTool.ForcedIncludes ?? ""; if (settings.InheritForcedIncludeFiles) settings.forcedIncludeFiles += forcedIncludes + ";" + additionalOptions.Item3 + ";"; }
/// <summary> /// Gets current Settings for an VCProject. /// Reads out Settings of the entry project. /// 1. Main Project Settings /// 2. Property Sheet Settings of current project. /// </summary> /// <param name="Project"></param> /// <param name="ActiveSetting">Active Setting Debug/Release ...</param> /// <param name="settings"></param> /// <returns>IncludeDirs and PreprocessorDefines</returns> private static void AddSettingsFromVCProject(CompilerSettings settings, dynamic Project, string ActiveSetting) { //Projects can have there settings in a PropertySheet or Tools Collection. dynamic CollectionOfConfigurations = Project.Configurations; //Extract Config from Collection, with Name stored in ActiveSetting dynamic Configuration = CollectionOfConfigurations.Item(ActiveSetting); //1st collect Tool Data from Project Setting! ***************************************************** dynamic Tools = Configuration.Tools; try { //Get VCCLCompilerTool dynamic CompilerTool = Tools.Item("VCCLCompilerTool"); if (CompilerTool != null) AddSettingsForCompilerTool(settings, CompilerTool); } catch { } try { dynamic nMakeTool = Tools.Item("VCNMakeTool"); if (nMakeTool != null) AddSettingsForCompilerToolNMake(settings, nMakeTool); } catch { } //2nd collect Tool Data from PropertySheets! ***************************************************** //PropertySheets Collection dynamic CollectionOfPropertySheets = Configuration.PropertySheets; //Count Sheets... int SheetCount = CollectionOfPropertySheets.Count; for (int i = 0; i < SheetCount; i++) { try { //Get Sheet from Collection dynamic PropertySheet = CollectionOfPropertySheets.Item(i + 1); //Get Tools dynamic CollectionOfTools = PropertySheet.Tools; //Get VCCLCompilerTool dynamic CompilerTool = CollectionOfTools.Item("VCCLCompilerTool"); if (CompilerTool != null) AddSettingsForCompilerTool(settings, CompilerTool); dynamic nMakeTool = CollectionOfTools.Item("VCNMakeTool"); if (nMakeTool != null) AddSettingsForCompilerToolNMake(settings, nMakeTool); } catch { } } }
/// <summary> /// Gets current Settings for an VCFile. /// </summary> /// <returns>IncludeDirs and PreprocessorDefines</returns> private static void AddSettingsFromVCFile(CompilerSettings settings, dynamic File, string ActiveSetting) { //Extract Config from Collection, with Name stored in ActiveSetting dynamic CollectionOfFileConfigurations = File.FileConfigurations; dynamic FileConfiguration = CollectionOfFileConfigurations.Item(ActiveSetting); try { //Get Tool dynamic CompilerTool = FileConfiguration.Tool; if (CompilerTool != null) AddSettingsForCompilerTool(settings, CompilerTool); } catch { } }