diff --git a/boost.sh b/boost.sh old mode 100644 new mode 100755 index 22b308c..07ef184 --- a/boost.sh +++ b/boost.sh @@ -1,4 +1,4 @@ -# Builds a Boost framework for the iPhone, iPhone Simulator, and OSX. +# Builds a Boost framework for the iPhone and iPhone Simulator. # Creates a set of universal libraries that can be used on an iPhone and in the # iPhone simulator. Then creates a pseudo-framework to make using boost in Xcode # less painful. @@ -6,27 +6,21 @@ # To configure the script, define: # BOOST_LIBS: which libraries to build # IPHONE_SDKVERSION: iPhone SDK version (e.g. 8.1) -# OSX_SDKVERSION: OSX SDK version (e.g. 10.10) # # Then go get the source tar.bz of the boost you want to build, shove it in the # same directory as this script, and run "./boost.sh". Grab a cuppa. And voila. #=============================================================================== -: ${BOOST_VERSION:=1.56.0} -: ${BOOST_VERSION2:=1_56_0} +: ${BOOST_VERSION:=1.57.0} +: ${BOOST_VERSION2:=1_57_0} -: ${BOOST_LIBS:="atomic chrono date_time exception filesystem program_options random signals system test thread"} +: ${BOOST_LIBS:="thread chrono filesystem regex system random"} # Current iPhone SDK : ${IPHONE_SDKVERSION:=`xcodebuild -showsdks | grep iphoneos | egrep "[[:digit:]]+\.[[:digit:]]+" -o | tail -1`} # Specific iPhone SDK # : ${IPHONE_SDKVERSION:=8.1} -# Current OSX SDK -: ${OSX_SDKVERSION:=`xcodebuild -showsdks | grep macosx | egrep "[[:digit:]]+\.[[:digit:]]+" -o | tail -1`} -# Specific OSX SDK -# : ${OSX_SDKVERSION:=10.10} - : ${XCODE_ROOT:=`xcode-select -print-path`} : ${EXTRA_CPPFLAGS:="-DBOOST_AC_USE_PTHREADS -DBOOST_SP_USE_PTHREADS -g -DNDEBUG -std=c++11 -stdlib=libc++"} @@ -41,10 +35,8 @@ : ${TARBALLDIR:=`pwd`} : ${SRCDIR:=`pwd`/src} : ${IOSBUILDDIR:=`pwd`/ios/build} -: ${OSXBUILDDIR:=`pwd`/osx/build} : ${PREFIXDIR:=`pwd`/ios/prefix} : ${IOSFRAMEWORKDIR:=`pwd`/ios/framework} -: ${OSXFRAMEWORKDIR:=`pwd`/osx/framework} BOOST_TARBALL=$TARBALLDIR/boost_$BOOST_VERSION2.tar.bz2 BOOST_SRC=$SRCDIR/boost_${BOOST_VERSION2} @@ -52,7 +44,6 @@ BOOST_SRC=$SRCDIR/boost_${BOOST_VERSION2} #=============================================================================== ARM_DEV_CMD="xcrun --sdk iphoneos" SIM_DEV_CMD="xcrun --sdk iphonesimulator" -OSX_DEV_CMD="xcrun --sdk macosx" #=============================================================================== # Functions @@ -79,12 +70,10 @@ cleanEverythingReadyToStart() { echo Cleaning everything before we start to build... - rm -rf iphone-build iphonesim-build osx-build + rm -rf iphone-build iphonesim-build rm -rf $IOSBUILDDIR - rm -rf $OSXBUILDDIR rm -rf $PREFIXDIR rm -rf $IOSFRAMEWORKDIR/$FRAMEWORK_NAME.framework - rm -rf $OSXFRAMEWORKDIR/$FRAMEWORK_NAME.framework doneSection } @@ -142,11 +131,6 @@ using darwin : ${IPHONE_SDKVERSION}~iphonesim : $XCODE_ROOT/Platforms/iPhoneSimulator.platform/Developer : x86 iphone ; -using darwin : ${OSX_SDKVERSION} -: g++ -arch i386 -arch x86_64 -fvisibility=hidden -fvisibility-inlines-hidden $EXTRA_CPPFLAGS -: $XCODE_ROOT/Platforms/MacOSX.platform/Developer -: x86 darwin -; EOF doneSection @@ -192,10 +176,6 @@ buildBoostForIPhoneOS() echo Building Boost for iPhoneSimulator ./b2 -j16 --build-dir=iphonesim-build --stagedir=iphonesim-build/stage toolset=darwin-${IPHONE_SDKVERSION}~iphonesim architecture=x86 target-os=iphone macosx-version=iphonesim-${IPHONE_SDKVERSION} link=static stage doneSection - - echo building Boost for OSX - ./b2 -j16 --build-dir=osx-build --stagedir=osx-build/stage toolset=clang cxxflags="-std=c++11 -stdlib=libc++ -arch i386 -arch x86_64" linkflags="-stdlib=libc++" link=static threading=multi macosx-version=${OSX_SDKVERSION} stage - doneSection } #=============================================================================== @@ -233,10 +213,6 @@ scrunchAllLibsTogetherInOneLibPerPlatform() mkdir -p $IOSBUILDDIR/i386/obj mkdir -p $IOSBUILDDIR/x86_64/obj - # OSX - mkdir -p $OSXBUILDDIR/i386/obj - mkdir -p $OSXBUILDDIR/x86_64/obj - ALL_LIBS="" echo Splitting all existing fat binaries... @@ -254,9 +230,6 @@ scrunchAllLibsTogetherInOneLibPerPlatform() $SIM_DEV_CMD lipo "iphonesim-build/stage/lib/libboost_$NAME.a" -thin i386 -o $IOSBUILDDIR/i386/libboost_$NAME.a $SIM_DEV_CMD lipo "iphonesim-build/stage/lib/libboost_$NAME.a" -thin x86_64 -o $IOSBUILDDIR/x86_64/libboost_$NAME.a - - $OSX_DEV_CMD lipo "osx-build/stage/lib/libboost_$NAME.a" -thin i386 -o $OSXBUILDDIR/i386/libboost_$NAME.a - $OSX_DEV_CMD lipo "osx-build/stage/lib/libboost_$NAME.a" -thin x86_64 -o $OSXBUILDDIR/x86_64/libboost_$NAME.a done echo "Decomposing each architecture's .a files" @@ -273,14 +246,10 @@ scrunchAllLibsTogetherInOneLibPerPlatform() unpackArchive "$IOSBUILDDIR/i386/obj" $NAME unpackArchive "$IOSBUILDDIR/x86_64/obj" $NAME - - unpackArchive "$OSXBUILDDIR/i386/obj" $NAME - unpackArchive "$OSXBUILDDIR/x86_64/obj" $NAME done echo "Linking each architecture into an uberlib ($ALL_LIBS => libboost.a )" rm $IOSBUILDDIR/*/libboost.a - rm $OSXBUILDDIR/*/libboost.a for NAME in $BOOST_LIBS; do if [ "$NAME" == "test" ]; then @@ -300,11 +269,6 @@ scrunchAllLibsTogetherInOneLibPerPlatform() (cd $IOSBUILDDIR/i386; $SIM_DEV_CMD ar crus libboost.a obj/$NAME/*.o; ) echo ...x86_64 (cd $IOSBUILDDIR/x86_64; $SIM_DEV_CMD ar crus libboost.a obj/$NAME/*.o; ) - - echo ...osx-i386 - (cd $OSXBUILDDIR/i386; $OSX_DEV_CMD ar crus libboost.a obj/$NAME/*.o; ) - echo ...osx-x86_64 - (cd $OSXBUILDDIR/x86_64; $OSX_DEV_CMD ar crus libboost.a obj/$NAME/*.o; ) done } @@ -333,6 +297,7 @@ buildFramework() mkdir -p $FRAMEWORK_BUNDLE/Versions/$FRAMEWORK_VERSION mkdir -p $FRAMEWORK_BUNDLE/Versions/$FRAMEWORK_VERSION/Resources mkdir -p $FRAMEWORK_BUNDLE/Versions/$FRAMEWORK_VERSION/Headers + mkdir -p $FRAMEWORK_BUNDLE/Versions/$FRAMEWORK_VERSION/Headers/boost mkdir -p $FRAMEWORK_BUNDLE/Versions/$FRAMEWORK_VERSION/Documentation echo "Framework: Creating symlinks..." @@ -348,7 +313,7 @@ buildFramework() $ARM_DEV_CMD lipo -create $BUILDDIR/*/libboost.a -o "$FRAMEWORK_INSTALL_NAME" || abort "Lipo $1 failed" echo "Framework: Copying includes..." - cp -r $PREFIXDIR/include/boost/* $FRAMEWORK_BUNDLE/Headers/ + cp -r $PREFIXDIR/include/boost/* $FRAMEWORK_BUNDLE/Headers/boost echo "Framework: Creating plist..." cat > $FRAMEWORK_BUNDLE/Resources/Info.plist <