cmake_minimum_required(VERSION 3.10)
project(rknn_ppocr_rec_demo)
if (ENABLE_ASAN)
message(STATUS "BUILD WITH ADDRESS SANITIZER")
set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
endif ()
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../../../3rdparty/ 3rdparty.out)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../../../utils/ utils.out)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
message(STATUS "64bit")
set (TARGET_LIB_ARCH lib64)
else()
message(STATUS "32bit")
set (TARGET_LIB_ARCH lib)
endif()
if (CMAKE_SYSTEM_NAME STREQUAL "Android")
set(OpenCV_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../3rdparty/opencv/opencv-android-sdk-build/sdk/native/jni/abi-${CMAKE_ANDROID_ARCH_ABI})
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(OpenCV_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../3rdparty/opencv/opencv-osx-x86_64/share/OpenCV)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(OpenCV_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../3rdparty/opencv/opencv-windows-x86_64/x64/mingw/staticlib)
else()
if (TARGET_SOC STREQUAL "x86-64")
elseif(TARGET_LIB_ARCH STREQUAL "lib")
set(OpenCV_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../3rdparty/opencv/opencv-linux-armhf/share/OpenCV)
else()
set(OpenCV_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../3rdparty/opencv/opencv-linux-aarch64/share/OpenCV)
endif()
endif()
find_package(OpenCV REQUIRED)
message(STATUS OpenCV_DIR=${OpenCV_DIR})
message(STATUS OpenCV_LIBS=${OpenCV_LIBS})
set(CMAKE_INSTALL_RPATH "$ORIGIN/../lib")
if (TARGET_SOC STREQUAL "rk1808" OR TARGET_SOC STREQUAL "rv1109" OR TARGET_SOC STREQUAL "rv1126")
set(ppocr_rec_file rknpu1/ppocr_rec.cc)
else()
set(ppocr_rec_file rknpu2/ppocr_rec.cc)
endif()
file(GLOB SRCS ${CMAKE_CURRENT_SOURCE_DIR}/*.cc)
add_executable(${PROJECT_NAME}
main.cc
postprocess.cc
${ppocr_rec_file}
)
target_link_libraries(${PROJECT_NAME}
fileutils
imageutils
imagedrawing
${OpenCV_LIBS}
${LIBRKNNRT}
)
if (CMAKE_SYSTEM_NAME STREQUAL "Android")
target_link_libraries(${PROJECT_NAME} log )
endif()
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
target_link_libraries(${PROJECT_NAME} Threads::Threads)
endif()
target_include_directories(${PROJECT_NAME} PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
${LIBRKNNRT_INCLUDES}
)
install(TARGETS ${PROJECT_NAME} DESTINATION .)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../model/test.png DESTINATION model)
file(GLOB RKNN_FILES "${CMAKE_CURRENT_SOURCE_DIR}/../model/*.rknn")
install(FILES ${RKNN_FILES} DESTINATION model)