xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/media_enquiry/CMakeLists.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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