72 lines
3.0 KiB
CMake
72 lines
3.0 KiB
CMake
|
#===============================================================================
|
||
|
# @brief cmake file
|
||
|
# Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2023-2023. All rights reserved.
|
||
|
#===============================================================================
|
||
|
|
||
|
if(${NV_UPDATE})
|
||
|
add_custom_target(GENERAT_NVBIN ALL
|
||
|
COMMAND ${Python3_EXECUTABLE} ${ROOT_DIR}/build/config/target_config/${CHIP}/build_nvbin.py ${TARGET_NAME}
|
||
|
COMMENT "update nv bin"
|
||
|
WORKING_DIRECTORY ${ROOT_DIR}
|
||
|
DEPENDS GENERAT_BIN
|
||
|
)
|
||
|
endif()
|
||
|
|
||
|
if(NOT ${NV_CFG} EQUAL "")
|
||
|
set(NV_CFG_JSON ${PROJECT_BINARY_DIR}/nv_config/build_nv_config.json)
|
||
|
set(OUT_BIN_DIR ${ROOT_DIR}/interim_binary/${CHIP}/bin/nv/${PKG_TARGET_NAME})
|
||
|
if (NOT EXISTS ${OUT_BIN_DIR})
|
||
|
file(MAKE_DIRECTORY ${OUT_BIN_DIR})
|
||
|
endif()
|
||
|
set(OUT_BIN_NAME ${CHIP}_all_nv.bin)
|
||
|
set(BUILD_TEMP_PATH ${PROJECT_BINARY_DIR}/nv_config)
|
||
|
set(NV_TARGET_JSON_PATH ${ROOT_DIR}/middleware/chips/${CHIP}/nv/nv_config/nv_target.json)
|
||
|
set(NV_RELATIVE_PATH ${PROJECT_BINARY_DIR}/nv_config)
|
||
|
set(NV_DEFAULT_CFG_DIR ${ROOT_DIR}/middleware/chips/${CHIP}/nv/nv_config/${NV_CFG}/cfg)
|
||
|
set(DATABASE_TXT_FILE ${PROJECT_BINARY_DIR}/nv_config)
|
||
|
|
||
|
|
||
|
if (NOT EXISTS ${NV_CFG_JSON})
|
||
|
file(WRITE ${NV_CFG_JSON} "{\"OUT_BIN_DIR\":\"${OUT_BIN_DIR}\", \
|
||
|
\"OUT_BIN_NAME\":\"${OUT_BIN_NAME}\", \"BUILD_TEMP_PATH\":\"${BUILD_TEMP_PATH}\", \
|
||
|
\"NV_TARGET_JSON_PATH\":\"${NV_TARGET_JSON_PATH}\", \"NV_RELATIVE_PATH\":\"${NV_RELATIVE_PATH}\", \
|
||
|
\"NV_DEFAULT_CFG_DIR\":\"${NV_DEFAULT_CFG_DIR}\", \"DATABASE_TXT_FILE\":\"${DATABASE_TXT_FILE}\"}")
|
||
|
endif()
|
||
|
|
||
|
set(TARGET_INCLUDE
|
||
|
-I${ROOT_DIR}/include
|
||
|
-I${ROOT_DIR}/middleware/utils/common_headers/native
|
||
|
-I${ROOT_DIR}/middleware/chips/${CHIP}/nv/nv_config/${NV_CFG}/include
|
||
|
)
|
||
|
|
||
|
set(TARGET_DEFINES -DCONFIG_NV_SUPPORT_SINGLE_CORE_SYSTEM)
|
||
|
|
||
|
set(GEN_TARGET_DIR ${PROJECT_BINARY_DIR}/nv_config/etypes)
|
||
|
if (NOT EXISTS ${GEN_TARGET_DIR})
|
||
|
file(MAKE_DIRECTORY ${GEN_TARGET_DIR})
|
||
|
endif()
|
||
|
set(GEN_TARGET_SRC ${GEN_TARGET_DIR}/${CORE}.c)
|
||
|
set(PRECOMPILE_TARGET ${GEN_TARGET_DIR}/${CORE}.etypes)
|
||
|
|
||
|
add_custom_target(GENERAT_NV_INFO ALL
|
||
|
COMMAND ${Python3_EXECUTABLE} ${BUILD_NV_GEN_UTILS} NV include ${GEN_TARGET_SRC}
|
||
|
COMMAND ${CMAKE_C_COMPILER} -o ${PRECOMPILE_TARGET} ${TARGET_INCLUDE} ${TARGET_DEFINES} -E ${GEN_TARGET_SRC}
|
||
|
WORKING_DIRECTORY ${ROOT_DIR}/middleware/chips/${CHIP}/nv/nv_config/${NV_CFG}
|
||
|
DEPENDS GENERAT_BIN
|
||
|
)
|
||
|
|
||
|
if (${NV_CRC16})
|
||
|
set(CRC_FLAGS True)
|
||
|
else()
|
||
|
set(CRC_FLAGS False)
|
||
|
endif()
|
||
|
|
||
|
add_custom_target(GENERAT_NVBIN ALL
|
||
|
COMMAND ${Python3_EXECUTABLE} ${BUILD_NV_TOOL} ${NV_CFG_JSON} ${CORE} ${CRC_FLAGS} &&
|
||
|
${CP} ${OUT_BIN_DIR}/${OUT_BIN_NAME} ${PROJECT_BINARY_DIR}/${OUT_BIN_NAME}
|
||
|
COMMENT "update nv bin"
|
||
|
WORKING_DIRECTORY ${ROOT_DIR}
|
||
|
DEPENDS GENERAT_NV_INFO
|
||
|
)
|
||
|
endif()
|