xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/smart_ir/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(smart_ir)
10
11if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/rk_smart_ir.cpp")
12	message("${CMAKE_CURRENT_SOURCE_DIR}/src/rk_smart_ir.cpp not exist, install the libs directly")
13	set(C_LIBRARY_NAME "glibc" CACHE INTERNAL "")
14	if (EXISTS ${CMAKE_CURRENT_LIST_DIR}/../rkaiq/)
15		include(${CMAKE_CURRENT_LIST_DIR}/../rkaiq/cmake/CheckGlibc.cmake)
16		CHECK_GLIBC_VERSION()
17	endif()
18	string(TOLOWER ${RKAIQ_TARGET_SOC} SOC)
19	set(CMAKE_LIBRARY_PATH
20		"${CMAKE_CURRENT_LIST_DIR}/lib/${SOC}/${ARCH}/${C_LIBRARY_NAME}")
21	install(DIRECTORY include/ DESTINATION include/rkaiq/smartIr FILES_MATCHING PATTERN "*.h")
22	install(FILES ${CMAKE_LIBRARY_PATH}/libsmartIr.so DESTINATION lib)
23	install(FILES ${CMAKE_LIBRARY_PATH}/libsmartIr.a DESTINATION lib RENAME libsmartIr.a)
24	return()
25endif()
26
27list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
28
29# include(BuildOptions)
30# include(CompileOptions)
31# include(GNUInstallDirs)
32
33set_property(GLOBAL PROPERTY USE_FOLDERS ON)
34set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMakeTargets")
35
36set(RK_AIQ_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../rk_aiq)
37message("rkaiq src path" ${RK_AIQ_SOURCE_DIR})
38
39add_compile_options(-Os)
40add_compile_options(-fstack-protector-strong -D_FORTIFY_SOURCE=2)
41
42find_path(RKAIQ_INCLUDE_DIR
43    NAMES
44	rk_aiq.h
45    PATH
46	common
47	rkaiq/common
48)
49find_library(RKAIQ_LIBRARY_DIR
50	rkaiq
51)
52if(RKAIQ_INCLUDE_DIR AND RKAIQ_LIBRARY_DIR)
53set(RK_AIQ_INSTALLED_DIR ${RKAIQ_INCLUDE_DIR})
54set(RK_AIQ_LIB_DIR ${RKAIQ_LIBRARY_DIR})
55else()
56set(RK_AIQ_INSTALLED_DIR "${RK_AIQ_SOURCE_DIR}/build/linux/output/${ARCH}/installed" CACHE STRING "AIQ library installed dir")
57set(RK_AIQ_LIB_DIR ${RK_AIQ_INSTALLED_DIR}/lib)
58endif()
59message("rkaiq lib path" ${RK_AIQ_LIB_DIR})
60set(RK_AIQ_INCLUDE_DIR
61	${RK_AIQ_INSTALLED_DIR}/
62	${RK_AIQ_INSTALLED_DIR}/rkaiq/
63	${RK_AIQ_INSTALLED_DIR}/rkaiq/uAPI2
64	${RK_AIQ_INSTALLED_DIR}/rkaiq/xcore/
65	${RK_AIQ_INSTALLED_DIR}/rkaiq/algos/
66	${RK_AIQ_INSTALLED_DIR}/rkaiq/common/
67	${RK_AIQ_INSTALLED_DIR}/rkaiq/iq_parser/
68	${RK_AIQ_INSTALLED_DIR}/rkaiq/iq_parser_v2/
69	${RK_AIQ_INSTALLED_DIR}/include/
70	${RK_AIQ_INSTALLED_DIR}/include/rkaiq/
71	${RK_AIQ_INSTALLED_DIR}/include/rkaiq/uAPI2
72	${RK_AIQ_INSTALLED_DIR}/include/rkaiq/xcore/
73	${RK_AIQ_INSTALLED_DIR}/include/rkaiq/algos/
74	${RK_AIQ_INSTALLED_DIR}/include/rkaiq/common/
75	${RK_AIQ_INSTALLED_DIR}/include/rkaiq/iq_parser/
76	${RK_AIQ_INSTALLED_DIR}/include/rkaiq/iq_parser_v2/
77	)
78set(RK_AIQ_LIB rkaiq)
79
80if(RK_AIQ_IS_SUBDIR)
81get_target_property(RK_AIQ_HEADER_DIR rkaiq INTERFACE_INCLUDE_DIRECTORIES)
82message("RK_AIQ_HEADER_DIR ${RK_AIQ_HEADER_DIR}")
83endif()
84
85include_directories(
86    include
87    ${RK_AIQ_INCLUDE_DIR}
88	${RK_AIQ_HEADER_DIR}
89    )
90
91set (SMARTIR_SRC
92	src/rk_smart_ir.cpp
93	)
94list(APPEND DIR_SRCS ${AFDEMO_DIR_SRCS})
95
96SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/all_lib/${CMAKE_BUILD_TYPE})
97SET(CMAKE_LIBRARY_PATH ${LIBRARY_OUTPUT_PATH})
98
99#set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
100#set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
101message(${CMAKE_LIBRARY_PATH})
102message(${LIBRARY_OUTPUT_PATH})
103
104add_definitions(-D_CRT_SECURE_NO_WARNINGS)
105
106link_directories("${RK_AIQ_LIB_DIR}")
107add_library(smartIr SHARED ${SMARTIR_SRC})
108target_link_libraries(smartIr PUBLIC ${RK_AIQ_LIB})
109
110add_library(smartIr_static STATIC ${SMARTIR_SRC})
111
112install(DIRECTORY include/ DESTINATION include/rkaiq/smartIr FILES_MATCHING PATTERN "*.h")
113install(FILES ${CMAKE_LIBRARY_PATH}/libsmartIr.so DESTINATION lib)
114install(FILES ${CMAKE_LIBRARY_PATH}/libsmartIr_static.a DESTINATION lib RENAME libsmartIr.a)
115