<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 28 Feb 2017, at 17:05, Daniel Dunbar via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Feb 28, 2017, at 12:28 AM, Jens Nerup <<a href="mailto:jens@makecph.com" class="">jens@makecph.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class="">Hello Daniel,</div><div class=""><br class=""></div><div class="">In general I’m really happy with the changes in the proposal and especially after you have incorporated the comments from David (Thanks David). In the proposal it is stated that the exclude section may be eliminated as soon as we have custom layouts. My question is: would pkgConfig be a candidate for removal as soon as we have support for custom build configurations?</div></div></div></blockquote><div class=""><br class=""></div>I don't think so, I don't think custom build configurations will be a replacement for the pkgConfig functionality, which is trying to gather settings from *outside* the package.</div><div class=""><br class=""></div><div class="">I agree with the sentiment that it is an awkward thing to have the system module map package initializer, but unfortunately I think we may have to live with it for the time being. We have briefly discussed making it be a target not a package thing, and perhaps the move to using `.target()` should actually encourage us to do that, but that is probably something best done as a follow on to the manifest API redesign (as with exclude) given its limited scope.</div><div class=""><br class=""></div><div class=""> - Daniel</div></div></div></blockquote><br class=""></div><div>The pkgConfig functionality could be generalised, though. For example, OSX’s system modulemap (found at: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/module.modulemap) does not provide any linker information. Instead, you need to manually include those weird “.tbd” files in Xcode's “Link Libraries” panel — try a package with "import Darwin.ncurses” and you won’t be able to link.</div><div><br class=""></div><div>Either OSX’s system modulemap gets better (and linux’s too, I suppose), or we need the ability to include that linker information in the package manifest for more formats than just pkg-config.</div><div><br class=""></div><div>- Karl</div><br class=""></body></html>