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(rkisp_demo) 10 11if(POLICY CMP0015) 12 cmake_policy(SET CMP0015 NEW) 13endif() 14 15list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") 16 17include(BuildOptions) 18include(CompileOptions) 19include(GNUInstallDirs) 20 21find_package(librga QUIET) 22if (librga_FOUND) 23 add_compile_options(${LIBRGA_CFLAGS}) 24 add_compile_options(-DISPDEMO_ENABLE_RGA=1) 25endif() 26 27if (RKAIQ_ENABLE_LIBDRM) 28find_package(libdrm QUIET) 29endif() 30if (libdrm_FOUND) 31 add_compile_options(${LIBDRM_CFLAGS}) 32 add_compile_options(-DISPDEMO_ENABLE_DRM=1) 33else() 34 if (TOOLCHAIN_SYSROOT STREQUAL "libc") 35 # use the local drm library in demo dir 36 if (ARCH STREQUAL "aarch64") 37 set(LOCAL_DRM_LIB_DIR ${PROJECT_SOURCE_DIR}/demo/libs/arm64/) 38 elseif (ARCH STREQUAL "arm") 39 set(LOCAL_DRM_LIB_DIR ${PROJECT_SOURCE_DIR}/demo/libs/arm32/) 40 endif() 41 42 SET(LOCAL_DRM_LIB_FOUND true) 43 SET(LOCAL_DRM_LIB drm) 44 add_compile_options(-DISPDEMO_ENABLE_DRM=1) 45 endif() 46endif() 47 48set_property(GLOBAL PROPERTY USE_FOLDERS ON) 49set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMakeTargets") 50 51set(ADD_RK_AIQ true) 52option(ENABLE_IIO_API "Enable IIO API for EIS algorithm" OFF) 53 54set(RK_AIQ_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../rk_aiq) 55message("rkaiq src path" ${RK_AIQ_SOURCE_DIR}) 56 57if(ADD_RK_AIQ) 58 add_compile_options(-Os) 59 add_compile_options(-DADD_RK_AIQ) 60 add_compile_options(-fstack-protector-strong -D_FORTIFY_SOURCE=2) 61 set(RK_AIQ_INSTALLED_DIR "${RK_AIQ_SOURCE_DIR}/build/linux/output/${ARCH}/installed" CACHE STRING "AIQ library installed dir") 62 set(RK_AIQ_LIB_DIR ${RK_AIQ_INSTALLED_DIR}/lib) 63 message("rkaiq lib path" ${RK_AIQ_LIB_DIR}) 64 set(RK_AIQ_INCLUDE_DIR 65 ${RK_AIQ_INSTALLED_DIR}/include/ 66 ${RK_AIQ_INSTALLED_DIR}/include/rkaiq/ 67 ${RK_AIQ_INSTALLED_DIR}/include/rkaiq/uAPI2 68 ${RK_AIQ_INSTALLED_DIR}/include/rkaiq/xcore/ 69 ${RK_AIQ_INSTALLED_DIR}/include/rkaiq/algos/ 70 ${RK_AIQ_INSTALLED_DIR}/include/rkaiq/common/ 71 ${RK_AIQ_INSTALLED_DIR}/include/rkaiq/iq_parser/ 72 ${RK_AIQ_INSTALLED_DIR}/include/rkaiq/iq_parser_v2/ 73 ) 74 set(RK_AIQ_LIB rkaiq) 75endif() 76 77if(RK_AIQ_IS_SUBDIR) 78get_target_property(RK_AIQ_HEADER_DIR rkaiq INTERFACE_INCLUDE_DIRECTORIES) 79message("RK_AIQ_HEADER_DIR ${RK_AIQ_HEADER_DIR}") 80endif() 81 82if (ENABLE_IIO_API) 83 set(IIO_LIB_DIR ${PROJECT_SOURCE_DIR}/demo/iio/lib) 84 set(IIO_LIBS easyiio iio serialport xml2 ) 85endif() 86 87#set (ENABLE_SMARTIR_API true) 88if (ENABLE_SMARTIR_API) 89 set(SMARTIR_DIR ${PROJECT_SOURCE_DIR}/../smart_ir) 90 set(SMARTIR_INCLUDE_DIR ${SMARTIR_DIR}/include) 91 set(SMARTIR_INSTALLED_LIB_DIR ${SMARTIR_DIR}/build/linux/output/${ARCH}/installed/lib) 92 set(SMARTIR_LIB smartIr) 93 add_compile_options(-DSAMPLE_SMART_IR) 94endif() 95 96# set(ENABLE_ISPFEC_API true) 97if (ENABLE_ISPFEC_API) 98 set(ISPFEC_INSTALLED_DIR ${PROJECT_SOURCE_DIR}/../IspFec/build/linux/output/${ARCH}/installed/) 99 set(ISPFEC_INCLUDE_DIR ${ISPFEC_INSTALLED_DIR}/include/) 100 set(ISPFEC_LIB_DIR ${ISPFEC_INSTALLED_DIR}/lib/) 101 set(ISPFEC_LIB IspFec) 102 add_compile_options(-DISPFEC_API) 103endif() 104 105include_directories( 106 deps/include 107 demo 108 demo/include 109 demo/include/rga 110 demo/include/libdrm 111 demo/drmDsp 112 demo/iio/include 113 ${RK_AIQ_INCLUDE_DIR} 114 demo/sample/ 115 ${SMARTIR_INCLUDE_DIR} 116 ${ISPFEC_INCLUDE_DIR} 117 ${RK_AIQ_HEADER_DIR} 118 ) 119 120if (libdrm_FOUND) 121 aux_source_directory(demo DIR_SRCS) 122 aux_source_directory(demo/drmDsp DRMDSP_DIR_SRCS) 123 aux_source_directory(demo/sample SAMPLE_DIR_SRCS) 124elseif (LOCAL_DRM_LIB_FOUND) 125 set (DIR_SRCS demo/rkisp_demo.cpp demo/drmDsp.c) 126 aux_source_directory(demo/drmDsp DRMDSP_DIR_SRCS) 127 aux_source_directory(demo/sample SAMPLE_DIR_SRCS) 128else() 129 set (DIR_SRCS demo/rkisp_demo.cpp) 130 aux_source_directory(demo/sample SAMPLE_DIR_SRCS) 131endif() 132 133if (ENABLE_IIO_API) 134 AUX_SOURCE_DIRECTORY(demo/iio/demo IIO_DIR_SRCS) 135endif() 136list(APPEND DIR_SRCS ${DRMDSP_DIR_SRCS} ${IIO_DIR_SRCS} ${SAMPLE_DIR_SRCS}) 137 138AUX_SOURCE_DIRECTORY(demo/ae_algo_demo AEDEMO_DIR_SRCS) 139list(APPEND DIR_SRCS ${AEDEMO_DIR_SRCS}) 140 141#AUX_SOURCE_DIRECTORY(demo/awb_algo_demo AWBDEMO_DIR_SRCS) 142#list(APPEND DIR_SRCS ${AWBDEMO_DIR_SRCS}) 143if (${ISP_HW_VERSION} STREQUAL "-DISP_HW_V32") 144 set(AWBDEMO_DIR_SRCS demo/awb_algo_demo/third_party_awbV32_algo.cpp) 145else() 146 set(AWBDEMO_DIR_SRCS demo/awb_algo_demo/third_party_awb_algo.cpp) 147endif() 148list(APPEND DIR_SRCS ${AWBDEMO_DIR_SRCS}) 149 150 151AUX_SOURCE_DIRECTORY(demo/af_algo_demo AFDEMO_DIR_SRCS) 152list(APPEND DIR_SRCS ${AFDEMO_DIR_SRCS}) 153 154if(WIN32) 155 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/exe) 156 SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/all_lib/) 157 SET(CMAKE_LIBRARY_PATH ${LIBRARY_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}) 158else() 159 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/exe/${CMAKE_BUILD_TYPE}) 160 SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/all_lib/${CMAKE_BUILD_TYPE}) 161 SET(CMAKE_LIBRARY_PATH ${LIBRARY_OUTPUT_PATH}) 162endif() 163 164#set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi") 165#set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF") 166message(${CMAKE_LIBRARY_PATH}) 167message(${LIBRARY_OUTPUT_PATH}) 168 169add_definitions(-D_CRT_SECURE_NO_WARNINGS) 170 171if (libdrm_FOUND) 172 link_directories("${LIBRARY_OUTPUT_PATH}" "${RK_AIQ_LIB_DIR}" "${IIO_LIB_DIR}" 173 "${PROJECT_SOURCE_DIR}/deps/lib" "${SMARTIR_INSTALLED_LIB_DIR}" "${ISPFEC_LIB_DIR}") 174else() 175 link_directories("${LIBRARY_OUTPUT_PATH}" "${RK_AIQ_LIB_DIR}" "${IIO_LIB_DIR}" 176 "${SMARTIR_INSTALLED_LIB_DIR}" "${LOCAL_DRM_LIB_DIR}" "${ISPFEC_LIB_DIR}") 177endif() 178add_executable(rkisp_demo ${DIR_SRCS}) 179if (libdrm_FOUND) 180 target_link_libraries(rkisp_demo rga drm ${RK_AIQ_LIB} ${IIO_LIBS} 181 ${SMARTIR_LIB} ${ISPFEC_LIB} pthread) 182else() 183 target_link_libraries(rkisp_demo ${RK_AIQ_LIB} ${IIO_LIBS} ${SMARTIR_LIB} ${LOCAL_DRM_LIB} ${ISPFEC_LIB} pthread) 184endif() 185 186if (libdrm_FOUND) 187 target_link_libraries(rkisp_demo 188 libdrm::libdrm 189 ) 190endif() 191 192if (librga_FOUND) 193 target_link_libraries(rkisp_demo 194 librga::librga 195 ) 196endif() 197