cmake: Correctly patch binary during multi-language builds
lang-map.py expects to use the BIN file as an input-output argument. The resulting BIN file contains an updated _PRI_LANG_SIGNATURE symbol.
This commit is contained in:
parent
ac1fca4a6a
commit
3ec54d355e
|
|
@ -388,6 +388,7 @@ function(fw_add_variant variant_name)
|
|||
|
||||
# Multi-language build/s
|
||||
set(FW_LANG_BASE "${variant_name}_Multilang_base")
|
||||
set(FW_LANG_PATCH "${variant_name}_Multilang_patch")
|
||||
set(FW_LANG_FINAL "${variant_name}_Multilang")
|
||||
add_base_binary(${FW_LANG_BASE})
|
||||
target_compile_definitions(${FW_LANG_BASE} PUBLIC LANG_MODE=1)
|
||||
|
|
@ -397,16 +398,13 @@ function(fw_add_variant variant_name)
|
|||
set(LANG_MAP ${LANG_TMP_DIR}/${variant_name}_lang.map)
|
||||
set(LANG_HEX ${CMAKE_BINARY_DIR}/${FN_PREFIX}-${FW_LANG_FINAL}.hex)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${FW_LANG_BASE}.bin
|
||||
COMMAND ${CMAKE_OBJCOPY} -I ihex -O binary ${FW_LANG_BASE}.hex
|
||||
${FW_LANG_BASE}.bin
|
||||
DEPENDS ${FW_LANG_BASE}.hex)
|
||||
add_custom_command(
|
||||
OUTPUT ${LANG_MAP}
|
||||
COMMAND ${CMAKE_SOURCE_DIR}/lang/lang-map.py ${FW_LANG_BASE}
|
||||
${FW_LANG_BASE}.bin > ${LANG_MAP}
|
||||
DEPENDS ${FW_LANG_BASE}.bin
|
||||
COMMAND ${CMAKE_OBJCOPY} -O binary ${FW_LANG_BASE} ${FW_LANG_PATCH}.bin
|
||||
COMMAND ${CMAKE_SOURCE_DIR}/lang/lang-map.py ${FW_LANG_BASE} ${FW_LANG_PATCH}.bin > ${LANG_MAP}
|
||||
COMMAND ${CMAKE_OBJCOPY} -I binary -O ihex ${FW_LANG_PATCH}.bin ${FW_LANG_PATCH}.hex
|
||||
DEPENDS ${FW_LANG_BASE}
|
||||
BYPRODUCTS ${FW_LANG_PATCH}.bin ${FW_LANG_PATCH}.hex
|
||||
COMMENT "Generating ${variant_name} language map")
|
||||
|
||||
set(LANG_BINS "")
|
||||
|
|
@ -454,10 +452,10 @@ function(fw_add_variant variant_name)
|
|||
|
||||
add_custom_command(
|
||||
OUTPUT ${FW_LANG_FINAL}.hex
|
||||
COMMAND ${CMAKE_COMMAND} -E cat ${FW_LANG_BASE}.hex ${LANG_CATHEX} > ${FW_LANG_FINAL}.hex
|
||||
COMMAND ${CMAKE_COMMAND} -E cat ${FW_LANG_PATCH}.hex ${LANG_CATHEX} > ${FW_LANG_FINAL}.hex
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${FW_LANG_FINAL}.hex ${LANG_HEX}
|
||||
BYPRODUCTS ${LANG_HEX}
|
||||
DEPENDS ${LANG_CATHEX}
|
||||
DEPENDS ${FW_LANG_PATCH}.hex ${LANG_CATHEX}
|
||||
COMMENT "Generating final ${FW_LANG_FINAL}.hex")
|
||||
add_custom_target(${FW_LANG_FINAL} DEPENDS ${FW_LANG_FINAL}.hex)
|
||||
add_dependencies(ALL_MULTILANG ${FW_LANG_FINAL})
|
||||
|
|
|
|||
Loading…
Reference in New Issue