빌드 시 FW Version 포함 release hex 자동 복사 추가
- 일반 빌드 시 build/merged.hex를 release/VesiScan-Basic_<FIRMWARE_VERSION>.hex 형식으로 자동 복사하도록 추가 - 생산용 HEX 파일을 펌웨어 버전별로 관리할 수 있게 함
This commit is contained in:
@@ -75,3 +75,32 @@ if(EXISTS "${APP_PRJ_CONF}")
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Production HEX file name based on src/main.h FIRMWARE_VERSION.
|
||||
set(APP_MAIN_H "${APP_DIR}/src/main.h")
|
||||
if(EXISTS "${APP_MAIN_H}")
|
||||
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${APP_MAIN_H}")
|
||||
file(READ "${APP_MAIN_H}" APP_MAIN_H_TEXT)
|
||||
|
||||
if(APP_MAIN_H_TEXT MATCHES "#define[ \t]+FIRMWARE_VERSION[ \t]+\"([^\"]+)\"")
|
||||
set(FW_HEX_VERSION "${CMAKE_MATCH_1}")
|
||||
string(REGEX REPLACE "[^A-Za-z0-9_.+-]" "_" FW_HEX_VERSION "${FW_HEX_VERSION}")
|
||||
|
||||
set(FW_HEX_SOURCE "${CMAKE_BINARY_DIR}/merged.hex")
|
||||
set(FW_HEX_RELEASE_DIR "${APP_DIR}/release")
|
||||
set(FW_HEX_VERSIONED "${FW_HEX_RELEASE_DIR}/VesiScan-Basic_${FW_HEX_VERSION}.hex")
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${FW_HEX_VERSIONED}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${FW_HEX_RELEASE_DIR}"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FW_HEX_SOURCE}" "${FW_HEX_VERSIONED}"
|
||||
DEPENDS "${FW_HEX_SOURCE}"
|
||||
COMMENT "Generating firmware-versioned HEX ${FW_HEX_VERSIONED}"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_target(firmware_versioned_hex ALL
|
||||
DEPENDS "${FW_HEX_VERSIONED}"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user