-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild.sh
executable file
·174 lines (134 loc) · 3.83 KB
/
build.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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
#!/usr/bin/env bash
# set -x
echo "$PATH"
cmake --version
if [[ "$EMSDK" == "" ]]; then
echo "EMSDK must be set"
exit 1
fi
# . $EMSDK/emsdk_env.sh
######
if [[ "$BUILD_OPENH264" == "" ]]; then
BUILD_OPENH264=1
fi
if [[ "$BUILD_OPENCV" == "" ]]; then
BUILD_OPENCV=1
fi
if [[ "$BUILD_FFMPEG" == "" ]]; then
BUILD_FFMPEG=1
fi
if [[ "$BUILD_MODULE" == "" ]]; then
BUILD_MODULE=1
fi
EXTRA_MAKE_ARGS=-j8
MODULE_BUILD_TESTS=OFF
MODULE_BUILD_TYPE=Release
######
BUILDDIR=build
OPENH264_SRCDIR=${PWD}/openh264
OPENH264_BUILDDIR=${PWD}/${BUILDDIR}/openh264
OPENCV_SRCDIR=${PWD}/opencv
OPENCV_BUILDDIR=${PWD}/${BUILDDIR}/opencv
FFMPEG_SRCDIR=${PWD}/FFmpeg
FFMPEG_BUILDDIR=${PWD}/${BUILDDIR}/ffmpeg
# prepare build directories
mkdir -p "$BUILDDIR" 2>/dev/null
mkdir -p "$OPENH264_BUILDDIR" 2>/dev/null
mkdir -p "$OPENCV_BUILDDIR" 2>/dev/null
mkdir -p "$FFMPEG_BUILDDIR" 2>/dev/null
# setup openh264
export PKG_CONFIG_PATH=${OPENH264_BUILDDIR}/lib/pkgconfig
export EM_PKG_CONFIG_PATH=${PKG_CONFIG_PATH}
function exitError() {
echo "ERROR: $*"
exit 1
}
function checkError(){
if [[ $? -ne 0 ]]; then
exitError "$*"
fi
}
######################
### Build OpenH264 ###
######################
if [[ $BUILD_OPENH264 -ne 0 ]]; then
pushd "$OPENH264_BUILDDIR" >/dev/null
echo "*************************"
echo "*** Building OpenH264 ***"
echo "*************************"
emmake make $EXTRA_MAKE_ARGS PREFIX="${OPENH264_BUILDDIR}" -f ${OPENH264_SRCDIR}/Makefile install
checkError "Build OpenH264"
popd 2> /dev/null
fi
####################
### Build OpenCV ###
####################
if [[ $BUILD_OPENCV -ne 0 ]]; then
pushd "$OPENCV_BUILDDIR" >/dev/null
echo "***********************"
echo "*** Building OpenCV ***"
echo "***********************"
python ${OPENCV_SRCDIR}/platforms/js/build_js.py . --build_wasm # --threads --simd
checkError "Build OpenCV"
cmake --build . --target install
checkError "Build OpenCV failed"
popd 2> /dev/null
fi
####################
### Build FFmpeg ###
####################
if [[ $BUILD_FFMPEG -ne 0 ]]; then
pushd "$FFMPEG_BUILDDIR" >/dev/null
echo "**************************"
echo "*** Configuring FFmpeg ***"
echo "**************************"
emconfigure "${FFMPEG_SRCDIR}/configure" \
--prefix="${FFMPEG_BUILDDIR}" \
--disable-x86asm \
--disable-asm \
--disable-inline-asm \
--disable-network \
--disable-doc \
--ar=emar \
--cc=emcc \
--cxx=em++ \
--objcc=emcc \
--dep-cc=emcc \
--enable-small \
--disable-runtime-cpudetect \
--disable-debug \
--disable-programs \
--enable-cross-compile \
--disable-avdevice \
--disable-swresample \
--disable-swscale \
--disable-postproc \
--disable-pthreads \
--enable-libopenh264 \
--disable-sdl2
checkError "Configure FFmpeg"
echo "***********************"
echo "*** Building FFmpeg ***"
echo "***********************"
emmake make $EXTRA_MAKE_ARGS install
checkError "Building FFmpeg"
popd >/dev/null
fi
#########################
### Build WASM Module ###
#########################
if [[ $BUILD_MODULE -ne 0 ]]; then
pushd "$BUILDDIR" >/dev/null
echo "******************************"
echo "*** Configuring VideoUtils ***"
echo "******************************"
emconfigure cmake .. -DCMAKE_BUILD_TYPE=${MODULE_BUILD_TYPE} -DINCLUDE_TESTS=${MODULE_BUILD_TESTS}
checkError "Configuring VideoUtils"
echo "***************************"
echo "*** Building VideoUtils ***"
echo "***************************"
emmake make $EXTRA_MAKE_ARGS install
checkError "Building VideoUtils"
popd >/dev/null
fi
exit 0