forked from microsoft/cpprestsdk
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfix_boost_version.patch
More file actions
186 lines (162 loc) · 7.33 KB
/
fix_boost_version.patch
File metadata and controls
186 lines (162 loc) · 7.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
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
: <striper> <root>$XCODE_ROOT/Platforms/iPhoneSimulator.platform/Developer
: <architecture>x86 <target-os>iphone
;
-using darwin : ${OSX_SDKVERSION}
-: g++ -arch i386 -arch x86_64 -fvisibility=hidden -fvisibility-inlines-hidden $EXTRA_CPPFLAGS
-: <striper> <root>$XCODE_ROOT/Platforms/MacOSX.platform/Developer
-: <architecture>x86 <target-os>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 <<EOF
@@ -390,12 +355,9 @@ echo "BOOST_VERSION: $BOOST_VERSION"
echo "BOOST_LIBS: $BOOST_LIBS"
echo "BOOST_SRC: $BOOST_SRC"
echo "IOSBUILDDIR: $IOSBUILDDIR"
-echo "OSXBUILDDIR: $OSXBUILDDIR"
echo "PREFIXDIR: $PREFIXDIR"
echo "IOSFRAMEWORKDIR: $IOSFRAMEWORKDIR"
-echo "OSXFRAMEWORKDIR: $OSXFRAMEWORKDIR"
echo "IPHONE_SDKVERSION: $IPHONE_SDKVERSION"
-echo "OSX_SDKVERSION: $OSX_SDKVERSION"
echo "XCODE_ROOT: $XCODE_ROOT"
echo
@@ -407,8 +369,6 @@ updateBoost
buildBoostForIPhoneOS
scrunchAllLibsTogetherInOneLibPerPlatform
buildFramework $IOSFRAMEWORKDIR $IOSBUILDDIR
-buildFramework $OSXFRAMEWORKDIR $OSXBUILDDIR
-
restoreBoost
echo "Completed successfully"