> On 14 Mar 2016, at 18:29, Robert Stephen Thompson 
> <robert.thomp...@willowtreeapps.com> wrote:
> 
> Just a couple of tips based on my experience wrapping libxml2 for 
> NSXMLDocument:
> 1. You’ll need to actually import and link libcurl with CoreFoundation 
> instead of trying to make a libcurl module.modulemap and importing it 
> directly. This is because if you do it that way, you’ll have to add libcurl 
> as a dependency _throughout_ the Swift build process, and it would all be 
> pretty disruptive (and difficult to do).
> 2. As a consequence of 1., you’ll need to wrap every function you call from 
> libcurl in a new CoreFoundation API. See CFXMLInterface.h and 
> CFXMLInterface.c for what I mean. Of course, this also gives you the 
> opportunity to add nullability annotations, wrap things in CFString, CFError, 
> CFArray, etc, so it’s not just busy-work for getting around the build system, 
> heh. Just depends on how much C you want to write, you could just straight 
> wrap the libcurl functions and do everything in Swift, but at the very least 
> nullability annotations are a win here.


I just looked at this, and libxml2 is being linked against by SwiftFoundation, 
and NOT by CoreFoundation -- on Darwin.

Is the correct approach to do what's been done with libxml2, or should I 
instead have CoreFoundation link against libcurl?

/Daniel

_______________________________________________
swift-corelibs-dev mailing list
swift-corelibs-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-corelibs-dev

Reply via email to