From e8b85e738712e493d1eb033ea5321c3c3e6bb3af Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Fri, 12 Jun 2026 17:56:10 +0800
Subject: [PATCH] Update QT build shell script for clean

---
 lvgl/build.sh |  170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 170 insertions(+), 0 deletions(-)

diff --git a/lvgl/build.sh b/lvgl/build.sh
new file mode 100755
index 0000000..5389530
--- /dev/null
+++ b/lvgl/build.sh
@@ -0,0 +1,170 @@
+#!/bin/bash
+
+# Git url
+GITURL=https://github.com/lvgl/lv_port_linux.git
+
+# branch
+BRANCH=release/v9.5
+
+# library name
+LIB_NAME=$(basename "$GITURL" .git)
+
+# Cross compiler for cross compile on Linux server
+CROSS_COMPILE=/opt/gcc-aarch32-10.3-2021.07/bin/arm-none-linux-gnueabihf-
+
+# compile jobs
+JOBS=`cat /proc/cpuinfo |grep "processor"|wc -l`
+
+# this project absolute path
+PRJ_PATH=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
+
+# top project absolute path
+TOP_PATH=$(realpath $PRJ_PATH/..)
+
+# binaries build prefix install path
+PREFIX_PATH=$TOP_PATH/install
+
+# binaries finally install path if needed
+#INST_PATH=/tftp
+
+# download taballs path
+TARBALL_PATH=$PRJ_PATH/tarballs
+
+# check installed or not file
+INST_FILE=$PREFIX_PATH/bin/lvglsim
+
+# shell script will exit once get command error
+set -e
+
+#+-------------------------+
+#| Shell script functions  |
+#+-------------------------+
+
+function pr_error() {
+    echo -e "\033[40;31m $1 \033[0m"
+}
+
+function pr_warn() {
+    echo -e "\033[40;33m $1 \033[0m"
+}
+
+function pr_info() {
+    echo -e "\033[40;32m $1 \033[0m"
+}
+
+function do_export()
+{
+    pr_warn "cross(${CROSS_COMPILE}) compile $LIB_NAME"
+
+    export CC=${CROSS_COMPILE}gcc
+    export CXX=${CROSS_COMPILE}g++
+    export AR=${CROSS_COMPILE}ar
+    export LD=${CROSS_COMPILE}ld
+    export STRIP=${CROSS_COMPILE}strip
+
+    export PKG_CONFIG_PATH=$PREFIX_PATH/lib/pkgconfig:$PKG_CONFIG_PATH
+    export LIBRARY_PATH=$PREFIX_PATH/lib/:$LIBRARY_PATH
+    export LDFLAGS="-L$PREFIX_PATH/lib"
+}
+
+function do_fetch()
+{
+    if [ -e ${INST_FILE} ] ; then
+        pr_warn "$LIB_NAME compiled already, exit..."
+        exit;
+    fi
+
+    if [ -d $LIB_NAME/lvgl ] ; then
+        pr_warn "$LIB_NAME source code fetched already"
+        return 0;
+    fi
+
+    pr_info "start fetch $LIB_NAME source code"
+    if [ ! -d $LIB_NAME ] ; then
+        git clone -b $BRANCH $GITURL
+    fi
+
+    cd $LIB_NAME
+    git submodule update --init --recursive
+
+    cd $PRJ_PATH
+}
+
+function do_patch()
+{
+    FILE=user_cross_compile_setup.cmake
+    TOOLCHAIN_ROOT=$(dirname $(dirname $CROSS_COMPILE))
+    TOOLCHAIN_PREFIX=$(basename $CROSS_COMPILE)
+
+    cd "$LIB_NAME" || exit 1
+
+    if grep -q "${TOOLCHAIN_PREFIX}" $FILE; then
+        pr_warn "toolchain already updated"
+        cd "$PRJ_PATH" || exit 1
+        return 0
+    fi
+
+    pr_info "modify toolchain config..."
+
+    sed -i \
+        -e "s#^set(tools .*#set(tools ${TOOLCHAIN_ROOT})#" \
+        -e "s#arm-openwrt-linux-gnueabi-gcc#${TOOLCHAIN_PREFIX}gcc#" \
+        -e "s#arm-openwrt-linux-gnueabi-g++#${TOOLCHAIN_PREFIX}g++#" \
+        $FILE
+
+    cd "$PRJ_PATH" || exit 1
+}
+
+function do_build()
+{
+    BUILD_DIR="build"
+
+    cd "$LIB_NAME" || exit 1
+
+    if [ ! -f "$BUILD_DIR/CMakeCache.txt" ]; then
+        pr_info "configuring cmake..."
+        cmake -B "$BUILD_DIR" -S . -DCMAKE_TOOLCHAIN_FILE=./user_cross_compile_setup.cmake -DCMAKE_INSTALL_PREFIX=${PREFIX_PATH}
+    else
+        pr_warn "cmake already configured"
+    fi
+
+    pr_info "building..."
+    cmake --build "$BUILD_DIR" -j$(nproc)
+
+    cmake --install build
+    install -m 755 -D build/bin/lvglsim $PREFIX_PATH/bin/lvglsim
+
+    cd "$PRJ_PATH" || exit 1
+}
+
+function do_depends()
+{
+    cd $TOP_PATH/libevdev || exit 1
+
+    pr_info "build depend libevdev..."
+    ./build.sh
+
+    cd $PRJ_PATH || exit 1
+}
+
+function do_clean()
+{
+    rm -rf *${LIB_NAME}*
+}
+
+if [[ $# == 1 && $1 == -c ]] ;then
+    pr_warn "start clean ${LIB_NAME}"
+    do_clean
+    exit;
+fi
+
+do_depends
+
+do_fetch
+
+do_export
+
+do_patch
+
+do_build
+

--
Gitblit v1.10.0