LPT26x-HSF-4MB-Hilink_14.2..../build/cmake/build_nv_bin.cmake

72 lines
3.0 KiB
CMake
Raw Permalink Normal View History

2025-05-13 22:00:58 +08:00
#===============================================================================
# @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()