From dde897699eeaf8d34b44aa027652010c1968faec Mon Sep 17 00:00:00 2001 From: Siyuan Miao Date: Thu, 25 Sep 2025 22:29:32 +0000 Subject: [PATCH] cgo build script + ci helper --- scripts/build_cgo.sh | 43 +++++++++++++++++++++++++++++++++++++++++++ scripts/ci_helper.sh | 2 ++ 2 files changed, 45 insertions(+) create mode 100755 scripts/build_cgo.sh diff --git a/scripts/build_cgo.sh b/scripts/build_cgo.sh new file mode 100755 index 00000000..87577e39 --- /dev/null +++ b/scripts/build_cgo.sh @@ -0,0 +1,43 @@ +#!/bin/bash +set -e + +SCRIPT_PATH=$(realpath "$(dirname $(realpath "${BASH_SOURCE[0]}"))") +source ${SCRIPT_PATH}/build_utils.sh + +CGO_PATH=$(realpath "${SCRIPT_PATH}/../internal/native/cgo") +BUILD_DIR=${CGO_PATH}/build + +CMAKE_TOOLCHAIN_FILE=/opt/jetkvm-native-buildkit/rv1106-jetkvm-v2.cmake +CLEAN_ALL=${CLEAN_ALL:-0} + +if [ "$CLEAN_ALL" -eq 1 ]; then + rm -rf "${BUILD_DIR}" +fi + +TMP_DIR=$(mktemp -d) +pushd "${CGO_PATH}" > /dev/null + +msg_info "▶ Generating UI index" +./ui_index.gen.sh + +msg_info "▶ Building native library" +VERBOSE=1 cmake -B "${BUILD_DIR}" \ + -DCMAKE_SYSTEM_PROCESSOR=armv7l \ + -DCMAKE_SYSTEM_NAME=Linux \ + -DCMAKE_CROSSCOMPILING=1 \ + -DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE \ + -DLV_BUILD_USE_KCONFIG=ON \ + -DLV_BUILD_DEFCONFIG_PATH=${CGO_PATH}/lvgl_defconfig \ + -DCONFIG_LV_BUILD_EXAMPLES=OFF \ + -DCONFIG_LV_BUILD_DEMOS=OFF \ + -DSKIP_GLIBC_NAMES=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="${TMP_DIR}" + +msg_info "▶ Copying built library and header files" +cmake --build "${BUILD_DIR}" --target install +cp -r "${TMP_DIR}/include" "${CGO_PATH}" +cp -r "${TMP_DIR}/lib" "${CGO_PATH}" +rm -rf "${TMP_DIR}" + +popd > /dev/null diff --git a/scripts/ci_helper.sh b/scripts/ci_helper.sh index 60b89963..23b381c6 100755 --- a/scripts/ci_helper.sh +++ b/scripts/ci_helper.sh @@ -23,6 +23,8 @@ elif [ "$1" = "make" ]; then else DOCKER_GO_CACHE_DIR=$(go env GOCACHE) fi + # add /build to the safe directory list + git config --global --add safe.directory /build do_make "${@:2}" fi