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) 
 |