biggestt / cmoss Goto Github PK
View Code? Open in Web Editor NEWThis project forked from worblehat/cmoss
Scripts for building cross-platform c/c++ open source software libraries for iOS and Android.
This project forked from worblehat/cmoss
Scripts for building cross-platform c/c++ open source software libraries for iOS and Android.
NOTE: I created this branch to have a version of CMOSS that builds the dependencies of libgit2 for Android. I added a patch, commented out libraries not needed by libgit2 and updated the libraries' versions. Tested with NDK r9c on Linux (x86_64). ------------------------------------------------- The CMOSS scripts can be used to build the following C/C++ Open Source Software libraries for native development on iOS and Android. * minizip : http://www.winimage.com/zLibDll/minizip.html * icu : http://site.icu-project.org/ * c-ares : http://c-ares.haxx.se * bzip2 : http://bzip.org/ * libidn : http://www.gnu.org/software/libidn/ * GnuPG 1.4.x, Libgcrypt, Libgpg-error : http://www.gnupg.org/ * OpenSSL - http://http://www.openssl.org/ * libSSH2 - http://www.libssh2.org/ * cURL - http://curl.haxx.se/ - C HTTP API * expat - http://expat.sourceforge.net/ - XML event parser * tinyxml - http://www.grinninglizard.com/tinyxml/ - XML DOM based parser * yajl - http://lloyd.github.com/yajl/ - JSON parser * sqlcipher - http://sqlcipher.net/ - SQLite with encryption * boost - http://www.boost.org/ - C++ utilities * soci - http://soci.sourceforge.net/ - generic C++ database API * pion : http://pion.org/ - C++ HTTP API The android kernel already provides some of these shared libraries so check if they are available before including them in your NDK project. For example both openssl and icu are part of the Android distribution. To build armv6 binaries for iOS you need to use the 5.1 SDK or lower. The blog at http://blog.chpwn.com/post/31824877081 provides instructions on how to add the 5.1 SDK alongside the 6.0 SDK if you are using XCode 4.5. The scripts will automatically pick up the older SDK for armv6 builds. If the 5.1 SDK is not available then armv6 binaries will not be built. The scripts will download the source code from the internet and build them locally. So your build machine needs to be connected to the internet when building. Once the source code archives have been downloaded they will be saved in the [cmoss root path]/tmp folder and will not be downloaded again unless you delete them or change the version. The builds have been tested with the versions hard-coded in the script files. If you change these versions it is possible the build for that library may break. If you do find a new version that breaks a build please let me know so it can be fixed. There is an issue with the icu builds with the SDK that ship with versions before XCode 4.5. This results in the Android builds having to be rerun when the icu host build fails, but it fails the entire icu build for iOS. If you are on an older version of XCode please comment out the icu build step. To run iOS build: cd [cmoss root path]/build-ios ./build-all.sh [installed sdk version #] [proxy_host:proxy_port] (scripts were tested with SDK 6.0) To run Android build: cd [cmoss root path]/build-droid ./build-all.sh [path to Android NDK] [proxy_host:proxy_port] (scripts were tested with Android NDK r8d) These build scripts were tested on a Mac OS X 10 with the following Mac ports: cmake @2.8.4_0 (active) cppunit @1.12.1_0 (active) dos2unix @5.1.1_0 (active) expat @2.0.1_1 (active) gettext @0.18.1.1_2 (active) gperf @3.0.4_0 (active) libiconv @1.13.1_0 (active) libidn @1.20_0 (active) ncurses @5.8_0 ncurses @5.8_1 (active) ncursesw @5.8_0 (active) openssl @1.0.0d_0 (active) wget @1.12_3+ssl (active) libtool @2.4.2 (active) zlib @1.2.5_0 (active) The Android scripts should work in a Linux environment but have not been tested. The builds do not run the unit tests that come with the libraries on each platform. If you run into linker issues with the libraries you will need to tweak the builds. Please let me know of any issues when using the libraries and fixes that need to be addressed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.