-
-
Save beschulz/9bf0af3b68f58784fc4d to your computer and use it in GitHub Desktop.
| # get and compile boost | |
| git clone https://gist.github.com/7513324.git boost | |
| cd boost | |
| bash boost.sh | |
| # get and build opensslbe | |
| [email protected]:x2on/OpenSSL-for-iPhone.git | |
| cd OpenSSL-for-iPhone | |
| ./build-libssl.sh | |
| # finaly ??? | |
| brew install bison | |
| git clone [email protected]:apache/thrift.git | |
| cd thrift | |
| # ??? ./bootstrap.sh | |
| # use these for iOS | |
| #IOS_SDK="/Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/" | |
| #ARCHS="-arch armv7 -arch armv7s -arch arm64 -miphoneos-version-min=5.0" | |
| #OUTPUT_DIRECTORY="/absolute/path/to/where/you/want/the/files/to/go/ios-build" | |
| # and those for the simulator | |
| IOS_SDK="/Applications/XCode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/" | |
| ARCHS="-arch i386 -arch x86_64 -mios-simulator-version-min=5.0" | |
| OUTPUT_DIRECTORY="/absolute/path/to/where/you/want/the/files/to/go/ios-simulator-build" | |
| IOS_SDK="/Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/" | |
| SSL_DIR="/path/to/OpenSSL-for-iPhone/" | |
| BOOST_DIR="/path/to/boost/ios/prefix/" | |
| PATH=/usr/local/Cellar/bison/3.0.2/bin:$PATH \ | |
| ./configure \ | |
| --host=arm-apple-darwin \ | |
| CFLAGS=" $ARCHS -isysroot $IOS_SDK -I$IOS_SDK/usr/include -I$SSL_DIR/include" \ | |
| CXXFLAGS="$ARCHS -isysroot $IOS_SDK -I$IOS_SDK/usr/include -I$SSL_DIR/include -std=c++11 -stdlib=libc++" \ | |
| LDFLAGS=" $ARCHS -isysroot $IOS_SDK -L$IOS_SDK/usr/lib -L$SSL_DIR/lib -stdlib=libc++" \ | |
| --without-libevent \ | |
| --without-zlib \ | |
| --with-cpp \ | |
| --without-qt4 \ | |
| --without-c_glib \ | |
| --without-csharp \ | |
| --without-java \ | |
| --without-erlang \ | |
| --without-nodejs \ | |
| --without-lua \ | |
| --without-python \ | |
| --without-perl \ | |
| --without-php \ | |
| --without-php_extension \ | |
| --without-ruby \ | |
| --without-haskell \ | |
| --without-go \ | |
| --without-d \ | |
| --disable-debug \ | |
| --disable-tutorial \ | |
| --disable-tests \ | |
| --with-boost=$BOOST_DIR \ | |
| --with-openssl=$SSL_DIR \ | |
| --prefix=$IOS_SDK/usr/ \ | |
| --prefix $OUTPUT_DIRECTORY \ | |
| # I had to manually edit config.h and lib/cpp/src/thrift/config.h, because does #define malloc rpl_malloc and #define realloc rpl_realloc | |
| make install | |
| # if you build both (Device & Simulator), you might want to run | |
| lipo -create ../ios-build/lib/libthrift.a ../ios-simulator-build/lib/libthrift.a -output libthrift.a | |
| # tadahhh, a nice all in one libthrift.a |
Hello. I have a problem with build Thrift for ios.
When I use your build script It occured error. below
/usr/local/include/thrift/transport/TBufferTransports.h:444:28: error: no member named 'rpl_malloc' in namespace 'std'
buf = (uint8_t*)std::malloc(size);
~~~~~^
/usr/local/include/thrift/config.h:418:16: note: expanded from macro 'malloc'
define malloc rpl_malloc
^
src/thrift/transport/THttpTransport.cpp:50:26: error: no member named 'rpl_malloc' in namespace 'std'
httpBuf_ = (char*)std::malloc(httpBufSize_ + 1);
~~~~~^
/usr/local/include/thrift/config.h:418:16: note: expanded from macro 'malloc'
define malloc rpl_malloc
^
src/thrift/transport/THttpTransport.cpp:203:28: error: no member named 'rpl_realloc' in namespace 'std'
httpBuf_ = (char*)std::realloc(httpBuf_, httpBufSize_ + 1);
~~~~~^
/usr/local/include/thrift/config.h:430:17: note: expanded from macro 'realloc'
define realloc rpl_realloc
I think you changed something in config.h and lib/cpp/src/thrift/config.h.
Could you let me know what you changed?
TODO: build for simulator. some notes:
http://stackoverflow.com/questions/24413974/configure-parameters-to-build-c-library-for-ios