Skip to content

Commit 213676c

Browse files
committed
Adjusted dav1d script for linux.
1 parent fea6190 commit 213676c

1 file changed

Lines changed: 133 additions & 99 deletions

File tree

TMessagesProj/jni/build_dav1d_clang.sh

Lines changed: 133 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,74 @@ function checkPreRequisites {
3939
fi
4040
}
4141

42+
function build_one {
43+
echo "Building ${ARCH}..."
44+
45+
if [[ "${CURRENT_PLATFORM}" == "Darwin"* ]]; then
46+
PREBUILT=${NDK}/toolchains/llvm/prebuilt/darwin-x86_64
47+
else
48+
PREBUILT=${NDK}/toolchains/${PREBUILT_ARCH}${PREBUILT_MIDDLE}-${VERSION}/prebuilt/${BUILD_PLATFORM}
49+
fi
50+
51+
PLATFORM=${NDK}/platforms/android-${ANDROID_API}/arch-${ARCH}
52+
53+
if [[ "${CURRENT_PLATFORM}" == "Darwin"* ]]; then
54+
TOOLS_PREFIX="${PREBUILT}/bin/${ARCH_NAME}-linux-${BIN_MIDDLE}-"
55+
else
56+
TOOLS_PREFIX="${LLVM_BIN}/${ARCH_NAME}-linux-${BIN_MIDDLE}-"
57+
fi
58+
59+
LD=${TOOLS_PREFIX}ld
60+
AR=${TOOLS_PREFIX}ar
61+
STRIP=${TOOLS_PREFIX}strip
62+
NM=${TOOLS_PREFIX}nm
63+
64+
if [[ "${CURRENT_PLATFORM}" == "Darwin"* ]]; then
65+
CC_PREFIX="${PREBUILT}/bin/${CLANG_PREFIX}-linux-${BIN_MIDDLE}${ANDROID_API}-"
66+
else
67+
CC_PREFIX="${LLVM_BIN}/${CLANG_PREFIX}-linux-${BIN_MIDDLE}${ANDROID_API}-"
68+
fi
69+
70+
CC=${CC_PREFIX}clang
71+
CXX=${CC_PREFIX}clang++
72+
CROSS_PREFIX=${PREBUILT}/bin/${ARCH_NAME}-linux-${BIN_MIDDLE}-
73+
74+
INCLUDES=" -I${LIBVPXPREFIX}/include"
75+
LIBS=" -L${LIBVPXPREFIX}/lib"
76+
77+
echo "Cleaning..."
78+
rm -f config.h
79+
make clean || true
80+
81+
echo "Configuring..."
82+
83+
meson setup builddir-${ARCH} \
84+
--prefix "$PREFIX" \
85+
--libdir="lib" \
86+
--includedir="include" \
87+
--buildtype=release -Denable_tests=false -Denable_tools=false -Ddefault_library=static \
88+
--cross-file <(echo "
89+
[binaries]
90+
c = '${CC}'
91+
ar = '${AR}'
92+
93+
[host_machine]
94+
system = 'android'
95+
cpu_family = '${MESON_CPU_FAMILY}'
96+
cpu = '${MESON_CPU}'
97+
endian = 'little'
98+
")
99+
ninja -C builddir-${ARCH}
100+
ninja -C builddir-${ARCH} install
101+
}
102+
42103
setCurrentPlatform
43104
checkPreRequisites
44105

45106
cd dav1d
46107

47108
## common
48-
LLVM_PREFIX="${NDK}/toolchains/llvm/prebuilt/linux-x86_64"
109+
LLVM_PREFIX="${NDK}/toolchains/llvm/prebuilt/${BUILD_PLATFORM}"
49110
LLVM_BIN="${LLVM_PREFIX}/bin"
50111
VERSION="4.9"
51112
ANDROID_API=21
@@ -54,110 +115,83 @@ function build {
54115
for arg in "$@"; do
55116
case "${arg}" in
56117
x86_64)
118+
ANDROID_API=21
119+
57120
ARCH=x86_64
58-
PREFIX="$(pwd)/build/"
59-
60-
echo "Building ${ARCH}..."
61-
echo "Configuring..."
62-
63-
meson setup builddir-x86_64 \
64-
--prefix "$PREFIX/x86_64" \
65-
--libdir="lib" \
66-
--includedir="include" \
67-
--buildtype=release -Denable_tests=false -Denable_tools=false -Ddefault_library=static \
68-
--cross-file <(echo "
69-
[binaries]
70-
c = '${NDK}/toolchains/llvm/prebuilt/darwin-x86_64/bin/x86_64-linux-android21-clang'
71-
ar = '${NDK}/toolchains/llvm/prebuilt/darwin-x86_64/bin/x86_64-linux-android-ar'
72-
73-
[host_machine]
74-
system = 'android'
75-
cpu_family = 'x86_64'
76-
cpu = 'x86_64'
77-
endian = 'little'
78-
")
79-
ninja -C builddir-x86_64
80-
ninja -C builddir-x86_64 install
81-
;;
82-
x86)
83-
ARCH=x86
84-
PREFIX="$(pwd)/build/"
85-
86-
echo "Building ${ARCH}..."
87-
echo "Configuring..."
88-
89-
meson setup builddir-x86 \
90-
--prefix "$PREFIX/x86" \
91-
--libdir="lib" \
92-
--includedir="include" \
93-
--buildtype=release -Denable_tests=false -Denable_tools=false -Ddefault_library=static \
94-
--cross-file <(echo "
95-
[binaries]
96-
c = '${NDK}/toolchains/llvm/prebuilt/darwin-x86_64/bin/i686-linux-android21-clang'
97-
ar = '${NDK}/toolchains/llvm/prebuilt/darwin-x86_64/bin/i686-linux-android-ar'
98-
99-
[host_machine]
100-
system = 'android'
101-
cpu_family = 'x86'
102-
cpu = 'i686'
103-
endian = 'little'
104-
")
105-
ninja -C builddir-x86
106-
ninja -C builddir-x86 install
121+
ARCH_NAME=x86_64
122+
PREBUILT_ARCH=x86_64
123+
PREBUILT_MIDDLE=
124+
CLANG_PREFIX=x86_64
125+
BIN_MIDDLE=android
126+
CPU=x86_64
127+
PREFIX="$(pwd)/build/x86_64"
128+
LIBVPXPREFIX=../libvpx/build/$ARCH_NAME
129+
ADDITIONAL_CONFIGURE_FLAG="--disable-asm"
130+
131+
MESON_CPU=x86_64
132+
MESON_CPU_FAMILY=x86_64
133+
134+
build_one
107135
;;
108136
arm64)
109-
ARCH=arm64
110-
PREFIX="$(pwd)/build/"
111-
112-
echo "Building ${ARCH}..."
113-
echo "Configuring..."
114-
115-
meson setup builddir-arm64 \
116-
--prefix "$PREFIX/arm64-v8a" \
117-
--libdir="lib" \
118-
--includedir="include" \
119-
--buildtype=release -Denable_tests=false -Denable_tools=false -Ddefault_library=static \
120-
--cross-file <(echo "
121-
[binaries]
122-
c = '${NDK}/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang'
123-
ar = '${NDK}/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android-ar'
124-
125-
[host_machine]
126-
system = 'android'
127-
cpu_family = 'aarch64'
128-
cpu = 'arm64'
129-
endian = 'little'
130-
")
131-
ninja -C builddir-arm64
132-
ninja -C builddir-arm64 install
137+
ANDROID_API=21
133138

139+
ARCH=arm64
140+
ARCH_NAME=aarch64
141+
PREBUILT_ARCH=aarch64
142+
PREBUILT_MIDDLE="-linux-android"
143+
CLANG_PREFIX=aarch64
144+
BIN_MIDDLE=android
145+
CPU=arm64-v8a
146+
OPTIMIZE_CFLAGS=
147+
PREFIX="$(pwd)/build/arm64-v8a"
148+
LIBVPXPREFIX=../libvpx/build/$CPU
149+
ADDITIONAL_CONFIGURE_FLAG="--enable-neon --enable-optimizations"
150+
151+
MESON_CPU=arm64
152+
MESON_CPU_FAMILY=aarch64
153+
154+
build_one
134155
;;
135156
arm)
157+
ANDROID_API=16
158+
136159
ARCH=arm
137-
PREFIX="$(pwd)/build/"
138-
139-
echo "Building ${ARCH}..."
140-
echo "Configuring..."
141-
142-
meson setup builddir-armv7 \
143-
--prefix "$PREFIX/armeabi-v7a" \
144-
--libdir="lib" \
145-
--includedir="include" \
146-
--buildtype=release -Denable_tests=false -Denable_tools=false -Ddefault_library=static \
147-
--cross-file <(echo "
148-
[binaries]
149-
c = '${NDK}/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi21-clang'
150-
ar = '${NDK}/toolchains/llvm/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-ar'
151-
152-
[host_machine]
153-
system = 'android'
154-
cpu_family = 'arm'
155-
cpu = 'armv7'
156-
endian = 'little'
157-
") \
158-
-Dc_args="-DDAV1D_NO_GETAUXVAL"
159-
ninja -C builddir-armv7
160-
ninja -C builddir-armv7 install
160+
ARCH_NAME=arm
161+
PREBUILT_ARCH=arm
162+
PREBUILT_MIDDLE="-linux-androideabi"
163+
CLANG_PREFIX=armv7a
164+
BIN_MIDDLE=androideabi
165+
CPU=armv7-a
166+
OPTIMIZE_CFLAGS="-marm -march=$CPU"
167+
PREFIX="$(pwd)/build/armeabi-v7a"
168+
LIBVPXPREFIX=../libvpx/build/armeabi-v7a
169+
ADDITIONAL_CONFIGURE_FLAG=--enable-neon
170+
171+
MESON_CPU=armv7
172+
MESON_CPU_FAMILY=arm
173+
174+
build_one
175+
;;
176+
x86)
177+
ANDROID_API=16
178+
179+
ARCH=x86
180+
ARCH_NAME=i686
181+
PREBUILT_ARCH=x86
182+
PREBUILT_MIDDLE=
183+
CLANG_PREFIX=i686
184+
BIN_MIDDLE=android
185+
CPU=i686
186+
OPTIMIZE_CFLAGS="-march=$CPU"
187+
PREFIX="$(pwd)/build/x86"
188+
LIBVPXPREFIX=../libvpx/build/$ARCH
189+
ADDITIONAL_CONFIGURE_FLAG="--disable-x86asm --disable-inline-asm --disable-asm"
190+
191+
MESON_CPU=i686
192+
MESON_CPU_FAMILY=x86
193+
194+
build_one
161195
;;
162196
*)
163197
;;
@@ -169,4 +203,4 @@ if (( $# == 0 )); then
169203
build x86_64 x86 arm arm64
170204
else
171205
build $@
172-
fi
206+
fi

0 commit comments

Comments
 (0)