Author: ankit
Date: 2006-12-26 10:18:12 -0500 (Tue, 26 Dec 2006)
New Revision: 70081
Modified:
trunk/monodevelop/Extras/prj2make-sharp-lib/ChangeLog
trunk/monodevelop/Extras/prj2make-sharp-lib/SlnFileFormat.cs
Log:
* SlnFileFormat.cs (LoadProjectConfigurationMappings): Update to
changes.
(FindCombineConfigurationEntry): Replace with ...
(GetConfigEntryForProject): ... this. Create the entries if not found.
(GetConfigEntry): New.
Modified: trunk/monodevelop/Extras/prj2make-sharp-lib/ChangeLog
===================================================================
--- trunk/monodevelop/Extras/prj2make-sharp-lib/ChangeLog 2006-12-26
14:54:40 UTC (rev 70080)
+++ trunk/monodevelop/Extras/prj2make-sharp-lib/ChangeLog 2006-12-26
15:18:12 UTC (rev 70081)
@@ -1,3 +1,11 @@
+2006-12-26 Ankit Jain <[EMAIL PROTECTED]>
+
+ * SlnFileFormat.cs (LoadProjectConfigurationMappings): Update to
+ changes.
+ (FindCombineConfigurationEntry): Replace with ...
+ (GetConfigEntryForProject): ... this. Create the entries if not found.
+ (GetConfigEntry): New.
+
2006-12-22 Ankit Jain <[EMAIL PROTECTED]>
* MSBuildSolution.cs:
Modified: trunk/monodevelop/Extras/prj2make-sharp-lib/SlnFileFormat.cs
===================================================================
--- trunk/monodevelop/Extras/prj2make-sharp-lib/SlnFileFormat.cs
2006-12-26 14:54:40 UTC (rev 70080)
+++ trunk/monodevelop/Extras/prj2make-sharp-lib/SlnFileFormat.cs
2006-12-26 15:18:12 UTC (rev 70081)
@@ -697,15 +697,7 @@
if (cache.ContainsKey (key)) {
combineConfigEntry = cache [key];
} else {
- combineConfigEntry =
FindCombineConfigurationEntry (sln, slnConfig, project.Name);
- if (combineConfigEntry == null) {
- Console.WriteLine (
- "{0} ({1}) : Warning:
No config entry found corresponding to solution config named '{2}'" +
- "and project named
'{3}'.",
- sln.FileName, lineNum +
1, slnConfig, project.Name);
- continue;
- }
-
+ combineConfigEntry =
GetConfigEntryForProject (sln, slnConfig, project);
cache [key] = combineConfigEntry;
}
@@ -735,28 +727,44 @@
/* Finds a CombineConfigurationEntry corresponding to the
@configName for a project (@projectName)
* in @combine */
- CombineConfigurationEntry FindCombineConfigurationEntry
(Combine combine, string configName, string projectName)
+ CombineConfigurationEntry GetConfigEntryForProject (Combine
combine, string configName, Project project)
{
- CombineConfiguration cc = combine.GetConfiguration
(configName) as CombineConfiguration;
- if (cc == null)
- return null;
+ if (project.ParentCombine == null)
+ throw new Exception (String.Format (
+ "INTERNAL ERROR: project {0} is not
part of any combine", project.Name));
- foreach (CombineConfigurationEntry cce in cc.Entries) {
- Combine c = cce.Entry as Combine;
- if (c != null) {
- CombineConfigurationEntry r =
FindCombineConfigurationEntry (c, configName, projectName);
- if (r != null)
- return r;
+ CombineConfigurationEntry ret = GetConfigEntry
(project, configName);
- continue;
- }
+ //Ensure the corresponding entries exist all the way
+ //upto the RootCombine
+ Combine parent = project.ParentCombine;
+ while (parent.ParentCombine != null) {
+ CombineConfigurationEntry p = GetConfigEntry
(parent, configName);
+ if (p.ConfigurationName != configName)
+ p.ConfigurationName = configName;
+ parent = parent.ParentCombine;
+ }
- //Project
- if (cce.Entry.Name == projectName)
+ return ret;
+ }
+
+ /* Gets the CombineConfigurationEntry corresponding to the
@entry in its parentCombine's
+ * CombineConfiguration. Creates the required bits if not
present */
+ CombineConfigurationEntry GetConfigEntry (CombineEntry entry,
string configName)
+ {
+ Combine parent = entry.ParentCombine;
+ CombineConfiguration combineConfig =
parent.GetConfiguration (configName) as CombineConfiguration;
+ if (combineConfig == null) {
+ combineConfig = (CombineConfiguration)
parent.CreateConfiguration (configName);
+ parent.Configurations.Add (combineConfig);
+ }
+
+ foreach (CombineConfigurationEntry cce in
combineConfig.Entries) {
+ if (cce.Entry == entry)
return cce;
}
- return null;
+ return combineConfig.AddEntry (entry);
}
void LoadSolutionConfigurations (Section sec, List<string>
lines, Combine combine, IProgressMonitor monitor)
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches