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
cmake_minimum_required(VERSION 3.5.1)
 
project(j2s)
 
# ├── iq_check.c
# ├── include
# │   ├── cJSON.h
# │   ├── cJSON_Utils.h
# │   ├── common.h
# │   ├── j2s_generated.h
# │   └── j2s.h
# ├── input.h
# ├── j2s
# │   ├── cJSON.c
# │   ├── cJSON_Utils.c
# │   ├── j2s.c
# │   └── j2s_utils.c
 
set(ROOT_PROJ_DIR ${PROJECT_SOURCE_DIR}/../..)
 
set(J2S_SRC
    ${ROOT_PROJ_DIR}/iq_parser_v2/j2s/cJSON.c
    ${ROOT_PROJ_DIR}/iq_parser_v2/j2s/cJSON_Utils.c
    ${ROOT_PROJ_DIR}/iq_parser_v2/j2s/j2s.c
    ${ROOT_PROJ_DIR}/iq_parser_v2/j2s/j2s_utils.c
)
 
include_directories(${CMAKE_SYSROOT}/usr/includ)
include_directories(${ROOT_PROJ_DIR}/include)
include_directories(${ROOT_PROJ_DIR}/include/common)
include_directories(${ROOT_PROJ_DIR}/include/iq_parser_v2)
include_directories(${ROOT_PROJ_DIR}/include/iq_parser_v2/j2s)
include_directories(${ROOT_PROJ_DIR}/)
 
add_compile_options(${ISP_HW_VERSION})
 
#########################################################
#               HEADER MACRO PREPROCESS                 #
#########################################################
add_custom_target(
    j2s_parser
    COMMAND ${CMAKE_C_COMPILER}
    ${ROOT_PROJ_DIR}/include/iq_parser_v2/RkAiqCalibDbTypesV2.h -E -C -o .temp.h ${ISP_HW_VERSION}
    -I${ROOT_PROJ_DIR}/include/common
    -I${ROOT_PROJ_DIR}/include/iq_parser_v2
    -I${ROOT_PROJ_DIR}/include/iq_parser
    COMMAND ${PROJECT_SOURCE_DIR}/script/header_strip.sh
    .temp.h output.h
 
    COMMAND cat ${PROJECT_SOURCE_DIR}/script/m4/desc.m4
    output.h > RkAiqCalibDbTypesV2.m4
    COMMAND cp ${PROJECT_SOURCE_DIR}/script/m4/desc.sh ./
    COMMAND m4 -E RkAiqCalibDbTypesV2.m4 > RkAiqCalibDbTypesV2_M4.h
)
 
#########################################################
#                BUILD HOST PARSER TOOL                 #
#########################################################
add_custom_target(
    parser_tool
    COMMAND gcc -DJ2S_ENABLE_DESC ${PROJECT_SOURCE_DIR}/src/parser.c -o parser ${ISP_HW_VERSION}
    -I${ROOT_PROJ_DIR}/include/common
    -I${ROOT_PROJ_DIR}/include/iq_parser_v2
    -I${ROOT_PROJ_DIR}/include/iq_parser_v2/j2s
    COMMAND ${PROJECT_SOURCE_DIR}/script/headerprocess.sh
    ${ROOT_PROJ_DIR}/include/iq_parser_v2/RkAiqCalibDbTypesV2.h
    ${ROOT_PROJ_DIR}/include/iq_parser_v2/j2s/j2s_generated.h
    COMMAND ${PROJECT_SOURCE_DIR}/bin/parser RkAiqCalibDbTypesV2_M4.h >>
    ${ROOT_PROJ_DIR}/include/iq_parser_v2/j2s/j2s_generated.h
    )
add_dependencies(parser_tool j2s_parser)
 
#########################################################
#                    BUILD LIBRARY                      #
#########################################################
add_library(j2s STATIC ${J2S_SRC})
add_dependencies(j2s j2s_parser)
 
#########################################################
#                    BUILD HOST DUMP TOOL               #
#########################################################
add_custom_target(
    dump_tool
    COMMAND gcc -DJ2S_ENABLE_DESC ${ISP_HW_VERSION} -o dump ${J2S_SRC} ${ISP_HW_VERSION}
    ${PROJECT_SOURCE_DIR}/src/dump.c
    -I${ROOT_PROJ_DIR}/include/common
    -I${ROOT_PROJ_DIR}/include/iq_parser_v2
    -I${ROOT_PROJ_DIR}/include/iq_parser_v2/j2s
 
    COMMAND ./dump --template > .j2s_template.json
    COMMAND cp ${PROJECT_SOURCE_DIR}/script/dump_template.sh ./
    COMMAND ./dump_template.sh
    ${ROOT_PROJ_DIR}/include/iq_parser_v2/j2s/j2s_generated_template_json.h
    )
add_dependencies(dump_tool parser_tool)
 
#########################################################
#                    BUILD TOOL                         #
#########################################################
add_executable(iq_check iq_check.c)
target_link_libraries(iq_check j2s)
add_dependencies(iq_check dump_tool)
 
install(TARGETS j2s DESTINATION lib)
install(TARGETS iq_check DESTINATION bin)