1 2if(NOT CMAKE_BUILD_TYPE) 3 # default to Release build for GCC builds 4 set(CMAKE_BUILD_TYPE Release CACHE STRING 5 "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." 6 FORCE) 7endif() 8 9cmake_minimum_required(VERSION 2.8...3.22) 10 11#project name 12PROJECT(rkaiq_3A_server) 13 14#set BUILDROOT_BUILD_PROJECT 15#set(BUILDROOT_BUILD_PROJECT true) 16#set(ENABLE_ASAN true) 17 18# ---------------------------------------------------------------------------- 19# SET THE COMPILER PATH 20# ---------------------------------------------------------------------------- 21#if(BUILDROOT_BUILD_PROJECT) 22 # buildroot will set the compiler 23#else() 24# SET(CMAKE_C_COMPILER "/home/camera/camera/rv1109_sdk/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc") 25# SET(CMAKE_CXX_COMPILER "/home/camera/camera/rv1109_sdk/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++") 26#endif() 27 28# ---------------------------------------------------------------------------- 29# ADD SYMBOL TABLE FOR GDB 30# ---------------------------------------------------------------------------- 31# SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -ggdb") 32# SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -ggdb") 33 34# ---------------------------------------------------------------------------- 35# set property to classify library kinds 36# ---------------------------------------------------------------------------- 37set_property(GLOBAL PROPERTY USE_FOLDERS ON) 38set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMakeTargets") 39 40#set(CMAKE_CONFIGURATION_TYPES "Debug;Release") 41 42set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11 -fPIC") 43 44#set ADD_RK_AIQ 45set(ADD_RK_AIQ true) 46 47#SET RK_AIQ SOURCE DIR 48set(RK_AIQ_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../rkaiq) 49message("rkaiq src path" ${RK_AIQ_SOURCE_DIR}) 50 51if(ENABLE_ASAN) 52add_compile_options(-fsanitize=address -fno-omit-frame-pointer -g) 53SET(LINK_ASAN asan) 54endif() 55 56if(ADD_RK_AIQ) 57add_compile_options(-std=c++11) 58add_compile_options(-DADD_RK_AIQ) 59add_compile_options(-O) 60# add_compile_options(-v) 61find_path(RKAIQ_INCLUDE_DIR 62 NAMES 63 rk_aiq.h 64 PATH 65 common 66 rkaiq/common 67) 68find_library(RKAIQ_LIBRARY_DIR 69 rkaiq 70) 71if(RKAIQ_INCLUDE_DIR AND RKAIQ_LIBRARY_DIR) 72set(RK_AIQ_INSTALLED_DIR ${RKAIQ_INCLUDE_DIR}) 73set(RK_AIQ_LIB_DIR ${RKAIQ_LIBRARY_DIR}) 74message("rkaiq lib path" ${RK_AIQ_LIB_DIR}) 75SET(RK_AIQ_INCLUDE_DIR 76 ${RK_AIQ_INSTALLED_DIR}/rkaiq/ 77 ${RK_AIQ_INSTALLED_DIR}/rkaiq/uAPI2 78 ${RK_AIQ_INSTALLED_DIR}/rkaiq/xcore/ 79 ${RK_AIQ_INSTALLED_DIR}/rkaiq/algos/ 80 ${RK_AIQ_INSTALLED_DIR}/rkaiq/common/ 81 ${RK_AIQ_INSTALLED_DIR}/rkaiq/iq_parser/ 82 ${RK_AIQ_INSTALLED_DIR}/rkaiq/iq_parser_v2/ 83) 84SET(RK_AIQ_LIB rkaiq) 85else() 86message("Please check librkaiq.so and include files") 87endif() 88endif() 89 90if(RK_AIQ_IS_SUBDIR) 91get_target_property(RK_AIQ_HEADER_DIR rkaiq INTERFACE_INCLUDE_DIRECTORIES) 92message("RK_AIQ_HEADER_DIR ${RK_AIQ_HEADER_DIR}") 93SET(RK_AIQ_LIB rkaiq) 94endif() 95 96include_directories( 97${RK_AIQ_INCLUDE_DIR} 98${RK_AIQ_HEADER_DIR} 99include/common/mediactl 100./ 101./common/ 102) 103 104if(GENMESH_ONLINE) 105 if(ARCH STREQUAL "aarch64") 106 set (GENMESH_LIBS_DIR 107 ${PROJECT_SOURCE_DIR}/../common/gen_mesh/linux/genMesh_static_64bit/ 108 ) 109 else() 110 set (GENMESH_LIBS_DIR 111 ${PROJECT_SOURCE_DIR}/../common/gen_mesh/linux/genMesh_static_32bit/ 112 ) 113 endif() 114endif() 115 116add_definitions(-D_CRT_SECURE_NO_WARNINGS) 117 118link_directories("${RK_AIQ_LIB_DIR}" "${GENMESH_LIBS_DIR}") 119ADD_EXECUTABLE(rkaiq_3A_server rkaiq_3A_server.cpp common/mediactl/mediactl.c) 120 121target_link_libraries(rkaiq_3A_server ${RK_AIQ_LIB} pthread dl) 122 123#FIXME: buildroot and ipc sdk shall use the same setting 124if(BUILDROOT_BUILD_PROJECT) 125 install(TARGETS rkaiq_3A_server 126 RUNTIME DESTINATION /usr/bin 127 LIBRARY DESTINATION /usr/lib 128 ) 129 130 install(FILES S40rkaiq_3A DESTINATION /etc/init.d/ 131 PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ 132 GROUP_EXECUTE GROUP_READ 133 WORLD_EXECUTE WORLD_READ) 134else() 135 install(TARGETS rkaiq_3A_server 136 RUNTIME DESTINATION "usr/bin" 137 LIBRARY DESTINATION "usr/lib" 138 ) 139 140 install(FILES S40rkaiq_3A DESTINATION "etc/init.d" 141 PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ 142 GROUP_EXECUTE GROUP_READ 143 WORLD_EXECUTE WORLD_READ) 144endif() 145