void ProcessProjectReferences(DotNetProject project, out string references, out string dllReferences, AutotoolsContext ctx) { StringWriter refWriter = new StringWriter(); StringWriter dllRefWriter = new StringWriter(); pkgs = new Set <SystemPackage> (); // grab pkg-config references foreach (ProjectReference reference in project.References) { if (reference.ReferenceType == ReferenceType.Package) { // Get pkg-config keys SystemPackage pkg = reference.Package; if (pkg != null && !pkg.IsCorePackage) { if (pkgs.Contains(pkg)) { continue; } pkgs.Add(pkg); refWriter.WriteLine(" \\"); if (generateAutotools) { refWriter.Write("\t$("); refWriter.Write(AutotoolsContext.GetPkgConfigVariable(pkg.Name)); refWriter.Write("_LIBS)"); } else { refWriter.Write("\t-pkg:{0}", pkg.Name); } pkgs.Add(pkg); } else { refWriter.WriteLine(" \\"); // store all refs for easy access AssemblyName assembly = SystemAssemblyService.ParseAssemblyName(reference.Reference); refWriter.Write("\t" + assembly.Name); refWriter.Write(""); } } else if (reference.ReferenceType == ReferenceType.Assembly) { string assemblyPath = Path.GetFullPath(reference.Reference); dllRefWriter.WriteLine(" \\"); dllRefWriter.Write("\t"); ctx.AddGlobalReferencedFile(MakefileData.ToMakefilePath(FileService.AbsoluteToRelativePath( Path.GetFullPath(ctx.BaseDirectory), assemblyPath))); dllRefWriter.Write(MakefileData.ToMakefilePath(FileService.AbsoluteToRelativePath( project.BaseDirectory, assemblyPath))); } else if (reference.ReferenceType == ReferenceType.Project) { continue; // handled per-config } else { throw new Exception(GettextCatalog.GetString("Project reference type '{0}' not supported yet", reference.ReferenceType.ToString())); } } references = refWriter.ToString(); dllReferences = dllRefWriter.ToString(); }
void ProcessProjectReferences (DotNetProject project, out string references, out string dllReferences, AutotoolsContext ctx) { StringWriter refWriter = new StringWriter(); StringWriter dllRefWriter = new StringWriter(); pkgs = new Set<SystemPackage> (); // grab pkg-config references foreach (ProjectReference reference in project.References) { if (reference.ReferenceType == ReferenceType.Package) { // Get pkg-config keys SystemPackage pkg = reference.Package; if (pkg != null && !pkg.IsCorePackage) { if ( pkgs.Contains(pkg) ) continue; pkgs.Add(pkg); refWriter.WriteLine (" \\"); if (generateAutotools) { refWriter.Write ("\t$("); refWriter.Write (AutotoolsContext.GetPkgConfigVariable(pkg.Name)); refWriter.Write ("_LIBS)"); } else { refWriter.Write ("\t-pkg:{0}", pkg.Name); } pkgs.Add (pkg); } else { refWriter.WriteLine (" \\"); // store all refs for easy access AssemblyName assembly = SystemAssemblyService.ParseAssemblyName (reference.Reference); refWriter.Write ("\t" + assembly.Name); refWriter.Write (""); } } else if (reference.ReferenceType == ReferenceType.Assembly) { string assemblyPath = Path.GetFullPath (reference.Reference); dllRefWriter.WriteLine (" \\"); dllRefWriter.Write ("\t"); ctx.AddGlobalReferencedFile (MakefileData.ToMakefilePath (FileService.AbsoluteToRelativePath ( Path.GetFullPath (ctx.BaseDirectory), assemblyPath))); dllRefWriter.Write (MakefileData.ToMakefilePath (FileService.AbsoluteToRelativePath ( project.BaseDirectory, assemblyPath))); } else if (reference.ReferenceType == ReferenceType.Project) continue; // handled per-config else throw new Exception ( GettextCatalog.GetString ("Project reference type '{0}' not supported yet", reference.ReferenceType.ToString() ) ); } references = refWriter.ToString (); dllReferences = dllRefWriter.ToString (); }