Skip to content

Commit fea6190

Browse files
committed
Added dav1d submodule.
1 parent 03a4c5e commit fea6190

5 files changed

Lines changed: 187 additions & 2 deletions

File tree

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,6 @@
1212
path = TMessagesProj/jni/ffmpeg
1313
url = https://github.com/FFmpeg/FFmpeg
1414
ignore = all
15+
[submodule "TMessagesProj/jni/dav1d"]
16+
path = TMessagesProj/jni/dav1d
17+
url = https://github.com/videolan/dav1d

TMessagesProj/jni/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ ${CMAKE_HOME_DIRECTORY}/ffmpeg/build/${ANDROID_ABI}/lib/libavresample.a,
1313
${CMAKE_HOME_DIRECTORY}/ffmpeg/build/${ANDROID_ABI}/lib/libavutil.a,
1414
${CMAKE_HOME_DIRECTORY}/ffmpeg/build/${ANDROID_ABI}/lib/libswresample.a,
1515
${CMAKE_HOME_DIRECTORY}/libvpx/build/${ANDROID_ABI}/lib/libvpx.a,
16-
${CMAKE_HOME_DIRECTORY}/ffmpeg/${ANDROID_ABI}/libdav1d.a,
16+
${CMAKE_HOME_DIRECTORY}/dav1d/build/${ANDROID_ABI}/lib/libdav1d.a,
1717
${CMAKE_HOME_DIRECTORY}/boringssl/build/${ANDROID_ABI}/ssl/libssl.a,
1818
${CMAKE_HOME_DIRECTORY}/boringssl/build/${ANDROID_ABI}/crypto/libcrypto.a,
1919
${CMAKE_HOME_DIRECTORY}/tde2e/${ANDROID_ABI}/libtde2e.a,
@@ -53,7 +53,7 @@ add_library(libvpx STATIC IMPORTED)
5353
set_target_properties(libvpx PROPERTIES IMPORTED_LOCATION ${CMAKE_HOME_DIRECTORY}/libvpx/build/${ANDROID_ABI}/lib/libvpx.a)
5454

5555
add_library(libdav1d STATIC IMPORTED)
56-
set_target_properties(libdav1d PROPERTIES IMPORTED_LOCATION ${CMAKE_HOME_DIRECTORY}/ffmpeg/${ANDROID_ABI}/libdav1d.a)
56+
set_target_properties(libdav1d PROPERTIES IMPORTED_LOCATION ${CMAKE_HOME_DIRECTORY}/dav1d/build/${ANDROID_ABI}/lib/libdav1d.a)
5757

5858
add_library(tde2e STATIC IMPORTED)
5959
set_target_properties(tde2e PROPERTIES IMPORTED_LOCATION ${CMAKE_HOME_DIRECTORY}/tde2e/${ANDROID_ABI}/libtde2e.a)
Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
#!/bin/bash
2+
set -e
3+
4+
function setCurrentPlatform {
5+
6+
CURRENT_PLATFORM="$(uname -s)"
7+
case "${CURRENT_PLATFORM}" in
8+
Darwin*)
9+
BUILD_PLATFORM=darwin-x86_64
10+
COMPILATION_PROC_COUNT=`sysctl -n hw.physicalcpu`
11+
;;
12+
Linux*)
13+
BUILD_PLATFORM=linux-x86_64
14+
COMPILATION_PROC_COUNT=$(nproc)
15+
;;
16+
*)
17+
echo -e "\033[33mWarning! Unknown platform ${CURRENT_PLATFORM}! falling back to linux-x86_64\033[0m"
18+
BUILD_PLATFORM=linux-x86_64
19+
COMPILATION_PROC_COUNT=1
20+
;;
21+
esac
22+
23+
echo "Build platform: ${BUILD_PLATFORM}"
24+
echo "Parallel jobs: ${COMPILATION_PROC_COUNT}"
25+
26+
}
27+
28+
function checkPreRequisites {
29+
30+
if ! [ -d "dav1d" ] || ! [ "$(ls -A dav1d)" ]; then
31+
echo -e "\033[31mFailed! Submodule 'dav1d' not found!\033[0m"
32+
echo -e "\033[31mTry to run: 'git submodule init && git submodule update'\033[0m"
33+
exit
34+
fi
35+
36+
if [ -z "$NDK" -a "$NDK" == "" ]; then
37+
echo -e "\033[31mFailed! NDK is empty. Run 'export NDK=[PATH_TO_NDK]'\033[0m"
38+
exit
39+
fi
40+
}
41+
42+
setCurrentPlatform
43+
checkPreRequisites
44+
45+
cd dav1d
46+
47+
## common
48+
LLVM_PREFIX="${NDK}/toolchains/llvm/prebuilt/linux-x86_64"
49+
LLVM_BIN="${LLVM_PREFIX}/bin"
50+
VERSION="4.9"
51+
ANDROID_API=21
52+
53+
function build {
54+
for arg in "$@"; do
55+
case "${arg}" in
56+
x86_64)
57+
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
107+
;;
108+
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
133+
134+
;;
135+
arm)
136+
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
161+
;;
162+
*)
163+
;;
164+
esac
165+
done
166+
}
167+
168+
if (( $# == 0 )); then
169+
build x86_64 x86 arm arm64
170+
else
171+
build $@
172+
fi

TMessagesProj/jni/dav1d

Submodule dav1d added at 42b2b24

TMessagesProj/jni/prepare.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,15 @@ def runStages():
392392
finish(1)
393393
finish(0)
394394

395+
stage('dav1d', """
396+
git submodule init && git submodule update
397+
cd dav1d && git reset --hard HEAD && cd ..
398+
export NDK={ndk}
399+
export NINJA_PATH=`which ninja`
400+
./build_dav1d_clang.sh {archesStr}
401+
echo "Built archs: {archesStr}"
402+
""".format(ndk=ndkPath,archesStr=' '.join(arches)))
403+
395404
stage('libvpx', """
396405
git submodule init && git submodule update
397406
cd libvpx && git reset --hard HEAD && cd ..

0 commit comments

Comments
 (0)