You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

236 lines
4.8 KiB

#!/bin/bash
# 接收参数
TARGET="$2"
WORK="$3"
STAGE=$9
# 记录已经完成的编译阶段,如果上一次编译发生错误,则提前终此脚本运行
function complete_stage() {
local next=$1
cd $SHELLROOT
if [ $2 -eq 0 ]
then
echo -n $next > $TARGET/stage
else
exit 1
fi
sleep 2
}
#######################################################################################################################################################################################
# 开始编译
cd $SHELLROOT # 建入到 本编译脚本项目 的根目录
mkdir -p tempDIR # 新建 本编译脚本项目 在运行所需要的临时工作目录
echo -ne "\033]0;Preparing\007" # 检查当前编译工作已经进入哪个阶段
if [ ! $STAGE ] ; then
S=`cat $TARGET/stage 2>/dev/null`
if [[ ! $S ]] ; then
STAGE=0
else
STAGE=$S
fi
fi
echo " * 使用 GCC 编译器"
# STAGE 0.1 -- zlib
NEXT=0.2
if [[ $STAGE && $STAGE < $NEXT ]] ; then
echo $BOUNDARYSTART
${SHELLROOT}/compileing/compile-zlib.sh "$TARGET"
complete_stage $NEXT $?
echo $BOUNDARYEND
fi
# STAGE 0.2 -- bzip2
NEXT=0.3
if [[ $STAGE && $STAGE < $NEXT ]] ; then
echo $BOUNDARYSTART
${SHELLROOT}/compileing/compile-bzip2.sh "$TARGET"
complete_stage $NEXT $?
echo $BOUNDARYEND
fi
# STAGE 0.3 -- lzma
NEXT=0.4
if [[ $STAGE && $STAGE < $NEXT ]] ; then
echo $BOUNDARYSTART
${SHELLROOT}/compileing/compile-lzma.sh "$TARGET" "$CONFIGOPTS"
complete_stage $NEXT $?
echo $BOUNDARYEND
fi
# STAGE 1.1 -- Boost
NEXT=1.2
if [[ $STAGE && $STAGE < $NEXT ]] ; then
echo $BOUNDARYSTART
${SHELLROOT}/compileing/compile-boost.sh "$TARGET" "$CONFIGOPTS"
complete_stage $NEXT $?
echo $BOUNDARYEND
fi
# STAGE 1.2 -- Jpeg
NEXT=1.3
if [[ $STAGE && $STAGE < $NEXT ]] ; then
echo $BOUNDARYSTART
${SHELLROOT}/compileing/compile-Jpeg.sh "$TARGET" "$CONFIGOPTS"
complete_stage $NEXT $?
echo $BOUNDARYEND
fi
# STAGE 1.3 -- Tiff
NEXT=1.4
if [[ $STAGE && $STAGE < $NEXT ]] ; then
echo $BOUNDARYSTART
${SHELLROOT}/compileing/compile-Tiff.sh "$TARGET" "$CONFIGOPTS"
complete_stage $NEXT $?
echo $BOUNDARYEND
fi
# STAGE 1.4 -- PNG
NEXT=1.5
if [[ $STAGE && $STAGE < $NEXT ]] ; then
echo $BOUNDARYSTART
${SHELLROOT}/compileing/compile-PNG.sh "$TARGET" "$CONFIGOPTS"
complete_stage $NEXT $?
echo $BOUNDARYEND
fi
# STAGE 1.5 -- FreeType
NEXT=1.6
if [[ $STAGE && $STAGE < $NEXT ]] ; then
echo $BOUNDARYSTART
${SHELLROOT}/compileing/compile-FreeType.sh "$TARGET" "$CONFIGOPTS"
complete_stage $NEXT $?
echo $BOUNDARYEND
fi
# STAGE 1.6 -- OpenEXR
NEXT=2.1
if [[ $STAGE && $STAGE < $NEXT ]] ; then
echo $BOUNDARYSTART
${SHELLROOT}/compileing/compile-OpenEXR.sh "$TARGET" "$CONFIGOPTS"
complete_stage $NEXT $?
echo $BOUNDARYEND
fi
# STAGE 2.1 -- OpenImageIO
NEXT=2.2
if [[ $STAGE && $STAGE < $NEXT ]] ; then
echo $BOUNDARYSTART
${SHELLROOT}/compileing/compile-OpenImageIO.sh "$TARGET" "$CONFIGOPTS"
complete_stage $NEXT $?
echo $BOUNDARYEND
fi
# STAGE 3 -- Qt
NEXT=4.1
if [[ $STAGE && $STAGE < $NEXT ]] ; then
echo $BOUNDARYSTART
${SHELLROOT}/compileing/compile-qt.sh "$TARGET" "$CONFIGOPTS"
complete_stage $NEXT $?
echo $BOUNDARYEND
fi
# STAGE 4.1 -- Embree
NEXT=4.2
if [[ $STAGE && $STAGE < $NEXT ]] ; then
echo $BOUNDARYSTART
${SHELLROOT}/compileing/compile-Embree.sh "$TARGET"
complete_stage $NEXT $?
echo $BOUNDARYEND
fi
# STAGE 4.2 -- Oidn
NEXT=4.3
if [[ $STAGE && $STAGE < $NEXT ]] ; then
echo $BOUNDARYSTART
${SHELLROOT}/compileing/compile-Oidn.sh "$TARGET"
complete_stage $NEXT $?
echo $BOUNDARYEND
fi
# STAGE 4.3 -- C-blosc
NEXT=4.4
if [[ $STAGE && $STAGE < $NEXT ]] ; then
echo $BOUNDARYSTART
${SHELLROOT}/compileing/compile-CBlosc.sh "$TARGET"
complete_stage $NEXT $?
echo $BOUNDARYEND
fi
# STAGE 4.4 -- TBB
NEXT=4.5
if [[ $STAGE && $STAGE < $NEXT ]] ; then
echo $BOUNDARYSTART
${SHELLROOT}/compileing/compile-TBB.sh "$TARGET"
complete_stage $NEXT $?
echo $BOUNDARYEND
fi
# STAGE 4.5 -- NVRTC
NEXT=5
if [[ $STAGE && $STAGE < $NEXT ]] ; then
echo $BOUNDARYSTART
${SHELLROOT}/compileing/compile-NVRTC.sh "$TARGET"
complete_stage $NEXT $?
echo $BOUNDARYEND
fi
# STAGE 5 -- LuxCore
NEXT=6
if [[ $STAGE && $STAGE < $NEXT ]] ; then
echo $BOUNDARYSTART
${SHELLROOT}/compileing/compile-LuxCore.sh "$TARGET"
complete_stage $NEXT $?
echo $BOUNDARYEND
fi
# STAGE 6 -- LuxMark
NEXT=7
if [[ $STAGE && $STAGE < $NEXT ]] ; then
echo $BOUNDARYSTART
${SHELLROOT}/compileing/compile-LuxMark.sh
complete_stage $NEXT $?
echo $BOUNDARYEND
fi
# 编译已经完成,执行 install脚本,完成最后的安装部署
echo $BOUNDARYSTART
echo -e "\n 正在完成最后的安装部署\n"
if ! ${SHELLROOT}/utils/install "$TARGET" "LuxCore" "${SHELLROOT}/distfiles" ; then
echo " * 安装失败"
else
echo -e "\n * 安装成功 $TARGET/$LUX_TAG"
echo -e " * 恭喜你,LuxCore已经编译安装成功\n"
fi
echo $BOUNDARYEND
sleep 2
exit 0