xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/tools/j2s4b/CMakeLists.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1cmake_minimum_required(VERSION 2.8...3.22)
2
3set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
4if (RKAIQ_TARGET_ARCH STREQUAL "arm")
5    set(CMAKE_C_FLAGS -m32)
6    set(CMAKE_CXX_FLAGS -m32)
7    set(CMAKE_EXE_LINKER_FLAGS -m32)
8endif()
9set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")
10
11add_compile_options(-std=c++11)
12add_compile_options(-fPIC -Wall -Wno-error -O0 -g)
13add_compile_options(-Wno-unused-variable
14    -Wno-unused-but-set-variable
15    -Wno-unused-function
16    -Wno-misleading-indentation
17    -Wno-unused-label
18    -Wno-format-truncation
19    -fno-strict-aliasing)
20
21list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
22include(GetGitVersion)
23get_git_version(GIT_VERSION)
24
25PROJECT(j2s4b)
26
27set(ROOT_PROJ_DIR ${PROJECT_SOURCE_DIR}/../..)
28
29if (ROOT_PROJ_BIN_DIR)
30    message("ROOT_PROJ_BIN_DIR:${ROOT_PROJ_BIN_DIR}")
31    include_directories(${ROOT_PROJ_BIN_DIR})
32else()
33    message(FATAL_ERROR "Could not find ROOT_PROJ_BIN_DIR")
34endif()
35
36if (RKAIQ_IQFILES_DIR)
37    file(GLOB RKAIQ_IQFILES  ${RKAIQ_IQFILES_DIR}/*.json)
38else()
39    message(FATAL_ERROR "Could not find RKAIQ_IQFILES_DIR")
40endif()
41
42include_directories(
43    src
44    src/j2s4b
45    include
46    ${ROOT_PROJ_DIR}/include/iq_parser_v2/j2s/
47    )
48
49set(CXX_SRCS
50    ${ROOT_PROJ_DIR}/iq_parser_v2/j2s/cJSON.cpp
51    ${ROOT_PROJ_DIR}/iq_parser_v2/j2s/cJSON_Utils.cpp
52    src/j2s4b/BinRecord.cpp
53    src/j2s4b/RkAiqsceneManager.cpp
54    src/j2s4b/j2s.cpp
55    src/j2s4b/j2s4b_utils.cpp
56    src/main.cpp)
57
58add_definitions(-DGIT_VERSION="${GIT_VERSION}")
59
60ADD_EXECUTABLE(j2s4b ${CXX_SRCS})
61if (RKAIQ_TARGET_ARCH STREQUAL "arm")
62set_target_properties(j2s4b PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32")
63endif()
64
65foreach(IQPATH ${RKAIQ_IQFILES})
66    string(REGEX MATCH "${RKAIQ_IQFILES_DIR}/.*" SHORT_NAME ${IQPATH})
67    string(REGEX REPLACE "${RKAIQ_IQFILES_DIR}/" "" ORIGIN_NAME ${SHORT_NAME})
68    string(REGEX REPLACE "json" "bin" TAGT_NAME ${ORIGIN_NAME})
69    string(REGEX REPLACE ".json" "" BIN_PROJ_NAME ${ORIGIN_NAME})
70    add_custom_target(
71        ${BIN_PROJ_NAME}
72        ALL
73        COMMAND j2s4b ${IQPATH} ${TAGT_NAME}
74        BYPRODUCTS ${TAGT_NAME}
75        DEPENDS j2s4b
76        )
77    install(PROGRAMS "${CMAKE_BINARY_DIR}/${TAGT_NAME}" DESTINATION usr/share/iqfiles)
78endforeach()
79install(TARGETS j2s4b RUNTIME DESTINATION host)
80
81