[swift-users] Improving a simple C binding
Jason Dusek
jason.dusek at gmail.com
Wed Dec 9 02:54:35 CST 2015
Behold, a binding for libpq:
https://github.com/solidsnack/CLibPQ
And a little app that uses it:
https://github.com/solidsnack/PGVersion
CLibPQ is put together in the simplest way: there's a module.modulemap
at the root and that's it. I would like to make some changes to the
module hierarchy and I'm not sure how to go about it. Here's what I'd
like to do:
* Create `CLibPQ.OSXHomebrew` and `CLibPQ.Ubuntu` that contain the
right mappings for those platforms (the header files are in different
places).
* Create `CLibPQ` that conditionally imports the right one:
CLibPQ.swift:
#if os(Linux)
import CLibPQ.Ubuntu
#else
import CLibPQ.OSXHomebrew
#endif
* In `PGVersion` we'd be able to `import CLibPQ` as before.
What's the right project layout to make this work?
Namespaced C modules are an interesting topic and worth pursuing in
their own right; but maybe there is a better way to do what I'm trying
to accomplish?
Best Regards,
Jason Dusek
More information about the swift-users
mailing list