in Sources/TSCUtility/PkgConfig.swift [180:205]
func getFlags(from dependencies: [String]) throws -> (cFlags: [String], libs: [String]) {
var cFlags = [String]()
var libs = [String]()
for dep in dependencies {
if let index = loadingContext.pkgConfigStack.firstIndex(of: dep) {
diagnostics.emit(warning: "circular dependency detected while parsing \(loadingContext.pkgConfigStack[0]): \(loadingContext.pkgConfigStack[index..<loadingContext.pkgConfigStack.count].joined(separator: " -> ")) -> \(dep)")
continue
}
// FIXME: This is wasteful, we should be caching the PkgConfig result.
let pkg = try PkgConfig(
name: dep,
additionalSearchPaths: additionalSearchPaths,
diagnostics: diagnostics,
fileSystem: fileSystem,
brewPrefix: brewPrefix,
loadingContext: loadingContext
)
cFlags += pkg.cFlags
libs += pkg.libs
}
return (cFlags: cFlags, libs: libs)
}