[CDRIVER-2092] Updated packaging for CocoaPods Created: 17/Mar/17  Updated: 17/Aug/17  Resolved: 20/Mar/17

Status: Closed
Project: C Driver
Component/s: libbson, packaging
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Minor - P4
Reporter: Paul Melnikow Assignee: A. Jesse Jiryu Davis
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

OS X, iOS



 Description   

This was discussed a while ago in CDRIVER-691.

I've finally had a chance to try to integrate libbson into a Swift project. Using a fork of libbson@1.6.1 with the module map checked in, I was able to publish a prerelease pod and integrate it into an Objective-C project.

In CocoaPods, all Swift builds, as well as framework-based Objective-C builds, use a module map to collect the interface exposed by a package. This was discussed in CDRIVER-691. Here are a couple links with more information:

By default CocoaPods generates an umbrella header with all of the package's public header files and a module map around that. That doesn't work for libbson, since directly including e.g. bson-compat.h will result in a preprocessor error, "Only <bson.h> can be included directly."

The solution is to ship our own module map, referencing the library's umbrella header, and point CocoaPods to that.

It needs to be checked in. Though it doesn't matter where it is in the repo. I opened this PR: https://github.com/mongodb/libbson/pull/185



 Comments   
Comment by A. Jesse Jiryu Davis [ 20/Mar/17 ]

I'm closing this issue - if there's anything we can do to help that does not require us to maintain CocoaPods files in our repository, please let us know.

Comment by A. Jesse Jiryu Davis [ 17/Mar/17 ]

Hi Paul. Sorry, I really don't think it's a good idea to add something to the libbson repository that none of us understands or is committed to maintaining. Isn't it possible to maintain a CocoaPod for libbson and libmongoc without adding something to our repo? I think it's better if you maintain the files you need to maintain to make a CocoaPod for libbson and libmongoc work correctly, in your repository where you can change it whenever it's necessary to change.

Generated at Wed Feb 07 21:14:09 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.