197 lines
6.4 KiB
CMake
197 lines
6.4 KiB
CMake
|
if(NOT CMAKE_BUILD_TYPE)
|
||
|
set(CMAKE_BUILD_TYPE Release CACHE STRING
|
||
|
"Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel."
|
||
|
FORCE)
|
||
|
endif()
|
||
|
|
||
|
cmake_minimum_required(VERSION 2.8...3.22)
|
||
|
|
||
|
PROJECT(rkisp_demo)
|
||
|
|
||
|
if(POLICY CMP0015)
|
||
|
cmake_policy(SET CMP0015 NEW)
|
||
|
endif()
|
||
|
|
||
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||
|
|
||
|
include(BuildOptions)
|
||
|
include(CompileOptions)
|
||
|
include(GNUInstallDirs)
|
||
|
|
||
|
find_package(librga QUIET)
|
||
|
if (librga_FOUND)
|
||
|
add_compile_options(${LIBRGA_CFLAGS})
|
||
|
add_compile_options(-DISPDEMO_ENABLE_RGA=1)
|
||
|
endif()
|
||
|
|
||
|
if (RKAIQ_ENABLE_LIBDRM)
|
||
|
find_package(libdrm QUIET)
|
||
|
endif()
|
||
|
if (libdrm_FOUND)
|
||
|
add_compile_options(${LIBDRM_CFLAGS})
|
||
|
add_compile_options(-DISPDEMO_ENABLE_DRM=1)
|
||
|
else()
|
||
|
if (TOOLCHAIN_SYSROOT STREQUAL "libc")
|
||
|
# use the local drm library in demo dir
|
||
|
if (ARCH STREQUAL "aarch64")
|
||
|
set(LOCAL_DRM_LIB_DIR ${PROJECT_SOURCE_DIR}/demo/libs/arm64/)
|
||
|
elseif (ARCH STREQUAL "arm")
|
||
|
set(LOCAL_DRM_LIB_DIR ${PROJECT_SOURCE_DIR}/demo/libs/arm32/)
|
||
|
endif()
|
||
|
|
||
|
SET(LOCAL_DRM_LIB_FOUND true)
|
||
|
SET(LOCAL_DRM_LIB drm)
|
||
|
add_compile_options(-DISPDEMO_ENABLE_DRM=1)
|
||
|
endif()
|
||
|
endif()
|
||
|
|
||
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||
|
set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMakeTargets")
|
||
|
|
||
|
set(ADD_RK_AIQ true)
|
||
|
option(ENABLE_IIO_API "Enable IIO API for EIS algorithm" OFF)
|
||
|
|
||
|
set(RK_AIQ_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../rk_aiq)
|
||
|
message("rkaiq src path" ${RK_AIQ_SOURCE_DIR})
|
||
|
|
||
|
if(ADD_RK_AIQ)
|
||
|
add_compile_options(-Os)
|
||
|
add_compile_options(-DADD_RK_AIQ)
|
||
|
add_compile_options(-fstack-protector-strong -D_FORTIFY_SOURCE=2)
|
||
|
set(RK_AIQ_INSTALLED_DIR "${RK_AIQ_SOURCE_DIR}/build/linux/output/${ARCH}/installed" CACHE STRING "AIQ library installed dir")
|
||
|
set(RK_AIQ_LIB_DIR ${RK_AIQ_INSTALLED_DIR}/lib)
|
||
|
message("rkaiq lib path" ${RK_AIQ_LIB_DIR})
|
||
|
set(RK_AIQ_INCLUDE_DIR
|
||
|
${RK_AIQ_INSTALLED_DIR}/include/
|
||
|
${RK_AIQ_INSTALLED_DIR}/include/rkaiq/
|
||
|
${RK_AIQ_INSTALLED_DIR}/include/rkaiq/uAPI2
|
||
|
${RK_AIQ_INSTALLED_DIR}/include/rkaiq/xcore/
|
||
|
${RK_AIQ_INSTALLED_DIR}/include/rkaiq/algos/
|
||
|
${RK_AIQ_INSTALLED_DIR}/include/rkaiq/common/
|
||
|
${RK_AIQ_INSTALLED_DIR}/include/rkaiq/iq_parser/
|
||
|
${RK_AIQ_INSTALLED_DIR}/include/rkaiq/iq_parser_v2/
|
||
|
)
|
||
|
set(RK_AIQ_LIB rkaiq)
|
||
|
endif()
|
||
|
|
||
|
if(RK_AIQ_IS_SUBDIR)
|
||
|
get_target_property(RK_AIQ_HEADER_DIR rkaiq INTERFACE_INCLUDE_DIRECTORIES)
|
||
|
message("RK_AIQ_HEADER_DIR ${RK_AIQ_HEADER_DIR}")
|
||
|
endif()
|
||
|
|
||
|
if (ENABLE_IIO_API)
|
||
|
set(IIO_LIB_DIR ${PROJECT_SOURCE_DIR}/demo/iio/lib)
|
||
|
set(IIO_LIBS easyiio iio serialport xml2 )
|
||
|
endif()
|
||
|
|
||
|
#set (ENABLE_SMARTIR_API true)
|
||
|
if (ENABLE_SMARTIR_API)
|
||
|
set(SMARTIR_DIR ${PROJECT_SOURCE_DIR}/../smart_ir)
|
||
|
set(SMARTIR_INCLUDE_DIR ${SMARTIR_DIR}/include)
|
||
|
set(SMARTIR_INSTALLED_LIB_DIR ${SMARTIR_DIR}/build/linux/output/${ARCH}/installed/lib)
|
||
|
set(SMARTIR_LIB smartIr)
|
||
|
add_compile_options(-DSAMPLE_SMART_IR)
|
||
|
endif()
|
||
|
|
||
|
# set(ENABLE_ISPFEC_API true)
|
||
|
if (ENABLE_ISPFEC_API)
|
||
|
set(ISPFEC_INSTALLED_DIR ${PROJECT_SOURCE_DIR}/../IspFec/build/linux/output/${ARCH}/installed/)
|
||
|
set(ISPFEC_INCLUDE_DIR ${ISPFEC_INSTALLED_DIR}/include/)
|
||
|
set(ISPFEC_LIB_DIR ${ISPFEC_INSTALLED_DIR}/lib/)
|
||
|
set(ISPFEC_LIB IspFec)
|
||
|
add_compile_options(-DISPFEC_API)
|
||
|
endif()
|
||
|
|
||
|
include_directories(
|
||
|
deps/include
|
||
|
demo
|
||
|
demo/include
|
||
|
demo/include/rga
|
||
|
demo/include/libdrm
|
||
|
demo/drmDsp
|
||
|
demo/iio/include
|
||
|
${RK_AIQ_INCLUDE_DIR}
|
||
|
demo/sample/
|
||
|
${SMARTIR_INCLUDE_DIR}
|
||
|
${ISPFEC_INCLUDE_DIR}
|
||
|
${RK_AIQ_HEADER_DIR}
|
||
|
)
|
||
|
|
||
|
if (libdrm_FOUND)
|
||
|
aux_source_directory(demo DIR_SRCS)
|
||
|
aux_source_directory(demo/drmDsp DRMDSP_DIR_SRCS)
|
||
|
aux_source_directory(demo/sample SAMPLE_DIR_SRCS)
|
||
|
elseif (LOCAL_DRM_LIB_FOUND)
|
||
|
set (DIR_SRCS demo/rkisp_demo.cpp demo/drmDsp.c)
|
||
|
aux_source_directory(demo/drmDsp DRMDSP_DIR_SRCS)
|
||
|
aux_source_directory(demo/sample SAMPLE_DIR_SRCS)
|
||
|
else()
|
||
|
set (DIR_SRCS demo/rkisp_demo.cpp)
|
||
|
aux_source_directory(demo/sample SAMPLE_DIR_SRCS)
|
||
|
endif()
|
||
|
|
||
|
if (ENABLE_IIO_API)
|
||
|
AUX_SOURCE_DIRECTORY(demo/iio/demo IIO_DIR_SRCS)
|
||
|
endif()
|
||
|
list(APPEND DIR_SRCS ${DRMDSP_DIR_SRCS} ${IIO_DIR_SRCS} ${SAMPLE_DIR_SRCS})
|
||
|
|
||
|
AUX_SOURCE_DIRECTORY(demo/ae_algo_demo AEDEMO_DIR_SRCS)
|
||
|
list(APPEND DIR_SRCS ${AEDEMO_DIR_SRCS})
|
||
|
|
||
|
#AUX_SOURCE_DIRECTORY(demo/awb_algo_demo AWBDEMO_DIR_SRCS)
|
||
|
#list(APPEND DIR_SRCS ${AWBDEMO_DIR_SRCS})
|
||
|
if (${ISP_HW_VERSION} STREQUAL "-DISP_HW_V32")
|
||
|
set(AWBDEMO_DIR_SRCS demo/awb_algo_demo/third_party_awbV32_algo.cpp)
|
||
|
else()
|
||
|
set(AWBDEMO_DIR_SRCS demo/awb_algo_demo/third_party_awb_algo.cpp)
|
||
|
endif()
|
||
|
list(APPEND DIR_SRCS ${AWBDEMO_DIR_SRCS})
|
||
|
|
||
|
|
||
|
AUX_SOURCE_DIRECTORY(demo/af_algo_demo AFDEMO_DIR_SRCS)
|
||
|
list(APPEND DIR_SRCS ${AFDEMO_DIR_SRCS})
|
||
|
|
||
|
if(WIN32)
|
||
|
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/exe)
|
||
|
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/all_lib/)
|
||
|
SET(CMAKE_LIBRARY_PATH ${LIBRARY_OUTPUT_PATH}/${CMAKE_BUILD_TYPE})
|
||
|
else()
|
||
|
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/exe/${CMAKE_BUILD_TYPE})
|
||
|
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/all_lib/${CMAKE_BUILD_TYPE})
|
||
|
SET(CMAKE_LIBRARY_PATH ${LIBRARY_OUTPUT_PATH})
|
||
|
endif()
|
||
|
|
||
|
#set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
|
||
|
#set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
|
||
|
message(${CMAKE_LIBRARY_PATH})
|
||
|
message(${LIBRARY_OUTPUT_PATH})
|
||
|
|
||
|
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
||
|
|
||
|
if (libdrm_FOUND)
|
||
|
link_directories("${LIBRARY_OUTPUT_PATH}" "${RK_AIQ_LIB_DIR}" "${IIO_LIB_DIR}"
|
||
|
"${PROJECT_SOURCE_DIR}/deps/lib" "${SMARTIR_INSTALLED_LIB_DIR}" "${ISPFEC_LIB_DIR}")
|
||
|
else()
|
||
|
link_directories("${LIBRARY_OUTPUT_PATH}" "${RK_AIQ_LIB_DIR}" "${IIO_LIB_DIR}"
|
||
|
"${SMARTIR_INSTALLED_LIB_DIR}" "${LOCAL_DRM_LIB_DIR}" "${ISPFEC_LIB_DIR}")
|
||
|
endif()
|
||
|
add_executable(rkisp_demo ${DIR_SRCS})
|
||
|
if (libdrm_FOUND)
|
||
|
target_link_libraries(rkisp_demo rga drm ${RK_AIQ_LIB} ${IIO_LIBS}
|
||
|
${SMARTIR_LIB} ${ISPFEC_LIB} pthread)
|
||
|
else()
|
||
|
target_link_libraries(rkisp_demo ${RK_AIQ_LIB} ${IIO_LIBS} ${SMARTIR_LIB} ${LOCAL_DRM_LIB} ${ISPFEC_LIB} pthread)
|
||
|
endif()
|
||
|
|
||
|
if (libdrm_FOUND)
|
||
|
target_link_libraries(rkisp_demo
|
||
|
libdrm::libdrm
|
||
|
)
|
||
|
endif()
|
||
|
|
||
|
if (librga_FOUND)
|
||
|
target_link_libraries(rkisp_demo
|
||
|
librga::librga
|
||
|
)
|
||
|
endif()
|