2025-05-10 21:58:58 +08:00

185 lines
6.7 KiB
CMake
Executable File

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(media_enquiry)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
include(BuildOptions)
include(CompileOptions)
include(GNUInstallDirs)
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)
if(EXISTS "${PROJECT_SOURCE_DIR}/../rk_aiq")
set(RK_AIQ_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../rk_aiq)
message("rkaiq src path" ${RK_AIQ_SOURCE_DIR})
else ()
set(RK_AIQ_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../rkaiq)
message("rkaiq src path" ${RK_AIQ_SOURCE_DIR})
endif (EXISTS "${PROJECT_SOURCE_DIR}/../rk_aiq")
if(ADD_RK_AIQ)
add_compile_options(-Os)
add_compile_options(-DADD_RK_AIQ)
if(NOT ARCH STREQUAL "fpga")
add_compile_options(-fstack-protector-strong -D_FORTIFY_SOURCE=2)
else ()
add_compile_options(-DARCH_FPGA)
endif()
set(RK_AIQ_LIB_DIR ${RK_AIQ_SOURCE_DIR}/build/linux/output/${ARCH}/all_lib/${CMAKE_BUILD_TYPE})
message("rkaiq lib path" ${RK_AIQ_LIB_DIR})
set(RK_AIQ_LIB rkaiq)
endif()
if (ARCH STREQUAL "aarch64")
set(RK_DRM_LIB_DIR ${PROJECT_SOURCE_DIR}/media_enquiry/libs/arm64/)
elseif (ARCH STREQUAL "arm")
set(RK_DRM_LIB_DIR
${PROJECT_SOURCE_DIR}/media_enquiry/libs/arm32/
)
endif()
SET(RK_DRM_LIB drm)
if(NOT ARCH STREQUAL "fpga")
set(RK_RGA_LIB rga)
endif()
if (ENABLE_IIO_API)
set(IIO_LIB_DIR ${PROJECT_SOURCE_DIR}/media_enquiry/iio/lib)
set(IIO_LIBS easyiio iio serialport xml2 )
endif()
include_directories(
media_enquiry
media_enquiry/mediactl
${RK_AIQ_SOURCE_DIR}/aiq_core
${RK_AIQ_SOURCE_DIR}/algos
${RK_AIQ_SOURCE_DIR}/algos_camgroup
${RK_AIQ_SOURCE_DIR}/common
${RK_AIQ_SOURCE_DIR}/common/linux
${RK_AIQ_SOURCE_DIR}/common/mediactl
${RK_AIQ_SOURCE_DIR}/
${RK_AIQ_SOURCE_DIR}/hwi/isp20
${RK_AIQ_SOURCE_DIR}/ipc
${RK_AIQ_SOURCE_DIR}/iq_parser
${RK_AIQ_SOURCE_DIR}/iq_parser_v2
${RK_AIQ_SOURCE_DIR}/uAPI
${RK_AIQ_SOURCE_DIR}/uAPI/include
${RK_AIQ_SOURCE_DIR}/uAPI2
${RK_AIQ_SOURCE_DIR}/ipc_server
${RK_AIQ_SOURCE_DIR}/./
${RK_AIQ_SOURCE_DIR}/xcore/
${RK_AIQ_SOURCE_DIR}/xcore/base
${RK_AIQ_SOURCE_DIR}/include
${RK_AIQ_SOURCE_DIR}/include/xcore
${RK_AIQ_SOURCE_DIR}/include/xcore/base
${RK_AIQ_SOURCE_DIR}/include/iq_parser
${RK_AIQ_SOURCE_DIR}/include/iq_parser_v2
${RK_AIQ_SOURCE_DIR}/include/uAPI
${RK_AIQ_SOURCE_DIR}/include/uAPI2
${RK_AIQ_SOURCE_DIR}/include/algos
${RK_AIQ_SOURCE_DIR}/include/algos/a3dlut
${RK_AIQ_SOURCE_DIR}/include/algos/ablc
${RK_AIQ_SOURCE_DIR}/include/algos/accm
${RK_AIQ_SOURCE_DIR}/include/algos/acgc
${RK_AIQ_SOURCE_DIR}/include/algos/acp
${RK_AIQ_SOURCE_DIR}/include/algos/adebayer
${RK_AIQ_SOURCE_DIR}/include/algos/adehaze
${RK_AIQ_SOURCE_DIR}/include/algos/adpcc
${RK_AIQ_SOURCE_DIR}/include/algos/ae
${RK_AIQ_SOURCE_DIR}/include/algos/af
${RK_AIQ_SOURCE_DIR}/include/algos/afec
${RK_AIQ_SOURCE_DIR}/include/algos/agamma
${RK_AIQ_SOURCE_DIR}/include/algos/adegamma
${RK_AIQ_SOURCE_DIR}/include/algos/agic
${RK_AIQ_SOURCE_DIR}/include/algos/amerge
${RK_AIQ_SOURCE_DIR}/include/algos/atmo
${RK_AIQ_SOURCE_DIR}/include/algos/adrc
${RK_AIQ_SOURCE_DIR}/include/algos/aie
${RK_AIQ_SOURCE_DIR}/include/algos/aldch
${RK_AIQ_SOURCE_DIR}/include/algos/alsc
${RK_AIQ_SOURCE_DIR}/include/algos/anr
${RK_AIQ_SOURCE_DIR}/include/algos/anr/tnr_md
${RK_AIQ_SOURCE_DIR}/include/algos/aorb
${RK_AIQ_SOURCE_DIR}/include/algos/acsm
${RK_AIQ_SOURCE_DIR}/include/algos/asd
${RK_AIQ_SOURCE_DIR}/include/algos/asharp
${RK_AIQ_SOURCE_DIR}/include/algos/awb
${RK_AIQ_SOURCE_DIR}/include/algos/awdr
${RK_AIQ_SOURCE_DIR}/include/algos/asharp3
${RK_AIQ_SOURCE_DIR}/include/algos/aynr2
${RK_AIQ_SOURCE_DIR}/include/algos/acnr
${RK_AIQ_SOURCE_DIR}/include/algos/aeis
${RK_AIQ_SOURCE_DIR}/include/common
${RK_AIQ_SOURCE_DIR}/include/common/mediactl
${RK_AIQ_SOURCE_DIR}/include/common/gen_mesh
${RK_AIQ_SOURCE_DIR}/include/ipc_server
${RK_AIQ_SOURCE_DIR}/include/amd
${RK_AIQ_SOURCE_DIR}/include/algos/arawnr
${RK_AIQ_SOURCE_DIR}/include/algos/aynr
${RK_AIQ_SOURCE_DIR}/include/algos/auvnr
${RK_AIQ_SOURCE_DIR}/include/algos/amfnr
${RK_AIQ_SOURCE_DIR}/include/algos/again
${RK_AIQ_SOURCE_DIR}/include/algos/aynr3
${RK_AIQ_SOURCE_DIR}/include/algos/acnr2
${RK_AIQ_SOURCE_DIR}/include/algos/asharp4
${RK_AIQ_SOURCE_DIR}/include/algos/abayer2dnr2
${RK_AIQ_SOURCE_DIR}/include/algos/abayertnr2
${RK_AIQ_SOURCE_DIR}/include/algos/again2
${RK_AIQ_SOURCE_DIR}/include/algos/acac
${RK_AIQ_SOURCE_DIR}/include/algos_camgroup/ae
${RK_AIQ_SOURCE_DIR}/include/algos_camgroup/awb
)
set(DIR_SRCS
media_enquiry/media_enquiry.cpp
${RK_AIQ_SOURCE_DIR}/common/mediactl/mediactl.c
media_enquiry/mediactl/v4l2subdev.c
)
set(XCORE_SRC
${RK_AIQ_SOURCE_DIR}/xcore/xcam_common.cpp
${RK_AIQ_SOURCE_DIR}/xcore/xcam_log.cpp
${RK_AIQ_SOURCE_DIR}/xcore/xcam_buffer.cpp
${RK_AIQ_SOURCE_DIR}/xcore/video_buffer.cpp
${RK_AIQ_SOURCE_DIR}/xcore/v4l2_buffer_proxy.cpp
${RK_AIQ_SOURCE_DIR}/xcore/v4l2_device.cpp
${RK_AIQ_SOURCE_DIR}/xcore/fake_v4l2_device.cpp
${RK_AIQ_SOURCE_DIR}/xcore/buffer_pool.cpp
${RK_AIQ_SOURCE_DIR}/xcore/poll_thread.cpp
${RK_AIQ_SOURCE_DIR}/xcore/smart_buffer_priv.cpp
${RK_AIQ_SOURCE_DIR}/xcore/xcam_thread.cpp
)
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)
add_executable(media_enquiry ${DIR_SRCS} ${XCORE_SRC})
target_link_libraries(media_enquiry pthread)