1if(NOT CMAKE_BUILD_TYPE) 2 set(CMAKE_BUILD_TYPE Release CACHE STRING 3 "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." 4 FORCE) 5endif() 6 7cmake_minimum_required(VERSION 2.8...3.22) 8 9PROJECT(media_enquiry) 10 11list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") 12 13include(BuildOptions) 14include(CompileOptions) 15include(GNUInstallDirs) 16 17set_property(GLOBAL PROPERTY USE_FOLDERS ON) 18set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMakeTargets") 19 20set(ADD_RK_AIQ true) 21option(ENABLE_IIO_API "Enable IIO API for EIS algorithm" OFF) 22 23if(EXISTS "${PROJECT_SOURCE_DIR}/../rk_aiq") 24 set(RK_AIQ_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../rk_aiq) 25 message("rkaiq src path" ${RK_AIQ_SOURCE_DIR}) 26else () 27 set(RK_AIQ_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../rkaiq) 28 message("rkaiq src path" ${RK_AIQ_SOURCE_DIR}) 29endif (EXISTS "${PROJECT_SOURCE_DIR}/../rk_aiq") 30 31if(ADD_RK_AIQ) 32 add_compile_options(-Os) 33 add_compile_options(-DADD_RK_AIQ) 34 if(NOT ARCH STREQUAL "fpga") 35 add_compile_options(-fstack-protector-strong -D_FORTIFY_SOURCE=2) 36 else () 37 add_compile_options(-DARCH_FPGA) 38 endif() 39 set(RK_AIQ_LIB_DIR ${RK_AIQ_SOURCE_DIR}/build/linux/output/${ARCH}/all_lib/${CMAKE_BUILD_TYPE}) 40 message("rkaiq lib path" ${RK_AIQ_LIB_DIR}) 41 set(RK_AIQ_LIB rkaiq) 42endif() 43 44if (ARCH STREQUAL "aarch64") 45 set(RK_DRM_LIB_DIR ${PROJECT_SOURCE_DIR}/media_enquiry/libs/arm64/) 46elseif (ARCH STREQUAL "arm") 47 set(RK_DRM_LIB_DIR 48 ${PROJECT_SOURCE_DIR}/media_enquiry/libs/arm32/ 49 ) 50endif() 51 52SET(RK_DRM_LIB drm) 53if(NOT ARCH STREQUAL "fpga") 54 set(RK_RGA_LIB rga) 55endif() 56 57if (ENABLE_IIO_API) 58 set(IIO_LIB_DIR ${PROJECT_SOURCE_DIR}/media_enquiry/iio/lib) 59 set(IIO_LIBS easyiio iio serialport xml2 ) 60endif() 61 62include_directories( 63 media_enquiry 64 media_enquiry/mediactl 65 ${RK_AIQ_SOURCE_DIR}/aiq_core 66 ${RK_AIQ_SOURCE_DIR}/algos 67 ${RK_AIQ_SOURCE_DIR}/algos_camgroup 68 ${RK_AIQ_SOURCE_DIR}/common 69 ${RK_AIQ_SOURCE_DIR}/common/linux 70 ${RK_AIQ_SOURCE_DIR}/common/mediactl 71 ${RK_AIQ_SOURCE_DIR}/ 72 ${RK_AIQ_SOURCE_DIR}/hwi/isp20 73 ${RK_AIQ_SOURCE_DIR}/ipc 74 ${RK_AIQ_SOURCE_DIR}/iq_parser 75 ${RK_AIQ_SOURCE_DIR}/iq_parser_v2 76 ${RK_AIQ_SOURCE_DIR}/uAPI 77 ${RK_AIQ_SOURCE_DIR}/uAPI/include 78 ${RK_AIQ_SOURCE_DIR}/uAPI2 79 ${RK_AIQ_SOURCE_DIR}/ipc_server 80 ${RK_AIQ_SOURCE_DIR}/./ 81 ${RK_AIQ_SOURCE_DIR}/xcore/ 82 ${RK_AIQ_SOURCE_DIR}/xcore/base 83 ${RK_AIQ_SOURCE_DIR}/include 84 ${RK_AIQ_SOURCE_DIR}/include/xcore 85 ${RK_AIQ_SOURCE_DIR}/include/xcore/base 86 ${RK_AIQ_SOURCE_DIR}/include/iq_parser 87 ${RK_AIQ_SOURCE_DIR}/include/iq_parser_v2 88 ${RK_AIQ_SOURCE_DIR}/include/uAPI 89 ${RK_AIQ_SOURCE_DIR}/include/uAPI2 90 ${RK_AIQ_SOURCE_DIR}/include/algos 91 ${RK_AIQ_SOURCE_DIR}/include/algos/a3dlut 92 ${RK_AIQ_SOURCE_DIR}/include/algos/ablc 93 ${RK_AIQ_SOURCE_DIR}/include/algos/accm 94 ${RK_AIQ_SOURCE_DIR}/include/algos/acgc 95 ${RK_AIQ_SOURCE_DIR}/include/algos/acp 96 ${RK_AIQ_SOURCE_DIR}/include/algos/adebayer 97 ${RK_AIQ_SOURCE_DIR}/include/algos/adehaze 98 ${RK_AIQ_SOURCE_DIR}/include/algos/adpcc 99 ${RK_AIQ_SOURCE_DIR}/include/algos/ae 100 ${RK_AIQ_SOURCE_DIR}/include/algos/af 101 ${RK_AIQ_SOURCE_DIR}/include/algos/afec 102 ${RK_AIQ_SOURCE_DIR}/include/algos/agamma 103 ${RK_AIQ_SOURCE_DIR}/include/algos/adegamma 104 ${RK_AIQ_SOURCE_DIR}/include/algos/agic 105 ${RK_AIQ_SOURCE_DIR}/include/algos/amerge 106 ${RK_AIQ_SOURCE_DIR}/include/algos/atmo 107 ${RK_AIQ_SOURCE_DIR}/include/algos/adrc 108 ${RK_AIQ_SOURCE_DIR}/include/algos/aie 109 ${RK_AIQ_SOURCE_DIR}/include/algos/aldch 110 ${RK_AIQ_SOURCE_DIR}/include/algos/alsc 111 ${RK_AIQ_SOURCE_DIR}/include/algos/anr 112 ${RK_AIQ_SOURCE_DIR}/include/algos/anr/tnr_md 113 ${RK_AIQ_SOURCE_DIR}/include/algos/aorb 114 ${RK_AIQ_SOURCE_DIR}/include/algos/acsm 115 ${RK_AIQ_SOURCE_DIR}/include/algos/asd 116 ${RK_AIQ_SOURCE_DIR}/include/algos/asharp 117 ${RK_AIQ_SOURCE_DIR}/include/algos/awb 118 ${RK_AIQ_SOURCE_DIR}/include/algos/awdr 119 ${RK_AIQ_SOURCE_DIR}/include/algos/asharp3 120 ${RK_AIQ_SOURCE_DIR}/include/algos/aynr2 121 ${RK_AIQ_SOURCE_DIR}/include/algos/acnr 122 ${RK_AIQ_SOURCE_DIR}/include/algos/aeis 123 ${RK_AIQ_SOURCE_DIR}/include/common 124 ${RK_AIQ_SOURCE_DIR}/include/common/mediactl 125 ${RK_AIQ_SOURCE_DIR}/include/common/gen_mesh 126 ${RK_AIQ_SOURCE_DIR}/include/ipc_server 127 ${RK_AIQ_SOURCE_DIR}/include/amd 128 ${RK_AIQ_SOURCE_DIR}/include/algos/arawnr 129 ${RK_AIQ_SOURCE_DIR}/include/algos/aynr 130 ${RK_AIQ_SOURCE_DIR}/include/algos/auvnr 131 ${RK_AIQ_SOURCE_DIR}/include/algos/amfnr 132 ${RK_AIQ_SOURCE_DIR}/include/algos/again 133 ${RK_AIQ_SOURCE_DIR}/include/algos/aynr3 134 ${RK_AIQ_SOURCE_DIR}/include/algos/acnr2 135 ${RK_AIQ_SOURCE_DIR}/include/algos/asharp4 136 ${RK_AIQ_SOURCE_DIR}/include/algos/abayer2dnr2 137 ${RK_AIQ_SOURCE_DIR}/include/algos/abayertnr2 138 ${RK_AIQ_SOURCE_DIR}/include/algos/again2 139 ${RK_AIQ_SOURCE_DIR}/include/algos/acac 140 ${RK_AIQ_SOURCE_DIR}/include/algos_camgroup/ae 141 ${RK_AIQ_SOURCE_DIR}/include/algos_camgroup/awb 142 ) 143 144set(DIR_SRCS 145 media_enquiry/media_enquiry.cpp 146 ${RK_AIQ_SOURCE_DIR}/common/mediactl/mediactl.c 147 media_enquiry/mediactl/v4l2subdev.c 148 ) 149 150set(XCORE_SRC 151 ${RK_AIQ_SOURCE_DIR}/xcore/xcam_common.cpp 152 ${RK_AIQ_SOURCE_DIR}/xcore/xcam_log.cpp 153 ${RK_AIQ_SOURCE_DIR}/xcore/xcam_buffer.cpp 154 ${RK_AIQ_SOURCE_DIR}/xcore/video_buffer.cpp 155 ${RK_AIQ_SOURCE_DIR}/xcore/v4l2_buffer_proxy.cpp 156 ${RK_AIQ_SOURCE_DIR}/xcore/v4l2_device.cpp 157 ${RK_AIQ_SOURCE_DIR}/xcore/fake_v4l2_device.cpp 158 ${RK_AIQ_SOURCE_DIR}/xcore/buffer_pool.cpp 159 ${RK_AIQ_SOURCE_DIR}/xcore/poll_thread.cpp 160 ${RK_AIQ_SOURCE_DIR}/xcore/smart_buffer_priv.cpp 161 ${RK_AIQ_SOURCE_DIR}/xcore/xcam_thread.cpp 162 ) 163 164 165 166if(WIN32) 167 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/exe) 168 SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/all_lib/) 169 SET(CMAKE_LIBRARY_PATH ${LIBRARY_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}) 170else() 171 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/exe/${CMAKE_BUILD_TYPE}) 172 SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/all_lib/${CMAKE_BUILD_TYPE}) 173 SET(CMAKE_LIBRARY_PATH ${LIBRARY_OUTPUT_PATH}) 174endif() 175 176#set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi") 177#set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF") 178message(${CMAKE_LIBRARY_PATH}) 179message(${LIBRARY_OUTPUT_PATH}) 180 181add_definitions(-D_CRT_SECURE_NO_WARNINGS) 182 183add_executable(media_enquiry ${DIR_SRCS} ${XCORE_SRC}) 184target_link_libraries(media_enquiry pthread) 185