-
Notifications
You must be signed in to change notification settings - Fork 29
Improve the build script for iOS #84
Comments
I would take a look at how openpeer distributes it's library for iOS and Android: http://openpeer.org |
Ok, so @alessandro40, @AntonioLangiu and I have spent some time looking at openpeer.org. Speaking of iOS specifically, they generate a framework using Xcode that one can download from their website. So the idea of trying to build a framework for libight is in line with what they do (whether to do this with Xcode or with a script is probably a matter of taste). For Android, instead, they distribute an SDK containing Java classes that in turn reference code accessible through Java Native Interface and packages as a shared library. More in general, looking at their work we come up with the following comments:
We like it when they compile a library using its own build system. We probably should do the same in libight, rather than forcing the GNU autotools model to everything. For example, we should have a high-level script that invokes yaml-cpp build system rather than rolling out our own One thing that I specifically am not comfortable with is that they download library sources using plain http in some cases. If we go down that road, I'd rather download using https, verify the digital signature, or clone the repository from github using https.
For Android, one cannot avoid to do something like this, since Java code must be interfaced in some way to C++ code. For iOS, there is the option of using C++ code from ObjC++, which is what we currently do (and maybe that's a good thing since we're quite early in the development of libight and so adding API glue at this stage might not be wise). Anyway, just for the sake of reasoning about this (and given that it's unavoidable to make a wrapper for Java), we have sketched up a possible simplified C++ API and its possible interfaces in Java and ObjC. Speaking of Java, they used |
Updates with respect to this (with impact also on #85):
|
With respect to the above update, I've moved and expanded item 3 of the list into issue #98 since I do not think it's priority to do this sort of stuff before libight-1.0.0-release. Therefore, to close this specific issue what remains to be done is to:
|
Guess we can close this issue by now, keeping in mind that openpeer could always be an useful reference when we're in doubt. |
.framework
which is probably even easier to integrateThe text was updated successfully, but these errors were encountered: