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); }
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; }
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; }