xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq_3A_server/CMakeLists.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1
2if(NOT CMAKE_BUILD_TYPE)
3    # default to Release build for GCC builds
4    set(CMAKE_BUILD_TYPE Release CACHE STRING
5        "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel."
6        FORCE)
7endif()
8
9cmake_minimum_required(VERSION 2.8...3.22)
10
11#project name
12PROJECT(rkaiq_3A_server)
13
14#set BUILDROOT_BUILD_PROJECT
15#set(BUILDROOT_BUILD_PROJECT true)
16#set(ENABLE_ASAN true)
17
18# ----------------------------------------------------------------------------
19# SET THE COMPILER PATH
20# ----------------------------------------------------------------------------
21#if(BUILDROOT_BUILD_PROJECT)
22    # buildroot will set the compiler
23#else()
24#    SET(CMAKE_C_COMPILER "/home/camera/camera/rv1109_sdk/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc")
25#    SET(CMAKE_CXX_COMPILER "/home/camera/camera/rv1109_sdk/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++")
26#endif()
27
28# ----------------------------------------------------------------------------
29# ADD SYMBOL TABLE FOR GDB
30# ----------------------------------------------------------------------------
31# SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -ggdb")
32# SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -ggdb")
33
34# ----------------------------------------------------------------------------
35# set property to classify library kinds
36# ----------------------------------------------------------------------------
37set_property(GLOBAL PROPERTY USE_FOLDERS ON)
38set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMakeTargets")
39
40#set(CMAKE_CONFIGURATION_TYPES "Debug;Release")
41
42set(CMAKE_CXX_FLAGS                "${CMAKE_CXX_FLAGS} -Wall -std=c++11 -fPIC")
43
44#set ADD_RK_AIQ
45set(ADD_RK_AIQ true)
46
47#SET RK_AIQ SOURCE DIR
48set(RK_AIQ_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../rkaiq)
49message("rkaiq src path" ${RK_AIQ_SOURCE_DIR})
50
51if(ENABLE_ASAN)
52add_compile_options(-fsanitize=address -fno-omit-frame-pointer -g)
53SET(LINK_ASAN asan)
54endif()
55
56if(ADD_RK_AIQ)
57add_compile_options(-std=c++11)
58add_compile_options(-DADD_RK_AIQ)
59add_compile_options(-O)
60# add_compile_options(-v)
61find_path(RKAIQ_INCLUDE_DIR
62    NAMES
63	rk_aiq.h
64    PATH
65	common
66	rkaiq/common
67)
68find_library(RKAIQ_LIBRARY_DIR
69	rkaiq
70)
71if(RKAIQ_INCLUDE_DIR AND RKAIQ_LIBRARY_DIR)
72set(RK_AIQ_INSTALLED_DIR ${RKAIQ_INCLUDE_DIR})
73set(RK_AIQ_LIB_DIR ${RKAIQ_LIBRARY_DIR})
74message("rkaiq lib path" ${RK_AIQ_LIB_DIR})
75SET(RK_AIQ_INCLUDE_DIR
76        ${RK_AIQ_INSTALLED_DIR}/rkaiq/
77        ${RK_AIQ_INSTALLED_DIR}/rkaiq/uAPI2
78        ${RK_AIQ_INSTALLED_DIR}/rkaiq/xcore/
79        ${RK_AIQ_INSTALLED_DIR}/rkaiq/algos/
80        ${RK_AIQ_INSTALLED_DIR}/rkaiq/common/
81        ${RK_AIQ_INSTALLED_DIR}/rkaiq/iq_parser/
82        ${RK_AIQ_INSTALLED_DIR}/rkaiq/iq_parser_v2/
83)
84SET(RK_AIQ_LIB rkaiq)
85else()
86message("Please check librkaiq.so and include files")
87endif()
88endif()
89
90if(RK_AIQ_IS_SUBDIR)
91get_target_property(RK_AIQ_HEADER_DIR rkaiq INTERFACE_INCLUDE_DIRECTORIES)
92message("RK_AIQ_HEADER_DIR ${RK_AIQ_HEADER_DIR}")
93SET(RK_AIQ_LIB rkaiq)
94endif()
95
96include_directories(
97${RK_AIQ_INCLUDE_DIR}
98${RK_AIQ_HEADER_DIR}
99include/common/mediactl
100./
101./common/
102)
103
104if(GENMESH_ONLINE)
105	if(ARCH STREQUAL "aarch64")
106		set (GENMESH_LIBS_DIR
107			${PROJECT_SOURCE_DIR}/../common/gen_mesh/linux/genMesh_static_64bit/
108			)
109	else()
110		set (GENMESH_LIBS_DIR
111			${PROJECT_SOURCE_DIR}/../common/gen_mesh/linux/genMesh_static_32bit/
112			)
113	endif()
114endif()
115
116add_definitions(-D_CRT_SECURE_NO_WARNINGS)
117
118link_directories("${RK_AIQ_LIB_DIR}" "${GENMESH_LIBS_DIR}")
119ADD_EXECUTABLE(rkaiq_3A_server rkaiq_3A_server.cpp common/mediactl/mediactl.c)
120
121target_link_libraries(rkaiq_3A_server ${RK_AIQ_LIB} pthread dl)
122
123#FIXME: buildroot and ipc sdk shall use the same setting
124if(BUILDROOT_BUILD_PROJECT)
125	install(TARGETS rkaiq_3A_server
126		RUNTIME DESTINATION /usr/bin
127		LIBRARY DESTINATION /usr/lib
128		)
129
130	install(FILES S40rkaiq_3A DESTINATION /etc/init.d/
131		PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
132		GROUP_EXECUTE GROUP_READ
133		WORLD_EXECUTE WORLD_READ)
134else()
135	install(TARGETS rkaiq_3A_server
136		RUNTIME DESTINATION "usr/bin"
137		LIBRARY DESTINATION "usr/lib"
138		)
139
140	install(FILES S40rkaiq_3A DESTINATION "etc/init.d"
141		PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
142		GROUP_EXECUTE GROUP_READ
143		WORLD_EXECUTE WORLD_READ)
144endif()
145