1#=============================================================================== 2# @brief cmake file 3# Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED. 4#=============================================================================== 5 6if(${NV_UPDATE}) 7 add_custom_target(GENERAT_NVBIN ALL 8 COMMAND ${Python3_EXECUTABLE} ${ROOT_DIR}/build/config/target_config/${CHIP}/build_nvbin.py ${TARGET_NAME} 9 COMMENT "update nv bin" 10 WORKING_DIRECTORY ${ROOT_DIR} 11 DEPENDS GENERAT_BIN 12 ) 13endif() 14 15if(NOT ${NV_CFG} EQUAL "") 16 set(NV_CFG_JSON ${PROJECT_BINARY_DIR}/nv_config/build_nv_config.json) 17 set(OUT_BIN_DIR ${ROOT_DIR}/interim_binary/${CHIP}/bin/nv/${PKG_TARGET_NAME}) 18 if (NOT EXISTS ${OUT_BIN_DIR}) 19 file(MAKE_DIRECTORY ${OUT_BIN_DIR}) 20 endif() 21 set(OUT_BIN_NAME ${CHIP}_all_nv.bin) 22 set(BUILD_TEMP_PATH ${PROJECT_BINARY_DIR}/nv_config) 23 set(NV_TARGET_JSON_PATH ${ROOT_DIR}/middleware/chips/${CHIP}/nv/nv_config/nv_target.json) 24 set(NV_RELATIVE_PATH ${PROJECT_BINARY_DIR}/nv_config) 25 set(NV_DEFAULT_CFG_DIR ${ROOT_DIR}/middleware/chips/${CHIP}/nv/nv_config/${NV_CFG}/cfg) 26 set(DATABASE_TXT_FILE ${PROJECT_BINARY_DIR}/nv_config) 27 28 29 if (NOT EXISTS ${NV_CFG_JSON}) 30 file(WRITE ${NV_CFG_JSON} "{\"OUT_BIN_DIR\":\"${OUT_BIN_DIR}\", \ 31 \"OUT_BIN_NAME\":\"${OUT_BIN_NAME}\", \"BUILD_TEMP_PATH\":\"${BUILD_TEMP_PATH}\", \ 32 \"NV_TARGET_JSON_PATH\":\"${NV_TARGET_JSON_PATH}\", \"NV_RELATIVE_PATH\":\"${NV_RELATIVE_PATH}\", \ 33 \"NV_DEFAULT_CFG_DIR\":\"${NV_DEFAULT_CFG_DIR}\", \"DATABASE_TXT_FILE\":\"${DATABASE_TXT_FILE}\"}") 34 endif() 35 36 set(TARGET_INCLUDE 37 -I${ROOT_DIR}/include 38 -I${ROOT_DIR}/middleware/utils/common_headers/native 39 -I${ROOT_DIR}/middleware/chips/${CHIP}/nv/nv_config/${NV_CFG}/include 40 ) 41 42 set(TARGET_DEFINES -DCONFIG_NV_SUPPORT_SINGLE_CORE_SYSTEM) 43 44 set(GEN_TARGET_DIR ${PROJECT_BINARY_DIR}/nv_config/etypes) 45 if (NOT EXISTS ${GEN_TARGET_DIR}) 46 file(MAKE_DIRECTORY ${GEN_TARGET_DIR}) 47 endif() 48 set(GEN_TARGET_SRC ${GEN_TARGET_DIR}/${CORE}.c) 49 set(PRECOMPILE_TARGET ${GEN_TARGET_DIR}/${CORE}.etypes) 50 51 add_custom_target(GENERAT_NV_INFO ALL 52 COMMAND ${Python3_EXECUTABLE} ${BUILD_NV_GEN_UTILS} NV include ${GEN_TARGET_SRC} 53 COMMAND ${CMAKE_C_COMPILER} -o ${PRECOMPILE_TARGET} ${TARGET_INCLUDE} ${TARGET_DEFINES} -E ${GEN_TARGET_SRC} 54 WORKING_DIRECTORY ${ROOT_DIR}/middleware/chips/${CHIP}/nv/nv_config/${NV_CFG} 55 DEPENDS GENERAT_BIN 56 ) 57 58 if (${NV_CRC16}) 59 set(CRC_FLAGS True) 60 else() 61 set(CRC_FLAGS False) 62 endif() 63 64 add_custom_target(GENERAT_NVBIN ALL 65 COMMAND ${Python3_EXECUTABLE} ${BUILD_NV_TOOL} ${NV_CFG_JSON} ${CORE} ${CRC_FLAGS} && 66 ${CP} ${OUT_BIN_DIR}/${OUT_BIN_NAME} ${PROJECT_BINARY_DIR}/${OUT_BIN_NAME} 67 COMMENT "update nv bin" 68 WORKING_DIRECTORY ${ROOT_DIR} 69 DEPENDS GENERAT_NV_INFO 70 ) 71endif() 72