代码拉取完成,页面将自动刷新
同步操作将从 OpenHarmony-SIG/ohos_ijkplayer 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#!/bin/bash
# Copyright (c) 2024 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# 执行该脚本时需进入到脚本所在目录
ROOT_DIR=$(pwd)
API_VERSION=11 # 三方库对应API版本,用于记录SDK路径,必须和"compileSdkVersion"字段表示的API版本保持一致
SDK_DIR=$ROOT_DIR/../ohos-sdk-$API_VERSION/linux/$API_VERSION # SDK路径(流水线环境中SDK路径)
LYCIUM_TOOLS_URL=https://gitee.com/openharmony-sig/tpc_c_cplusplus.git
LYCIUM_ROOT_DIR=$ROOT_DIR/tpc_c_cplusplus
LYCIUM_TOOLS_DIR=$LYCIUM_ROOT_DIR/lycium
LYCIUM_THIRDPARTY_DIR=$LYCIUM_ROOT_DIR/thirdparty
DEPENDS_DIR=$ROOT_DIR/doc # 依赖库编译脚本在仓库中的位置
FFMPEG_NAME=FFmpeg-ff4.0 # 依赖库名
LIBYUV_NAME=libyuv-ijk # 依赖库名
SOUNDTOUCH_NAME=soundtouch-ijk # 依赖库名
OPESSL_NAME=openssl_1_1_1w # FFmpeg的依赖库名,需和依赖库一起安装
CI_OUTPUT_DIR=$ROOT_DIR/../out/tpc/ # hap/har安装目录
LIBS_NAME=("FFmpeg-ff4.0" "libyuv-ijk" "soundtouch-ijk" "openssl_1_1_1w")
PACKAGE_NAME=("FFmpeg-ff4.0-ijk0.8.8-20210426-001.tar.gz" "yuv-ijk-r0.2.1-dev.zip" "soundtouch-ijk-r0.1.2-dev.zip" "openssl-OpenSSL_1_1_1w.zip")
function prepare_lycium_tools()
{
local commands=("gcc" "make" "cmake" "pkg-config" "autoconf" "autoreconf" "automake" "patch" "libtool" "autopoint" "gperf" \
"tcl8.6-dev" "wget" "unzip" "gccgo-go" "flex " "bison" "premake4" "python3" "python3-pip" \
"ninja-build" "meson" "sox" "gfortran" "subversion" "build-essential" "module-assistant" " gcc-multilib" \
"g++-multilib" "libltdl7-dev" "cabextract" "libboost-all-dev" "libxml2-utils" "gettext" "libxml-libxml-perl" \
"libxml2" "libxml2-dev" "libxml-parser-perl" "texinfo" "libtool-bin" "xmlto" "po4a" "yasm" "nasm" "xutils-dev" \
"libx11-dev" "xtrans-dev" "gfortran-arm-linux-gnueabi" "gfortran-aarch64-linux-gnu")
apt update >> /dev/null
for cmd in ${commands[@]}
do
which $cmd >> /dev/null
if [ $? -ne 0 ]
then
echo "install $cmd"
apt install $cmd -y >> /dev/null
fi
done
}
function prepare_lycium()
{
if [ -d $LYCIUM_ROOT_DIR ]
then
rm -rf $LYCIUM_ROOT_DIR
fi
git clone $LYCIUM_TOOLS_URL -b support_x86 --depth=1
if [ $? -ne 0 ]
then
return 1
fi
cd $LYCIUM_TOOLS_DIR/Buildtools
tar -zxvf toolchain.tar.gz
if [ $? -ne 0 ]
then
echo "unpack sdk toolchain failed!!"
cd $OLDPWD
return 1
fi
cp toolchain/* $SDK_DIR/native/llvm/bin/
prepare_lycium_tools
ret=$?
cd $OLDPWD
return $ret
}
function copy_depends()
{
local dir=$1
local name=$2
if [ -d $LYCIUM_THIRDPARTY_DIR/$name ]
then
rm -rf $LYCIUM_THIRDPARTY_DIR/$name
fi
cp -arf $dir/$name $LYCIUM_THIRDPARTY_DIR/
}
function prepare_depends()
{
copy_depends $DEPENDS_DIR $LIBYUV_NAME
copy_depends $DEPENDS_DIR $SOUNDTOUCH_NAME
}
function check_sdk()
{
if [ ! -d $SDK_DIR ]
then
return 1
fi
export OHOS_SDK=$SDK_DIR
return 0
}
function check_copy_shasum()
{
local libpath=$1
local pack_name=$2
local libname=$3
cd $LYCIUM_THIRDPARTY_DIR/$libpath
if [ ! -f ./SHA512SUM ]
then
sha512sum $pack_name > ./SHA512SUM
fi
cp ./SHA512SUM $LYCIUM_TOOLS_DIR/usr/$libname/
cd $OLDPWD
}
function install_shasum()
{
check_copy_shasum $FFMPEG_NAME ${PACKAGE_NAME[0]} $FFMPEG_NAME
check_copy_shasum $LIBYUV_NAME ${PACKAGE_NAME[1]} yuv
check_copy_shasum $SOUNDTOUCH_NAME ${PACKAGE_NAME[2]} soundtouch
check_copy_shasum $OPESSL_NAME ${PACKAGE_NAME[3]} $OPESSL_NAME
}
function start_build()
{
local result=0
cd $LYCIUM_TOOLS_DIR
if [ $? -ne 0 ]
then
return 1
fi
bash build.sh $FFMPEG_NAME $LIBYUV_NAME $SOUNDTOUCH_NAME
result=$?
cd $OLDPWD
return $result
}
function install_depends()
{
local install_dir=$ROOT_DIR/ijkplayer/src/main/cpp/third_party/
cp -arf $LYCIUM_TOOLS_DIR/usr/$FFMPEG_NAME $install_dir/ffmpeg/ffmpeg
if [ $? -ne 0 ]
then
echo "FFmpeg build failed!"
return 1
fi
cp -arf $LYCIUM_TOOLS_DIR/usr/yuv $install_dir/yuv
if [ $? -ne 0 ]
then
echo "yuv build failed!"
return 1
fi
cp -arf $LYCIUM_TOOLS_DIR/usr/$OPESSL_NAME $install_dir/openssl
if [ $? -ne 0 ]
then
echo "FFmpeg depends openssl build failed!"
return 1
fi
cp -arf $LYCIUM_TOOLS_DIR/usr/soundtouch $install_dir/soundtouch
if [ $? -ne 0 ]
then
echo "soundtouch build failed!"
return 1
fi
if [ -d $CI_OUTPUT_DIR ]
then
cp -arf $LYCIUM_TOOLS_DIR/usr/$FFMPEG_NAME $CI_OUTPUT_DIR
cp -arf $LYCIUM_TOOLS_DIR/usr/yuv $CI_OUTPUT_DIR
cp -arf $LYCIUM_TOOLS_DIR/usr/$OPESSL_NAME $CI_OUTPUT_DIR
cp -arf $LYCIUM_TOOLS_DIR/usr/soundtouch $CI_OUTPUT_DIR
fi
return 0
}
function prebuild()
{
check_sdk
if [ $? -ne 0 ]
then
echo "ERROR: check_sdk failed!!!"
return 1
fi
prepare_lycium
if [ $? -ne 0 ]
then
echo "ERROR: prepare_lycium failed!!!"
return 1
fi
prepare_depends
start_build
if [ $? -ne 0 ]
then
echo "ERROR: start_build failed!!!"
return 1
fi
install_shasum
install_depends
if [ $? -ne 0 ]
then
echo "ERROR: install depends failed!!!"
return 1
fi
echo "prebuild success!!"
return 0
}
prebuild $*
ret=$?
echo "ret = $ret"
exit $ret
#EOF
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。