/// <summary> /// Returns all libs that are included by default both by the compiler and this specific build config /// </summary> public IEnumerable <string> GetReferencedLibraries(ConfigurationSelector configSelector) { foreach (var i in Project.Compiler.DefaultLibraries) { yield return(i); } foreach (var i in ExtraLibraries) { yield return(i); } bool takeDefSelector = configSelector == null; foreach (var dep_ in AbstractDProject.GetSortedProjectDependencies(Project, configSelector)) { var dep = dep_ as DProject; if (dep == null || dep == Project) { continue; } if (takeDefSelector) { configSelector = dep.DefaultConfiguration.Selector; } var activeConfig = dep.GetConfiguration(configSelector) as DProjectConfiguration; if (activeConfig != null) { if (activeConfig.CompileTarget == DCompileTarget.StaticLibrary) { yield return(dep.GetOutputFileName(configSelector)); } // Assume there is an import lib inside the dll's output directory and add it to the linked-in libs // https://github.com/aBothe/Mono-D/issues/180 else if (OS.IsWindows && activeConfig.CompileTarget == DCompileTarget.SharedLibrary) { var lib = Path.ChangeExtension(dep.GetOutputFileName(configSelector), DCompilerService.StaticLibraryExtension); if (File.Exists(lib)) { yield return(lib); } } } } }