[Monodevelop-patches-list] r2021 - trunk/MonoDevelop/Core/src/AddIns/BackendBindings/CSharpBinding

commit-watcher at mono-cvs.ximian.com commit-watcher at mono-cvs.ximian.com
Tue Nov 9 13:53:52 EST 2004


Author: tberman
Date: 2004-11-09 13:53:51 -0500 (Tue, 09 Nov 2004)
New Revision: 2021

Modified:
   trunk/MonoDevelop/Core/src/AddIns/BackendBindings/CSharpBinding/CSharpBindingCompilerManager.cs
   trunk/MonoDevelop/Core/src/AddIns/BackendBindings/CSharpBinding/ChangeLog
Log:
2004-11-09  Todd Berman  <tberman at off.net>
                                                                                
        * CSharpBindingCompilerManager.cs: Use SAS for assembly detection.
        This doesnt seem to break anything for me.


Modified: trunk/MonoDevelop/Core/src/AddIns/BackendBindings/CSharpBinding/CSharpBindingCompilerManager.cs
===================================================================
--- trunk/MonoDevelop/Core/src/AddIns/BackendBindings/CSharpBinding/CSharpBindingCompilerManager.cs	2004-11-02 21:20:53 UTC (rev 2020)
+++ trunk/MonoDevelop/Core/src/AddIns/BackendBindings/CSharpBinding/CSharpBindingCompilerManager.cs	2004-11-09 18:53:51 UTC (rev 2021)
@@ -145,10 +145,29 @@
 				
 				IProjectService projectService = (IProjectService)MonoDevelop.Core.Services.ServiceManager.GetService(typeof(IProjectService));
 				ArrayList allProjects = Combine.GetAllProjects(projectService.CurrentOpenCombine);
-				
-				foreach (ProjectReference lib in p.ProjectReferences) {
-					string fileName = lib.GetReferencedFileName(p);
-					writer.WriteLine("\"/r:" + fileName + "\"");
+				SystemAssemblyService sas = (SystemAssemblyService)ServiceManager.GetService (typeof (SystemAssemblyService));
+				ArrayList pkg_references = new ArrayList ();
+				foreach (ProjectReference lib in project.ProjectReferences) {
+					switch (lib.ReferenceType) {
+					case ReferenceType.Gac:
+						string pkg = sas.GetPackageFromFullName (lib.Reference);
+						if (pkg == "MONO-SYSTEM") {
+							writer.WriteLine ("\"/r:" + Path.GetFileName (lib.GetReferencedFileName (project)) + "\"");
+						} else if (!pkg_references.Contains (pkg)) {
+							pkg_references.Add (pkg);
+							writer.WriteLine ("\"-pkg:" + pkg + "\"");
+						}
+						break;
+					case ReferenceType.Assembly:
+						string assembly_fileName = lib.GetReferencedFileName (project);
+						string rel_path_to = fileUtilityService.AbsoluteToRelativePath (project.BaseDirectory, Path.GetDirectoryName (assembly_fileName));
+						writer.WriteLine ("\"/r:" + Path.Combine (rel_path_to, Path.GetFileName (assembly_fileName)) + "\"");
+						break;
+					case ReferenceType.Project:
+						string project_fileName = lib.GetReferencedFileName (project);
+						writer.WriteLine ("\"/r:" + project_fileName + "\"");
+						break;
+					}
 				}
 				
 				writer.WriteLine("/nologo");

Modified: trunk/MonoDevelop/Core/src/AddIns/BackendBindings/CSharpBinding/ChangeLog
===================================================================
--- trunk/MonoDevelop/Core/src/AddIns/BackendBindings/CSharpBinding/ChangeLog	2004-11-02 21:20:53 UTC (rev 2020)
+++ trunk/MonoDevelop/Core/src/AddIns/BackendBindings/CSharpBinding/ChangeLog	2004-11-09 18:53:51 UTC (rev 2021)
@@ -1,3 +1,8 @@
+2004-11-09  Todd Berman  <tberman at off.net>
+
+	* CSharpBindingCompilerManager.cs: Use SAS for assembly detection.
+	This doesnt seem to break anything for me.
+
 2004-11-01  Todd Berman  <tberman at off.net>
 
 	* CSharpBindingExecutionManager.cs.in: Add fu to actually properly run




More information about the Monodevelop-patches-list mailing list