diff --git a/lycium/build.sh b/lycium/build.sh index 81be9c406adba8e0d2aecfd6bbe7114d39d04ffa..86d6837df49920f6102b2be6a01b3d50f1a98c86 100755 --- a/lycium/build.sh +++ b/lycium/build.sh @@ -23,6 +23,10 @@ fi export LYCIUM_BUILD_CHECK=$buildcheckflag export LYCIUM_BUILD_OS=$osname export LYCIUM_ROOT=$LYCIUM_ROOT + +export MAKE="make -j32" +export NINJA="ninja -j32" + if [ -z ${OHOS_SDK} ] then echo "OHOS_SDK 未设置, 请先下载安装ohos SDK, 并设置OHOS_SDK环境变量. " @@ -54,48 +58,18 @@ done hpksdir="../thirdparty/" # 所有 hpk 项目存放的目录 checkbuildenv() { - which gcc >/dev/null 2>&1 - if [ $? -ne 0 ] - then - echo "gcc 命令未安装, 请先安装 gcc 命令" - exit 1 - fi - echo "gcc 命令已安装" - which cmake >/dev/null 2>&1 - if [ $? -ne 0 ] - then - echo "cmake 命令未安装, 请先安装 cmake 命令" - exit 1 - fi - echo "cmake 命令已安装" - which make >/dev/null 2>&1 - if [ $? -ne 0 ] - then - echo "make 命令未安装. 请先安装 make 命令" - exit 1 - fi - echo "make 命令已安装" - which pkg-config >/dev/null 2>&1 - if [ $? -ne 0 ] - then - echo "pkg-config 命令未安装, 请先安装 pkg-config 命令" - exit 1 - fi - echo "pkg-config 命令已安装" - which autoreconf >/dev/null 2>&1 - if [ $? -ne 0 ] - then - echo "autoreconf 命令未安装, 请先安装 autoreconf 命令" - exit 1 - fi - echo "autoreconf 命令已安装" - which patch >/dev/null 2>&1 - if [ $? -ne 0 ] - then - echo "patch 命令未安装, 请先安装 patch 命令" - exit 1 - fi - echo "patch 命令已安装" + cmdlist=("gcc" "cmake" "make" "pkg-config" "autoconf" "autoreconf" "automake" \ + "patch" "unzip" "tar" "git" "ninja" "curl" "sha512sum") + for cmd in ${cmdlist[@]} + do + which $cmd >/dev/null 2>&1 + if [ $? -ne 0 ] + then + echo "$cmd 命令未安装, 请先安装 $cmd 命令" + exit 1 + fi + done + if [ ! -d $LYCIUM_ROOT/usr ] then echo "创建 $LYCIUM_ROOT/usr 目录" diff --git a/lycium/script/build_hpk.sh b/lycium/script/build_hpk.sh index 6c59d58e4b10538aad89fffe80b7a233fc4eefa8..b9ec0ffa8072ecc3474a304780841c0c6c191055 100755 --- a/lycium/script/build_hpk.sh +++ b/lycium/script/build_hpk.sh @@ -14,9 +14,6 @@ sure() { PKGBUILD_ROOT=$(cd $(dirname ${BASH_SOURCE[0]}); pwd) -# 加载库信息 -source ${PWD}/HPKBUILD - # 下载库压缩包 # 参数1 链接地址 # 参数2 压缩包名 @@ -30,18 +27,6 @@ download() { fi } -# 库的完整性校验 -checksum() { - sha512sum -c ${PWD}/$1 - ret=$? - if [ $ret -ne 0 ] - then - echo "$pkgname SHA512SUM 校验失败, 请确认 SHA512SUM 无误后, 重新编译." - rm -rf $packagename - exit $ret - fi -} - # 解压库 # 参数1 压缩包名 unpack() { @@ -49,24 +34,19 @@ unpack() { then if [[ "$1" == *.tar.gz ]] then - echo ${PWD}/$1 tar -zxvf ${PWD}/$1 > /dev/null elif [[ "$1" == *.tgz ]] then - echo ${PWD}/$1 tar -zxvf ${PWD}/$1 > /dev/null elif [[ "$1" == *.tar.xz ]] then - echo ${PWD}/$1 tar -xvJf ${PWD}/$1 > /dev/null elif [[ "$1" == *.tar.bz2 ]] then - echo ${PWD}/$1 tar -xvjf ${PWD}/$1 > /dev/null elif [[ "$1" == *.zip ]] then - echo ${PWD}/$1 unzip ${PWD}/$1 > /dev/null else echo "ERROR Package Format!" @@ -78,6 +58,21 @@ unpack() { fi } +# 加载库信息 +source ${PWD}/HPKBUILD + +# 库的完整性校验 +checksum() { + sha512sum -c ${PWD}/$1 + ret=$? + if [ $ret -ne 0 ] + then + echo "$pkg2name SHA512SUM 校验失败, 请确认 SHA512SUM 无误后, 重新编译." + rm -rf $packagename + exit $ret + fi +} + newdeps=() builddepends() { donelist=($*) @@ -117,7 +112,7 @@ recordbuildlibs() { buildargs= pkgconfigpath= cmakedependpath() { # 参数1为cpu type - buildargs="-DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_RPATH=ON -DCMAKE_SKIP_INSTALL_RPATH=ON -DCMAKE_TOOLCHAIN_FILE=${OHOS_SDK}/native/build/cmake/ohos.toolchain.cmake -DCMAKE_INSTALL_PREFIX=$LYCIUM_ROOT/usr/$pkgname/$1 -G \"Unix Makefiles\" -DOHOS_ARCH=$1 " + buildargs="-LH -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_RPATH=ON -DCMAKE_SKIP_INSTALL_RPATH=ON -DCMAKE_TOOLCHAIN_FILE=${OHOS_SDK}/native/build/cmake/ohos.toolchain.cmake -DCMAKE_INSTALL_PREFIX=$LYCIUM_ROOT/usr/$pkgname/$1 -G \"Unix Makefiles\" -DOHOS_ARCH=$1 " pkgconfigpath="" if [ ${#depends[@]} -ne 0 ] then @@ -167,8 +162,6 @@ checkmakedepends() { then echo "请先安装 $makedepend 命令, 才可以编译 $1" ismakedependready=false - else - echo "$makedepend 已安装" fi done if ! $ismakedependready @@ -230,6 +223,11 @@ builpackage() { then sure check fi + f=`type -t recoverpkgbuildenv` + if [ "x$f" = "xfunction" ] + then + sure recoverpkgbuildenv + fi sure recordbuildlibs $ARCH $pkgname $pkgver done echo "Build $pkgname $pkgver end!"