• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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