@@ -31,10 +31,12 @@ if [ "$FLAVOR" = "lite" ]; then
3131 # LITE flavor support android 16+
3232 ARM_SYSROOT=$NDK /platforms/android-16/arch-arm/
3333 X86_SYSROOT=$NDK /platforms/android-16/arch-x86/
34+ UNIFIED_ANDROID_API=16
3435else
3536 # FULL flavor require android 21 at minimum (because of including openssl)
3637 ARM_SYSROOT=$NDK /platforms/android-21/arch-arm/
3738 X86_SYSROOT=$NDK /platforms/android-21/arch-x86/
39+ UNIFIED_ANDROID_API=21
3840fi
3941ARM_PREBUILT=$NDK /toolchains/arm-linux-androideabi-4.9/prebuilt/$OS
4042X86_PREBUILT=$NDK /toolchains/x86-4.9/prebuilt/$OS
@@ -55,6 +57,13 @@ X86_64_PREBUILT=$NDK/toolchains/x86_64-4.9/prebuilt/$OS
5557# MIPS64_PREBUILT=$NDK/toolchains/mips64el-linux-android-4.9/prebuilt/darwin-x86_64
5658# MIPS64_CROSS_PREFIX=$MIPS64_PREBUILT/bin/$HOST-
5759
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+
5867if [ " $FFMPEG_VERSION " = " " ]; then
5968 FFMPEG_VERSION=" 3.3.2"
6069fi
@@ -182,21 +191,25 @@ then
182191 HOST=arm-linux-androideabi
183192 CROSS_PREFIX=$ARM_PREBUILT /bin/$HOST -
184193 OPTIMIZE_CFLAGS=" $OPTIMIZE_CFLAGS "
194+ UNIFIED_INCLUDEPATH_ARCH=$ARM_UNIFIED_INCLUDEPATH
185195elif [ $ARCH == " arm64" ]
186196then
187197 SYSROOT=$ARM64_SYSROOT
188198 HOST=aarch64-linux-android
189199 CROSS_PREFIX=$ARM64_PREBUILT /bin/$HOST -
200+ UNIFIED_INCLUDEPATH_ARCH=$ARM64_UNIFIED_INCLUDEPATH
190201elif [ $ARCH == " x86_64" ]
191202then
192203 SYSROOT=$X86_64_SYSROOT
193204 HOST=x86_64-linux-android
194205 CROSS_PREFIX=$X86_64_PREBUILT /bin/$HOST -
206+ UNIFIED_INCLUDEPATH_ARCH=$X86_64_UNIFIED_INCLUDEPATH
195207elif [ $ARCH == " i686" ]
196208then
197209 SYSROOT=$X86_SYSROOT
198210 HOST=i686-linux-android
199211 CROSS_PREFIX=$X86_PREBUILT /bin/$HOST -
212+ UNIFIED_INCLUDEPATH_ARCH=$X86_UNIFIED_INCLUDEPATH
200213# elif [ $ARCH == "mips" ]
201214# then
202215# SYSROOT=$MIPS_SYSROOT
@@ -219,9 +232,9 @@ export AR="${CROSS_PREFIX}ar"
219232export NM=" ${CROSS_PREFIX} nm"
220233export RANLIB=" ${CROSS_PREFIX} ranlib"
221234export 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 "
223236export 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 "
225238export STRIP=${CROSS_PREFIX} strip
226239export PATH=" $PATH :$PREFIX /bin/"
227240
0 commit comments