-
Notifications
You must be signed in to change notification settings - Fork 94
/
Copy pathbuildaom
executable file
·38 lines (32 loc) · 1.63 KB
/
buildaom
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
#!/bin/bash
set -e
shopt -s extglob
SCRIPT=`readlink -fn "$0"`
if [ "${ACTION}" == "clean" ]; then
echo Remove "${OBJECT_FILE_DIR}"
[ -n "${OBJECT_FILE_DIR}" -a -d "${OBJECT_FILE_DIR}" ] && rm -rf "${OBJECT_FILE_DIR}"
else
# For cmake & yasm
PATH=$PATH:/opt/homebrew/bin:/usr/local/bin
echo Build in ${OBJECT_FILE_DIR}
for ARCH in $ARCHS; do
mkdir -p "${OBJECT_FILE_DIR}/${ARCH}"
cd "${OBJECT_FILE_DIR}/${ARCH}"
if [ -f CMakeCache.txt -a CMakeCache.txt -nt "${SCRIPT}" ]; then
echo Skipping cmake
else
rm -f CMakeCache.txt
cmake "${SRCROOT}/${TARGET_NAME}" -Wno-deprecated -DCMAKE_INSTALL_PREFIX="${BUILT_PRODUCTS_DIR}/${ARCH}" -DCMAKE_BUILD_TYPE=${CONFIGURATION} -DCMAKE_C_FLAGS=-fapplication-extension -DBUILD_SHARED_LIBS=1 -DCMAKE_OSX_ARCHITECTURES=${ARCH} -DCONFIG_AV1_ENCODER=0 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TOOLS=0 -DAOM_TARGET_CPU=${ARCH}
fi
make -j`sysctl -n hw.physicalcpu` install
done
# Combine into Universal
echo Installing into ${BUILT_PRODUCTS_DIR}/universal
mkdir -p "${BUILT_PRODUCTS_DIR}/universal/include"
cp -pr "${BUILT_PRODUCTS_DIR}/${ARCHS/ */}/include/aom" "${BUILT_PRODUCTS_DIR}/universal/include/"
mkdir -p "${CONFIGURATION_BUILD_DIR}/universal/lib"
lipo -create "${BUILT_PRODUCTS_DIR}/"+(${ARCHS/ /|})"/lib/libaom.a" -output "${BUILT_PRODUCTS_DIR}/universal/lib/libaom.a"
# Install using the dylib's "install name" since that's what other FFmpeg dylibs will look for
DYLIB=$(basename `otool -DX ${BUILT_PRODUCTS_DIR}/${ARCHS/ */}/lib/libaom.dylib`)
lipo -create "${BUILT_PRODUCTS_DIR}/"+(${ARCHS/ /|})"/lib/libaom.dylib" -output "${BUILT_PRODUCTS_DIR}/universal/lib/${DYLIB}"
fi