feat: Update NNSDK path and library linking in CMake configurations and Android build script, and add a new script to build all Android examples.

This commit is contained in:
dian.yuan 2026-02-24 16:56:27 +08:00
parent f3447fd563
commit 79a2bd27f6
14 changed files with 240 additions and 50 deletions

View file

@ -70,7 +70,8 @@ cmake ../../src \
-DANDROID_ABI=${TARGET_ABI} \
-DANDROID_PLATFORM=android-24 \
-DCMAKE_BUILD_TYPE=Release \
-DOpenCV_DIR=${ROOT_PWD}/../../../dependency/opencv/opencv-android-sdk-build/sdk/native/jni/abi-${TARGET_ABI}
-DOpenCV_DIR=${ROOT_PWD}/../../../dependency/opencv/opencv-android-sdk-build/sdk/native/jni/abi-${TARGET_ABI} \
-DNNSDK_DIR=${ROOT_PWD}/../../../../amlnn-toolkit/nn_runtime/nnsdk
make -j4

View file

@ -46,8 +46,13 @@ done
GCC_COMPILER=${GCC_COMPILER:-aarch64-linux-gnu}
# Set compilers
export CC=${GCC_COMPILER}-gcc
export CXX=${GCC_COMPILER}-g++
if [[ ${GCC_COMPILER} == *"-gcc" ]]; then
export CC=${GCC_COMPILER}
export CXX=${GCC_COMPILER%-gcc}-g++
else
export CC=${GCC_COMPILER}-gcc
export CXX=${GCC_COMPILER}-g++
fi
# Validate compiler
if ! command -v ${CC} &> /dev/null; then
@ -68,10 +73,21 @@ echo "BUILD_DIR: ${BUILD_DIR}"
mkdir -p ${BUILD_DIR}
cd ${BUILD_DIR}
# Set OpenCV path
if [ "${TARGET_ARCH}" == "aarch64" ]; then
OPENCV_DIR_NAME="opencv-linux-aarch64"
elif [ "${TARGET_ARCH}" == "armhf" ]; then
OPENCV_DIR_NAME="opencv-linux-armhf"
else
echo "Warning: No OpenCV prebuilt for architecture ${TARGET_ARCH}"
fi
cmake ../../src \
-DCMAKE_SYSTEM_NAME=Linux \
-DCMAKE_SYSTEM_PROCESSOR=${TARGET_ARCH} \
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_BUILD_TYPE=Release \
-DNNSDK_DIR=${ROOT_PWD}/../../../../amlnn-toolkit/nn_runtime/nnsdk \
-DOpenCV_DIR=${ROOT_PWD}/../../../dependency/opencv/${OPENCV_DIR_NAME}/share/OpenCV
make -j4

View file

@ -4,8 +4,12 @@ project(yolo_world_demo)
set(CMAKE_CXX_STANDARD 17)
# Set NNSDK path
# Set NNSDK path
set(NNSDK_ROOT "${CMAKE_SOURCE_DIR}/../../../../dependency/nnsdk")
if(NOT DEFINED NNSDK_DIR)
set(NNSDK_DIR "${CMAKE_SOURCE_DIR}/../../../../../amlnn-toolkit/nn_runtime/nnsdk")
endif()
set(NNSDK_ROOT "${NNSDK_DIR}")
message(STATUS "NNSDK_ROOT: ${NNSDK_ROOT}")
include_directories(${NNSDK_ROOT}/include)
include_directories(${CMAKE_SOURCE_DIR}/../../../../common)
@ -14,14 +18,14 @@ set(3RDPARTY_DIR "${CMAKE_SOURCE_DIR}/../../../../dependency")
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
if (ANDROID_ABI STREQUAL "arm64-v8a")
link_directories(${NNSDK_ROOT}/lib/android/arm64-v8a)
link_directories(${NNSDK_ROOT}/android/arm64-v8a)
else()
link_directories(${NNSDK_ROOT}/lib/android/armeabi-v7a)
link_directories(${NNSDK_ROOT}/android/armeabi-v7a)
endif()
# Android needs log
link_libraries(log)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
link_directories(${NNSDK_ROOT}/lib/linux/lib64_yocto)
link_directories(${NNSDK_ROOT}/linux/yocto/aarch64-poky-linux)
endif()
# Find OpenCV