cmake_minimum_required(VERSION 3.4.1)
project(rknn_TSFaceApi)
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
if (CMAKE_C_COMPILER MATCHES "aarch64")
set(LIB_ARCH lib64)
message("LIB_ARCH:" ${LIB_ARCH})
else()
set(LIB_ARCH lib)
message("LIB_ARCH222:" ${LIB_ARCH})
endif()
# rga
set(RGA_DIR ${CMAKE_SOURCE_DIR}/../3rdparty/rga)
include_directories(${RGA_DIR}/include)
# drm
set(DRM_DIR ${CMAKE_SOURCE_DIR}/../3rdparty/drm)
include_directories(${DRM_DIR}/include)
include_directories(${DRM_DIR}/include/libdrm)
include_directories(${CMAKE_SOURCE_DIR}/include)
include_directories(${CMAKE_SOURCE_DIR})
include_directories(${CMAKE_SOURCE_DIR}/src/iilicense/include)
# rknn api
set(RKNN_API_PATH ${CMAKE_SOURCE_DIR}/../../librknn_api)
include_directories(${RKNN_API_PATH}/include)
message("RKNN_API_PATH:" ${RKNN_API_PATH})
set(RKNN_API_LIB ${RKNN_API_PATH}/${LIB_ARCH}/librknn_api.so)
message("RKNN_API_LIB:" ${RKNN_API_LIB})
# iilicense
set(IILICENSE_API_LIB ${CMAKE_SOURCE_DIR}/src/iilicense/lib/libiilicense.so)
message("IILICENSE_API_LIB:" ${RKNN_API_LIB})
# opencv
if(LIB_ARCH STREQUAL "lib")
set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/../3rdparty/opencv/opencv-linux-armhf/share/OpenCV)
else()
set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/../3rdparty/opencv/opencv-linux-aarch64/share/OpenCV)
endif()
find_package(OpenCV REQUIRED)
# set(CMAKE_INSTALL_RPATH "lib")
add_library(iiFaceSDKRV1109 SHARED
src/drm_func.c
src/rga_func.c
ii_logger.cpp
rknn_face_detect.cpp
rknn_feature_extract.cpp
rknn_QualityMode.cpp
rknn_Spoofing.cpp
ii_facesdk_impl.cpp
)
target_link_libraries(iiFaceSDKRV1109
${RKNN_API_LIB}
${OpenCV_LIBS}
${IILICENSE_API_LIB}
)
# add_library(rknn_TSFaceApi_static STATIC
# src/drm_func.c
# src/rga_func.c
# ii_logger.cpp
# rknn_face_detect.cpp
# rknn_feature_extract.cpp
# rknn_QualityMode.cpp
# rknn_Spoofing.cpp
# ii_facesdk_impl.cpp
# )
# target_link_libraries(rknn_TSFaceApi_static
# ${RKNN_API_LIB}
# ${OpenCV_LIBS}
# )
add_executable(rknn_TSFaceApi
src/drm_func.c
src/rga_func.c
ii_logger.cpp
# src/postprocess.cc
# src/main.cc
# src/sysutils.cpp
# src/main_zsf.cc
rknn_face_detect.cpp
rknn_feature_extract.cpp
rknn_QualityMode.cpp
rknn_Spoofing.cpp
ii_facesdk_impl.cpp
main_sdk.cpp
)
target_link_libraries(rknn_TSFaceApi
${RKNN_API_LIB}
${OpenCV_LIBS}
dl
)
# install target and libraries
set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install/rknn_TSFaceApi)
install(TARGETS rknn_TSFaceApi DESTINATION ./)
install(DIRECTORY model DESTINATION ./)
install(PROGRAMS ${RKNN_API_LIB} DESTINATION lib)
shell脚本,主要是是设置编译工具链
#!/bin/bash
set -e
# for rk1808 aarch64
#GCC_COMPILER=${RK1808_TOOL_CHAIN}/bin/aarch64-linux-gnu
GCC_COMPILER=/home/ubuntu/workspace/rv1109/rv1109-linux/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf
# for rk1806 armhf
# GCC_COMPILER=~/opts/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf
# for rv1109/rv1126 armhf
# GCC_COMPILER=${RV1109_TOOL_CHAIN}/bin/arm-linux-gnueabihf
ROOT_PWD=$( cd "$( dirname $0 )" && cd -P "$( dirname "$SOURCE" )" && pwd )
# build rockx
BUILD_DIR=${ROOT_PWD}/build
if [[ ! -d "${BUILD_DIR}" ]]; then
mkdir -p ${BUILD_DIR}
fi
cd ${BUILD_DIR}
cmake .. \
-DCMAKE_C_COMPILER=${GCC_COMPILER}-gcc \
-DCMAKE_CXX_COMPILER=${GCC_COMPILER}-g++
make -j4
make install
cd -
# cp run_rk180x.sh install/rknn_yolov5_demo/
# cp run_rv1109_rv1126.sh install/rknn_yolov5_demo/
openssh
./Configure linux-generic32 --prefix=/home/ubuntu/workspace/build_arm --cross-compile-prefix=/home/ubuntu/workspace/rv1109/rv1109-linux/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc