@@ -31,10 +31,12 @@ if [ "$FLAVOR" = "lite" ]; then
31
31
# LITE flavor support android 16+
32
32
ARM_SYSROOT=$NDK /platforms/android-16/arch-arm/
33
33
X86_SYSROOT=$NDK /platforms/android-16/arch-x86/
34
+ UNIFIED_ANDROID_API=16
34
35
else
35
36
# FULL flavor require android 21 at minimum (because of including openssl)
36
37
ARM_SYSROOT=$NDK /platforms/android-21/arch-arm/
37
38
X86_SYSROOT=$NDK /platforms/android-21/arch-x86/
39
+ UNIFIED_ANDROID_API=21
38
40
fi
39
41
ARM_PREBUILT=$NDK /toolchains/arm-linux-androideabi-4.9/prebuilt/$OS
40
42
X86_PREBUILT=$NDK /toolchains/x86-4.9/prebuilt/$OS
@@ -55,6 +57,13 @@ X86_64_PREBUILT=$NDK/toolchains/x86_64-4.9/prebuilt/$OS
55
57
# MIPS64_PREBUILT=$NDK/toolchains/mips64el-linux-android-4.9/prebuilt/darwin-x86_64
56
58
# MIPS64_CROSS_PREFIX=$MIPS64_PREBUILT/bin/$HOST-
57
59
60
+ # For unified headers https://android.googlesource.com/platform/ndk/+/ndk-release-r16/docs/UnifiedHeaders.md
61
+ UNIFIED_INCLUDEPATH=$NDK /sysroot/usr/include
62
+ ARM_UNIFIED_INCLUDEPATH=$NDK /sysroot/usr/include/arm-linux-androideabi
63
+ X86_UNIFIED_INCLUDEPATH=$NDK /sysroot/usr/include/aarch64-linux-android
64
+ ARM64_UNIFIED_INCLUDEPATH=$NDK /sysroot/usr/include/arm-linux-androideabi
65
+ X86_64_UNIFIED_INCLUDEPATH=$NDK /sysroot/usr/include/x86_64-linux-android
66
+
58
67
if [ " $FFMPEG_VERSION " = " " ]; then
59
68
FFMPEG_VERSION=" 3.3.2"
60
69
fi
@@ -182,21 +191,25 @@ then
182
191
HOST=arm-linux-androideabi
183
192
CROSS_PREFIX=$ARM_PREBUILT /bin/$HOST -
184
193
OPTIMIZE_CFLAGS=" $OPTIMIZE_CFLAGS "
194
+ UNIFIED_INCLUDEPATH_ARCH=$ARM_UNIFIED_INCLUDEPATH
185
195
elif [ $ARCH == " arm64" ]
186
196
then
187
197
SYSROOT=$ARM64_SYSROOT
188
198
HOST=aarch64-linux-android
189
199
CROSS_PREFIX=$ARM64_PREBUILT /bin/$HOST -
200
+ UNIFIED_INCLUDEPATH_ARCH=$ARM64_UNIFIED_INCLUDEPATH
190
201
elif [ $ARCH == " x86_64" ]
191
202
then
192
203
SYSROOT=$X86_64_SYSROOT
193
204
HOST=x86_64-linux-android
194
205
CROSS_PREFIX=$X86_64_PREBUILT /bin/$HOST -
206
+ UNIFIED_INCLUDEPATH_ARCH=$X86_64_UNIFIED_INCLUDEPATH
195
207
elif [ $ARCH == " i686" ]
196
208
then
197
209
SYSROOT=$X86_SYSROOT
198
210
HOST=i686-linux-android
199
211
CROSS_PREFIX=$X86_PREBUILT /bin/$HOST -
212
+ UNIFIED_INCLUDEPATH_ARCH=$X86_UNIFIED_INCLUDEPATH
200
213
# elif [ $ARCH == "mips" ]
201
214
# then
202
215
# SYSROOT=$MIPS_SYSROOT
@@ -219,9 +232,9 @@ export AR="${CROSS_PREFIX}ar"
219
232
export NM=" ${CROSS_PREFIX} nm"
220
233
export RANLIB=" ${CROSS_PREFIX} ranlib"
221
234
export LDFLAGS=" -L$PREFIX /lib -fPIE -pie "
222
- export CFLAGS=" $OPTIMIZE_CFLAGS -I$PREFIX /include --sysroot=$SYSROOT -fPIE "
235
+ export CFLAGS=" $OPTIMIZE_CFLAGS -I$PREFIX /include --sysroot=$SYSROOT -fPIE -isystem $UNIFIED_INCLUDEPATH -isystem $UNIFIED_INCLUDEPATH_ARCH -D__ANDROID_API__= $UNIFIED_ANDROID_API "
223
236
export CXXFLAGS=" $CFLAGS "
224
- export CPPFLAGS=" --sysroot=$SYSROOT "
237
+ export CPPFLAGS=" --sysroot=$SYSROOT -isystem $UNIFIED_INCLUDEPATH -isystem $UNIFIED_INCLUDEPATH_ARCH -D__ANDROID_API__= $UNIFIED_ANDROID_API "
225
238
export STRIP=${CROSS_PREFIX} strip
226
239
export PATH=" $PATH :$PREFIX /bin/"
227
240
0 commit comments