Example #1
0
        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 + ";";
            }
        }
Example #2
0
        /// <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 { }
            }
        }
Example #3
0
        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);
        }
Example #4
0
        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 + ";";
        }
Example #5
0
        /// <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 { }
        }
Example #6
0
        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 + ";";
            }
        }
Example #7
0
        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 + ";";
        }
Example #8
0
        /// <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 { }
              }
        }
Example #9
0
        /// <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 { }
        }