79 lines
2.7 KiB
Bash
79 lines
2.7 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
# SET BUILD OPTIONS
|
||
|
case ${ARCH} in
|
||
|
armv7 | armv7s)
|
||
|
ASM_OPTIONS="-DENABLE_ASSEMBLY=1 -DCROSS_COMPILE_ARM=1"
|
||
|
;;
|
||
|
arm64*)
|
||
|
ASM_OPTIONS="-DENABLE_ASSEMBLY=0 -DCROSS_COMPILE_ARM=1"
|
||
|
;;
|
||
|
x86-64-mac-catalyst)
|
||
|
ASM_OPTIONS="-DENABLE_ASSEMBLY=0 -DCROSS_COMPILE_ARM=0"
|
||
|
;;
|
||
|
*)
|
||
|
ASM_OPTIONS="-DENABLE_ASSEMBLY=1 -DCROSS_COMPILE_ARM=0"
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
mkdir -p "${BUILD_DIR}" || return 1
|
||
|
cd "${BUILD_DIR}" || return 1
|
||
|
|
||
|
# @TODO TEST THESE
|
||
|
# fix x86 and x86_64 assembly
|
||
|
${SED_INLINE} 's/win64/macho64 -DPREFIX/g' ${BASEDIR}/src/x265/source/cmake/CMakeASM_NASMInformation.cmake
|
||
|
${SED_INLINE} 's/win/macho/g' ${BASEDIR}/src/x265/source/cmake/CMakeASM_NASMInformation.cmake
|
||
|
|
||
|
# fixing constant shift
|
||
|
${SED_INLINE} 's/lsr 16/lsr #16/g' ${BASEDIR}/src/x265/source/common/arm/blockcopy8.S
|
||
|
|
||
|
# fixing leading underscores
|
||
|
${SED_INLINE} 's/function x265_/function _x265_/g' ${BASEDIR}/src/x265/source/common/arm/*.S
|
||
|
${SED_INLINE} 's/ x265_/ _x265_/g' ${BASEDIR}/src/x265/source/common/arm/pixel-util.S
|
||
|
|
||
|
# fixing relocation errors
|
||
|
# ${SED_INLINE} 's/sad12_mask:/sad12_mask_bytes:/g' ${BASEDIR}/src/x265/source/common/arm/sad-a.S
|
||
|
# ${SED_INLINE} 's/g_lumaFilter:/g_lumaFilter_bytes:/g' ${BASEDIR}/src/x265/source/common/arm/ipfilter8.S
|
||
|
# ${SED_INLINE} 's/g_chromaFilter:/g_chromaFilter_bytes:/g' ${BASEDIR}/src/x265/source/common/arm/ipfilter8.S
|
||
|
# ${SED_INLINE} 's/\.text/.equ sad12_mask, .-sad12_mask_bytes\
|
||
|
# \
|
||
|
# .text/g' ${BASEDIR}/src/x265/source/common/arm/sad-a.S
|
||
|
# ${SED_INLINE} 's/\.text/.equ g_lumaFilter, .-g_lumaFilter_bytes\
|
||
|
# .equ g_chromaFilter, .-g_chromaFilter_bytes\
|
||
|
# \
|
||
|
# .text/g' ${BASEDIR}/src/x265/source/common/arm/ipfilter8.S
|
||
|
|
||
|
# WORKAROUND TO USE A CUSTOM BUILD FILE
|
||
|
overwrite_file "${BASEDIR}"/tools/patch/cmake/x265/CMakeLists.txt "${BASEDIR}"/src/"${LIB_NAME}"/source/CMakeLists.txt || return 1
|
||
|
|
||
|
cmake -Wno-dev \
|
||
|
-DCMAKE_VERBOSE_MAKEFILE=0 \
|
||
|
-DCMAKE_C_FLAGS="${CFLAGS}" \
|
||
|
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
|
||
|
-DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
|
||
|
-DCMAKE_SYSROOT="${SDK_PATH}" \
|
||
|
-DCMAKE_FIND_ROOT_PATH="${SDK_PATH}" \
|
||
|
-DCMAKE_OSX_SYSROOT="$(get_sdk_name)" \
|
||
|
-DCMAKE_OSX_ARCHITECTURES="$(get_cmake_osx_architectures)" \
|
||
|
-DCMAKE_SYSTEM_NAME="${CMAKE_SYSTEM_NAME}" \
|
||
|
-DCMAKE_BUILD_TYPE=Release \
|
||
|
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
|
||
|
-DCMAKE_C_COMPILER="$CC" \
|
||
|
-DCMAKE_CXX_COMPILER="$CXX" \
|
||
|
-DCMAKE_LINKER="$LD" \
|
||
|
-DCMAKE_AR="$(xcrun --sdk $(get_sdk_name) -f ar)" \
|
||
|
-DCMAKE_AS="$AS" \
|
||
|
-DSTATIC_LINK_CRT=1 \
|
||
|
-DENABLE_PIC=1 \
|
||
|
-DENABLE_CLI=0 \
|
||
|
${ASM_OPTIONS} \
|
||
|
-DCMAKE_SYSTEM_PROCESSOR="$(get_target_cpu)" \
|
||
|
-DENABLE_SHARED=0 "${BASEDIR}"/src/"${LIB_NAME}"/source || return 1
|
||
|
|
||
|
make -j$(get_cpu_count) || return 1
|
||
|
|
||
|
make install || return 1
|
||
|
|
||
|
# MANUALLY COPY PKG-CONFIG FILES
|
||
|
cp x265.pc "${INSTALL_PKG_CONFIG_DIR}" || return 1
|