Пример #1
0
        public DubSolution LoadAsSolution(string file, IProgressMonitor monitor)
        {
            var sln = new DubSolution {
                FileName      = file,
                BaseDirectory = new FilePath(file).ParentDirectory
            };

            var defaultPackage = LoadProject(file, sln, monitor, LoadFlags.None);

            sln.StartupItem = defaultPackage;

            LoadSubProjects(defaultPackage, monitor);

            // Populate project configurations to solution
            if (defaultPackage.Configurations.Count == 0)
            {
                sln.CreateDefaultConfigurations();
            }
            else
            {
                foreach (var prjCfg in defaultPackage.Configurations)
                {
                    sln.AddConfiguration(prjCfg.Name, false);
                }
            }

            // Apply subConfigurations
            var subConfigurations = new Dictionary <string, string>(defaultPackage.CommonBuildSettings.subConfigurations);

            foreach (var item in sln.Items)
            {
                var prj = item as SolutionEntityItem;
                if (prj == null)
                {
                    continue;
                }

                foreach (var cfg in sln.Configurations)
                {
                    var    prjItem = cfg.GetEntryForItem(prj);
                    string cfgId;
                    if (subConfigurations.TryGetValue(prj.ItemId, out cfgId))
                    {
                        prjItem.ItemConfiguration = cfgId;
                    }

                    var prjCfg = defaultPackage.GetConfiguration(cfg.Selector) as DubProjectConfiguration;
                    if (prjCfg != null && prjCfg.BuildSettings.subConfigurations.TryGetValue(prj.ItemId, out cfgId))
                    {
                        prjItem.ItemConfiguration = cfgId;
                    }
                }
            }

            sln.LoadUserProperties();

            return(sln);
        }
Пример #2
0
        public DubSolution LoadAsSolution(string file, IProgressMonitor monitor)
        {
            var sln = new DubSolution{
                FileName = file,
                BaseDirectory = new FilePath(file).ParentDirectory
            };

            var defaultPackage = LoadProject(file, sln, monitor, LoadFlags.None);

            sln.StartupItem = defaultPackage;

            LoadSubProjects(defaultPackage, monitor);

            // Populate project configurations to solution
            if (defaultPackage.Configurations.Count == 0)
                sln.CreateDefaultConfigurations ();
            else {
                foreach (var prjCfg in defaultPackage.Configurations)
                    sln.AddConfiguration (prjCfg.Name, false);
            }

            // Apply subConfigurations
            var subConfigurations = new Dictionary<string, string>(defaultPackage.CommonBuildSettings.subConfigurations);

            foreach (var item in sln.Items)
            {
                var prj = item as SolutionEntityItem;
                if (prj == null)
                    continue;

                foreach (var cfg in sln.Configurations)
                {
                    var prjItem = cfg.GetEntryForItem(prj);
                    string cfgId;
                    if (subConfigurations.TryGetValue(prj.ItemId, out cfgId))
                        prjItem.ItemConfiguration = cfgId;

                    var prjCfg = defaultPackage.GetConfiguration(cfg.Selector) as DubProjectConfiguration;
                    if (prjCfg != null && prjCfg.BuildSettings.subConfigurations.TryGetValue(prj.ItemId, out cfgId))
                        prjItem.ItemConfiguration = cfgId;
                }
            }

            sln.LoadUserProperties();

            return sln;
        }
Пример #3
0
		public DubSolution LoadAsSolution(string file, IProgressMonitor monitor)
		{
			var sln = new DubSolution();

			var defaultPackage = LoadProject(file, sln, monitor, LoadFlags.None);

			sln.RootFolder.AddItem(defaultPackage, false);
			sln.StartupItem = defaultPackage;

			// Introduce solution configurations
			foreach (var cfg in defaultPackage.Configurations)
				sln.AddConfiguration(cfg.Name, false).Platform = cfg.Platform;

			LoadSubProjects(defaultPackage, monitor);

			// Apply subConfigurations
			var subConfigurations = new Dictionary<string, string>(defaultPackage.CommonBuildSettings.subConfigurations);

			foreach (var item in sln.Items)
			{
				var prj = item as SolutionEntityItem;
				if (prj == null)
					continue;

				foreach (var cfg in sln.Configurations)
				{
					var prjItem = cfg.GetEntryForItem(prj);
					string cfgId;
					if (subConfigurations.TryGetValue(prj.ItemId, out cfgId))
						prjItem.ItemConfiguration = cfgId;

					var prjCfg = defaultPackage.GetConfiguration(cfg.Selector) as DubProjectConfiguration;
					if (prjCfg != null && prjCfg.BuildSettings.subConfigurations.TryGetValue(prj.ItemId, out cfgId))
						prjItem.ItemConfiguration = cfgId;
				}
			}

			sln.LoadUserProperties();

			return sln;
		}