134 lines
3.7 KiB
Bash
Executable File
134 lines
3.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
base_path=$(pwd)
|
|
if [ $base_path == /home/* ]; then
|
|
build_path=${base_path}/build
|
|
else
|
|
build_path=/tmp/build
|
|
fi
|
|
qt_prefix_path="/opt/Qt/6.8.0/gcc_64"
|
|
|
|
debug_deploy=false
|
|
|
|
if [ -d ${qt_prefix_path} ]; then # 先找Qt6
|
|
cmake_qt_parameters="-DCMAKE_PREFIX_PATH=${qt_prefix_path} \
|
|
-DQT_QMAKE_EXECUTABLE=${qt_prefix_path}/bin/qmake \
|
|
-DQT_DIR=${qt_prefix_path}/lib/cmake/Qt6 \
|
|
-DQt6_DIR=${qt_prefix_path}/lib/cmake/Qt6 \
|
|
-DQt6Core_DIR=${qt_prefix_path}/lib/cmake/Qt6Core \
|
|
-DQt6Gui_DIR=${qt_prefix_path}/lib/cmake/Qt6Gui \
|
|
-DQt6Qml_DIR=${qt_prefix_path}/lib/cmake/Qt6Qml \
|
|
-DQt6Widgets_DIR=${qt_prefix_path}/lib/cmake/Qt6Widgets \
|
|
-DQt6Quick_DIR=${qt_prefix_path}/lib/cmake/Qt6Quick \
|
|
-DQt6Svg_DIR=${qt_prefix_path}/lib/cmake/Qt6Svg "
|
|
elif [ -d "/opt/Qt/5.15.2/gcc_64" ]; then
|
|
qt_prefix_path="/opt/Qt/5.15.2/gcc_64"
|
|
cmake_qt_parameters="-DCMAKE_PREFIX_PATH=${qt_prefix_path} \
|
|
-DQT_QMAKE_EXECUTABLE=${qt_prefix_path}/bin/qmake \
|
|
-DQT_DIR=${qt_prefix_path}/lib/cmake/Qt5 \
|
|
-DQt5_DIR=${qt_prefix_path}/lib/cmake/Qt5 \
|
|
-DQt5Core_DIR=${qt_prefix_path}/lib/cmake/Qt5Core \
|
|
-DQt5Gui_DIR=${qt_prefix_path}/lib/cmake/Qt5Gui \
|
|
-DQt5Qml_DIR=${qt_prefix_path}/lib/cmake/Qt5Qml \
|
|
-DQt5Widgets_DIR=${qt_prefix_path}/lib/cmake/Qt5Widgets \
|
|
-DQt5Quick_DIR=${qt_prefix_path}/lib/cmake/Qt5Quick \
|
|
-DQt5Svg_DIR=${qt_prefix_path}/lib/cmake/Qt5Svg "
|
|
else
|
|
cmake_qt_parameters=""
|
|
echo "please install qt6.8.0 or qt5.15.2 ..."
|
|
fi
|
|
|
|
function cmake_scan() {
|
|
if [ ! -d ${build_path} ]; then
|
|
mkdir ${build_path}
|
|
fi
|
|
|
|
if [ $debug_deploy = true ]; then
|
|
build_mode=-DCMAKE_BUILD_TYPE=Debug
|
|
echo "build application in debug mode."
|
|
else
|
|
build_mode=-DCMAKE_BUILD_TYPE=Release
|
|
echo "build application in release mode."
|
|
fi
|
|
|
|
cmake \
|
|
-G Ninja \
|
|
-S ${base_path} \
|
|
-B ${build_path} \
|
|
${cmake_qt_parameters} \
|
|
$build_mode
|
|
}
|
|
|
|
function build() {
|
|
if [ ! -f "${build_path}/CMakeCache.txt" ]; then
|
|
cmake_scan
|
|
fi
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
cmake \
|
|
--build ${build_path} \
|
|
--target all
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
function clean(){
|
|
rm -fr ${build_path}
|
|
}
|
|
|
|
function deploy() {
|
|
if [ -d ${build_path}/lib ]; then
|
|
rm -fr ${build_path}/lib
|
|
fi
|
|
mkdir ${build_path}/lib
|
|
ldd ${build_path}/Analyser/Analyser.AppImage | grep "=> /" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ${build_path}/lib
|
|
ldd ${build_path}/Analyser/Analyser.AppImage | grep "ld-linux" | awk '{print $1}' | xargs -I '{}' cp -v '{}' ${build_path}/lib
|
|
# ldd ${build_path}/OtaUpdate/SmartLockerUpdater | grep "=> /" | awk '{print $3}' | xargs -I '{}' cp -v '{}' ${build_path}/lib
|
|
# ldd ${build_path}/OtaUpdate/SmartLockerUpdater | grep "ld-linux" | awk '{print $1}' | xargs -I '{}' cp -v '{}' ${build_path}/lib
|
|
|
|
rm ${build_path}/lib/ld-linux-x86-64.so.2
|
|
rm ${build_path}/lib/libc.so.6
|
|
rm ${build_path}/lib/libm.so.6
|
|
rm ${build_path}/lib/libstdc++.so.6
|
|
cd build
|
|
cpack
|
|
cd ..
|
|
}
|
|
|
|
function change_log() {
|
|
commit_message=$(git log -1 --pretty=format:"%B")
|
|
echo "Latest commit message:"
|
|
echo "$commit_message"
|
|
echo "$commit_message" >${build_path}/CHANGELOG.txt
|
|
echo "Commit message has been written to ${build_path}/CHANGELOG.txt"
|
|
}
|
|
|
|
function main() {
|
|
local cmd=$1
|
|
shift 1
|
|
case $cmd in
|
|
build)
|
|
build
|
|
;;
|
|
scan)
|
|
cmake_scan
|
|
;;
|
|
clean)
|
|
clean
|
|
;;
|
|
deploy)
|
|
deploy
|
|
;;
|
|
changelog)
|
|
change_log
|
|
;;
|
|
*)
|
|
build
|
|
;;
|
|
esac
|
|
}
|
|
|
|
main $@
|