공식 펌웨어 버전/DFU 이미지 버전 매칭
This commit is contained in:
+14
-6
@@ -42,8 +42,9 @@ if(SB_CONFIG_BOOTLOADER_MCUBOOT)
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# DFU ZIP 파일명에 MCUboot 서명 버전을 붙인 복사본 생성
|
# DFU ZIP 파일명에 공식 FW 버전과 MCUboot 이미지 버전을 함께 붙인 복사본 생성
|
||||||
set(APP_PRJ_CONF "${APP_DIR}/prj.conf")
|
set(APP_PRJ_CONF "${APP_DIR}/prj.conf")
|
||||||
|
set(APP_MAIN_H "${APP_DIR}/src/main.h")
|
||||||
if(EXISTS "${APP_PRJ_CONF}")
|
if(EXISTS "${APP_PRJ_CONF}")
|
||||||
file(READ "${APP_PRJ_CONF}" APP_PRJ_CONF_TEXT)
|
file(READ "${APP_PRJ_CONF}" APP_PRJ_CONF_TEXT)
|
||||||
|
|
||||||
@@ -51,9 +52,12 @@ if(EXISTS "${APP_PRJ_CONF}")
|
|||||||
set(DFU_ZIP_VERSION "${CMAKE_MATCH_1}")
|
set(DFU_ZIP_VERSION "${CMAKE_MATCH_1}")
|
||||||
set(DFU_ZIP_SUFFIX "${DFU_ZIP_VERSION}")
|
set(DFU_ZIP_SUFFIX "${DFU_ZIP_VERSION}")
|
||||||
|
|
||||||
# 0.0.1+3 형식은 사용자가 구분하기 쉽도록 1+3만 사용
|
if(EXISTS "${APP_MAIN_H}")
|
||||||
if(DFU_ZIP_VERSION MATCHES "^0\\.0\\.([0-9]+\\+[^+]+)$")
|
file(READ "${APP_MAIN_H}" APP_MAIN_H_TEXT_FOR_DFU)
|
||||||
set(DFU_ZIP_SUFFIX "${CMAKE_MATCH_1}")
|
if(APP_MAIN_H_TEXT_FOR_DFU MATCHES "#define[ \t]+FIRMWARE_VERSION[ \t]+\"([^\"]+)\"")
|
||||||
|
set(DFU_FW_VERSION "${CMAKE_MATCH_1}")
|
||||||
|
set(DFU_ZIP_SUFFIX "${DFU_FW_VERSION}_${DFU_ZIP_VERSION}")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# 파일명에 쓰기 어려운 문자는 밑줄로 치환
|
# 파일명에 쓰기 어려운 문자는 밑줄로 치환
|
||||||
@@ -86,11 +90,15 @@ if(EXISTS "${APP_MAIN_H}")
|
|||||||
|
|
||||||
if(APP_MAIN_H_TEXT MATCHES "#define[ \t]+FIRMWARE_VERSION[ \t]+\"([^\"]+)\"")
|
if(APP_MAIN_H_TEXT MATCHES "#define[ \t]+FIRMWARE_VERSION[ \t]+\"([^\"]+)\"")
|
||||||
set(FW_HEX_VERSION "${CMAKE_MATCH_1}")
|
set(FW_HEX_VERSION "${CMAKE_MATCH_1}")
|
||||||
string(REGEX REPLACE "[^A-Za-z0-9_.+-]" "_" FW_HEX_VERSION "${FW_HEX_VERSION}")
|
set(FW_HEX_SUFFIX "${FW_HEX_VERSION}")
|
||||||
|
if(DEFINED DFU_ZIP_VERSION)
|
||||||
|
set(FW_HEX_SUFFIX "${FW_HEX_VERSION}_${DFU_ZIP_VERSION}")
|
||||||
|
endif()
|
||||||
|
string(REGEX REPLACE "[^A-Za-z0-9_.+-]" "_" FW_HEX_SUFFIX "${FW_HEX_SUFFIX}")
|
||||||
|
|
||||||
set(FW_HEX_SOURCE "${CMAKE_BINARY_DIR}/merged.hex")
|
set(FW_HEX_SOURCE "${CMAKE_BINARY_DIR}/merged.hex")
|
||||||
set(FW_HEX_RELEASE_DIR "${APP_DIR}/release")
|
set(FW_HEX_RELEASE_DIR "${APP_DIR}/release")
|
||||||
set(FW_HEX_VERSIONED "${FW_HEX_RELEASE_DIR}/VesiScan-Basic_${FW_HEX_VERSION}.hex")
|
set(FW_HEX_VERSIONED "${FW_HEX_RELEASE_DIR}/VesiScan-Basic_${FW_HEX_SUFFIX}.hex")
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT "${FW_HEX_VERSIONED}"
|
OUTPUT "${FW_HEX_VERSIONED}"
|
||||||
|
|||||||
Reference in New Issue
Block a user