hc
2024-08-12 233ab1bd4c5697f5cdec94e60206e8c6ac609b4c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
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)
 
PROJECT(rkisp_demo)
 
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)
 
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)
    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_INCLUDE_DIR
       #${RK_AIQ_SOURCE_DIR}
        ${RK_AIQ_SOURCE_DIR}/include/
        ${RK_AIQ_SOURCE_DIR}/include/uAPI2
        ${RK_AIQ_SOURCE_DIR}/include/xcore/
        ${RK_AIQ_SOURCE_DIR}/include/algos/
        ${RK_AIQ_SOURCE_DIR}/include/common/
        ${RK_AIQ_SOURCE_DIR}/include/iq_parser/
        ${RK_AIQ_SOURCE_DIR}/include/iq_parser_v2/
        #${FPGA_RGA_INCLUDE_PATH}/include/
        )
    set(RK_AIQ_LIB rkaiq)
endif()
 
if (ARCH STREQUAL "aarch64")
    set(RK_DRM_LIB_DIR ${PROJECT_SOURCE_DIR}/demo/libs/arm64/)
elseif (ARCH STREQUAL "arm")
    set(RK_DRM_LIB_DIR
        ${PROJECT_SOURCE_DIR}/demo/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}/demo/iio/lib)
    set(IIO_LIBS easyiio iio serialport xml2 )
endif()
 
include_directories(
    demo
    demo/include
    demo/include/rga
    demo/include/libdrm
    demo/drmDsp
    demo/iio/include
    ${RK_AIQ_INCLUDE_DIR}
    demo/sample/
   ${SDK_MEDIA_DIR}/include
    )
 
if (NOT ARCH STREQUAL "fpga")
    aux_source_directory(demo DIR_SRCS)
    aux_source_directory(demo/drmDsp DRMDSP_DIR_SRCS)
    aux_source_directory(demo/sample SAMPLE_DIR_SRCS)
else ()
    set (DIR_SRCS
        demo/rkisp_demo.cpp
        demo/drmDsp.c
        demo/drmDsp/bo.c
        demo/drmDsp/dev.c
        demo/drmDsp/modeset.c
        )
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})
 
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)
 
link_directories("${LIBRARY_OUTPUT_PATH}" "${RK_AIQ_LIB_DIR}" "${RK_DRM_LIB_DIR}" "${IIO_LIB_DIR}")
add_executable(rkisp_demo ${DIR_SRCS})
target_link_libraries(rkisp_demo ${RK_AIQ_LIB} ${RK_DRM_LIB} ${RK_RGA_LIB} ${IIO_LIBS} pthread dl)
 
#FIXME: buildroot and ipc sdk shall use the same setting
if(BUILDROOT_BUILD_PROJECT)
   install(TARGETS rkisp_demo
   RUNTIME DESTINATION /usr/bin
   LIBRARY DESTINATION /usr/lib
   )
 
else()
   install(TARGETS rkisp_demo
   RUNTIME DESTINATION "usr/bin"
   LIBRARY DESTINATION "usr/lib"
)
endif()