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