-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild-x265.sh
executable file
·76 lines (64 loc) · 1.29 KB
/
build-x265.sh
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
#!/bin/bash
set -euo pipefail
source $(dirname $0)/var.sh
LIB_PATH=modules/x265
BASE_FLAGS=(
-DCMAKE_TOOLCHAIN_FILE=$TOOLCHAIN_FILE
-DCMAKE_C_FLAGS="$CFLAGS"
-DCMAKE_CXX_FLAGS="$CXXFLAGS"
-DX64=1
-DX86_64=1
-DENABLE_LIBNUMA=OFF
-DENABLE_SHARED=OFF
-DENABLE_CLI=OFF
)
FLAGS_12BIT=(
"${BASE_FLAGS[@]}"
-DHIGH_BIT_DEPTH=ON
-DEXPORT_C_API=OFF
-DMAIN12=ON
)
FLAGS_10BIT=(
"${BASE_FLAGS[@]}"
-DHIGH_BIT_DEPTH=ON
-DEXPORT_C_API=OFF
)
FLAGS_MAIN=(
"${BASE_FLAGS[@]}"
-DCMAKE_INSTALL_PREFIX=$BUILD_DIR
-DEXTRA_LIB="x265_main10.a;x265_main12.a"
-DEXTRA_LINK_FLAGS=-L.
-DLINKED_10BIT=ON
-DLINKED_12BIT=ON
)
cd $LIB_PATH/source
rm -rf build
mkdir -p build
cd build
mkdir -p main 10bit 12bit
cd 12bit
emmake cmake ../.. -G"Unix Makefiles" "${FLAGS_12BIT[@]}"
emmake make clean
emmake make -j
cd ../10bit
emmake cmake ../.. -G"Unix Makefiles" "${FLAGS_10BIT[@]}"
emmake make clean
emmake make -j
cd ../main
ln -sf ../10bit/libx265.a libx265_main10.a
ln -sf ../12bit/libx265.a libx265_main12.a
emmake cmake ../.. -G"Unix Makefiles" "${FLAGS_MAIN[@]}"
emmake make clean
emmake make -j
mv libx265.a libx265_main.a
# Merge static libraries
emar -M <<EOF
CREATE libx265.a
ADDLIB libx265_main.a
ADDLIB libx265_main10.a
ADDLIB libx265_main12.a
SAVE
END
EOF
emmake make install -j
cd $ROOT_DIR