Exemplo n.º 1
0
        public CompilationDatabaseSettings GetMostCurrentCdbForSolution(string solutionPath)
        {
            CompilationDatabaseSettings result = null;

            try
            {
                List <CompilationDatabaseSettings> candidates = GetCdbsForSolution(solutionPath);

                System.DateTime youngest = System.DateTime.MinValue;
                foreach (CompilationDatabaseSettings cdb in candidates)
                {
                    if (cdb.LastUpdated >= youngest)
                    {
                        youngest = cdb.LastUpdated;
                        result   = cdb;
                    }
                }
            }
            catch (Exception e)
            {
                Logging.Logging.LogError("Failed to find cdb: " + e.Message);
            }

            return(result);
        }
Exemplo n.º 2
0
 public void AppendOrUpdate(CompilationDatabaseSettings cdb)
 {
     if (_settings.Exists(item => item.Name == cdb.Name && item.Directory == cdb.Directory) == false)
     {
         _settings.Add(cdb);
     }
     else
     {
         int idx = _settings.FindIndex(item => item.Name == cdb.Name && item.Directory == cdb.Directory);
         _settings[idx] = cdb;
     }
 }
Exemplo n.º 3
0
        private CreationResult CreateCdb()
        {
            CreationResult result = new CreationResult();

            result._cdbSettings  = null;
            result._cdbDirectory = "";
            result._cdbName      = "";

            Logging.Logging.LogInfo("Starting to create CDB");

            SolutionParser.CompilationDatabaseSettings cdbSettings = null;

            try
            {
                System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
                watch.Start();
                CreateCompilationDatabase();
                watch.Stop();

                Logging.Logging.LogInfo("Finished creating CDB, elapsed time: " + watch.ElapsedMilliseconds.ToString() + " ms");

                cdbSettings                                   = new CompilationDatabaseSettings();
                cdbSettings.Name                              = _fileName;
                cdbSettings.Directory                         = _targetDir;
                cdbSettings.SourceProject                     = _solutionDir;
                cdbSettings.LastUpdated                       = DateTime.Now;
                cdbSettings.ConfigurationName                 = _configurationName;
                cdbSettings.PlatformName                      = _platformName;
                cdbSettings.AdditionalClangOptions            = _additionalClangOptions;
                cdbSettings.NonSystemIncludesUseAngleBrackets = _nonSystemIncludesUseAngleBrackets;

                cdbSettings.IncludedProjects = new List <string>();
                foreach (EnvDTE.Project p in _projects)
                {
                    cdbSettings.IncludedProjects.Add(p.Name);
                }
            }
            catch (Exception e)
            {
                Logging.Logging.LogError("Failed to create CDB: " + e.Message);
            }

            result._cdbSettings  = cdbSettings;
            result._cdbDirectory = _targetDir;
            result._cdbName      = _fileName;

            Logging.Logging.LogInfo("Done creating CDB");

            return(result);
        }
Exemplo n.º 4
0
        public bool CheckCdbForSolutionExists(string solutionPath)
        {
            try
            {
                CompilationDatabaseSettings cdb = GetCdbForSolution(solutionPath);
                if (cdb != null && System.IO.File.Exists(cdb.Directory + "\\" + cdb.Name + ".json"))
                {
                    return(true);
                }
            }
            catch (Exception e)
            {
                Logging.Logging.LogError("Failed to check cdb: " + e.Message);
            }

            return(false);
        }
Exemplo n.º 5
0
        public void Refresh()
        {
            List <CompilationDatabaseSettings> cdbs = new List <CompilationDatabaseSettings>();

            try
            {
                string data = Utility.DataUtility.GetInstance().GetData();
                cdbs = CompilationDatabaseSettings.ParseCdbsMetaData(data);

                foreach (CompilationDatabaseSettings cdb in cdbs)
                {
                    cdb.CheckCdbExists();
                }
            }
            catch (Exception e)
            {
                Logging.Logging.LogError("Failed to aquire data: " + e.Message);
            }

            _settings = cdbs;
        }