|
|
|
|
|
echo
|
|
|
echo
|
|
|
echo ---------------------------------------------------------------
|
|
|
echo check ENV
|
|
|
echo ---------------------------------------------------------------
|
|
|
|
|
|
# 从环境变量获取必要参数
|
|
|
# 例如 /home/barry/Qt5.9.6/5.9.6
|
|
|
echo ENV_QT_PATH $ENV_QT_PATH
|
|
|
qt_cmake_path=$ENV_QT_PATH/gcc_64/lib/cmake/Qt5
|
|
|
|
|
|
# 获取绝对路径,保证其他目录执行此脚本依然正确
|
|
|
{
|
|
|
cd $(dirname "$0")
|
|
|
script_path=$(pwd)
|
|
|
cd -
|
|
|
} &> /dev/null # disable output
|
|
|
# 设置当前目录,cd的目录影响接下来执行程序的工作目录
|
|
|
old_cd=$(pwd)
|
|
|
cd $(dirname "$0")
|
|
|
|
|
|
# 启动参数声明
|
|
|
build_mode=RelWithDebInfo
|
|
|
|
|
|
echo
|
|
|
echo
|
|
|
echo ---------------------------------------------------------------
|
|
|
echo check build param[Debug/Release/MinSizeRel/RelWithDebInfo]
|
|
|
echo ---------------------------------------------------------------
|
|
|
|
|
|
# 编译参数检查
|
|
|
build_mode=$(echo $1)
|
|
|
if [[ $build_mode != "Release" && $build_mode != "Debug" && $build_mode != "MinSizeRel" && $build_mode != "RelWithDebInfo" ]]; then
|
|
|
echo "error: unkonow build mode -- $1"
|
|
|
exit 1
|
|
|
fi
|
|
|
|
|
|
# 提示
|
|
|
echo current build mode: $build_mode
|
|
|
|
|
|
# 环境变量设置
|
|
|
#export PATH=$qt_gcc_path/bin:$PATH
|
|
|
|
|
|
echo
|
|
|
echo
|
|
|
echo ---------------------------------------------------------------
|
|
|
echo begin cmake build
|
|
|
echo ---------------------------------------------------------------
|
|
|
|
|
|
# 删除输出目录
|
|
|
output_path=$script_path../../output
|
|
|
if [ -d "$output_path" ]; then
|
|
|
rm -rf $output_path
|
|
|
fi
|
|
|
# 删除临时目录
|
|
|
build_path=$script_path/../build_temp
|
|
|
if [ -d "$build_path" ]; then
|
|
|
rm -rf $build_path
|
|
|
fi
|
|
|
mkdir $build_path
|
|
|
cd $build_path
|
|
|
|
|
|
cmake_params="-DCMAKE_PREFIX_PATH=$qt_cmake_path -DCMAKE_BUILD_TYPE=$build_mode"
|
|
|
cmake $cmake_params ../..
|
|
|
if [ $? -ne 0 ] ;then
|
|
|
echo "cmake failed"
|
|
|
exit 1
|
|
|
fi
|
|
|
|
|
|
cmake --build . --config $build_mode -j8
|
|
|
if [ $? -ne 0 ] ;then
|
|
|
echo "cmake build failed"
|
|
|
exit 1
|
|
|
fi
|
|
|
|
|
|
echo
|
|
|
echo
|
|
|
echo ---------------------------------------------------------------
|
|
|
echo finish!!!
|
|
|
echo ---------------------------------------------------------------
|
|
|
|
|
|
# 恢复当前目录
|
|
|
cd $old_cd
|
|
|
exit 0
|