cmake: Fix/uniform non-xflash builds

This commit is contained in:
Yuri D'Elia 2022-10-03 21:15:02 +02:00
parent 9d716e9d69
commit 0b23ab8e09
1 changed files with 18 additions and 17 deletions

View File

@ -459,34 +459,35 @@ function(fw_add_variant variant_name)
BYPRODUCTS ${LANG_HEX} BYPRODUCTS ${LANG_HEX}
DEPENDS ${FW_LANG_PATCH}.hex ${LANG_CATHEX} DEPENDS ${FW_LANG_PATCH}.hex ${LANG_CATHEX}
COMMENT "Generating final ${FW_LANG_FINAL}.hex") COMMENT "Generating final ${FW_LANG_FINAL}.hex")
add_custom_target(${FW_LANG_FINAL} DEPENDS ${FW_LANG_FINAL}.hex) add_custom_target(${FW_LANG_FINAL} DEPENDS ${FW_LANG_FINAL}.hex)
add_dependencies(ALL_MULTILANG ${FW_LANG_FINAL}) add_dependencies(ALL_MULTILANG ${FW_LANG_FINAL})
else() else()
set(ALL_VARIANT_HEXES "") set(ALL_VARIANT_HEXES "")
# Non-xflash, e.g. MK2.5 # Non-xflash, e.g. MK2.5
foreach(LANG IN LISTS SELECTED_LANGUAGES) foreach(LANG IN LISTS SELECTED_LANGUAGES)
set(LANG_HEX_FN ${variant_name}-en_${LANG}) set(FW_LANG_FINAL ${variant_name}-en_${LANG})
set(LANG_HEX ${CMAKE_BINARY_DIR}/${FN_PREFIX}-${LANG_HEX_FN}.hex) set(LANG_HEX ${CMAKE_BINARY_DIR}/${FN_PREFIX}-${FW_LANG_FINAL}.hex)
set(LANG_BIN ${LANG_TMP_DIR}/${variant_name}_${LANG}.bin) set(LANG_BIN ${LANG_TMP_DIR}/${variant_name}_${LANG}.bin)
set(LANG_FWBIN_TMP ${LANG_TMP_DIR}/${variant_name}-en_${LANG}.bin)
# Intermediate 2-lang bin # Intermediate 2-lang bin
add_custom_command( add_custom_command(
OUTPUT ${LANG_FWBIN_TMP} OUTPUT ${FW_LANG_FINAL}.bin
COMMAND ${CMAKE_COMMAND} -E copy ${LANG_FWBIN} ${LANG_FWBIN_TMP} COMMAND ${CMAKE_OBJCOPY} -O binary ${FW_LANG_BASE} ${FW_LANG_FINAL}.bin
COMMAND ${CMAKE_SOURCE_DIR}/lang/lang-patchsec.py ${FW_MULTI} COMMAND ${CMAKE_SOURCE_DIR}/lang/lang-patchsec.py ${FW_LANG_BASE}
${LANG_BIN} ${LANG_FWBIN_TMP} ${LANG_BIN} ${FW_LANG_FINAL}.bin
DEPENDS ${LANG_FWBIN} ${LANG_BIN} DEPENDS ${FW_LANG_BASE} ${LANG_BIN}
COMMENT "Generating ${variant_name}-en_${LANG}.bin") COMMENT "Generating ${FW_LANG_FINAL}.bin")
# Final hex: # Final hex
add_custom_target( add_custom_command(OUTPUT ${FW_LANG_FINAL}.hex
${LANG_HEX_FN} COMMAND ${CMAKE_OBJCOPY} -I binary -O ihex ${FW_LANG_FINAL}.bin ${FW_LANG_FINAL}.hex
COMMAND ${CMAKE_OBJCOPY} -I binary -O ihex ${LANG_FWBIN_TMP} ${LANG_HEX} COMMAND ${CMAKE_COMMAND} -E copy ${FW_LANG_FINAL}.hex ${LANG_HEX}
BYPRODUCTS ${LANG_HEX} DEPENDS ${FW_LANG_FINAL}.bin
DEPENDS ${LANG_FWBIN_TMP} COMMENT "Creating ${FW_LANG_FINAL}.hex")
COMMENT "Creating ${LANG_HEX_FN}.hex")
list(APPEND ALL_VARIANT_HEXES ${LANG_HEX_FN}) add_custom_target(${FW_LANG_FINAL} DEPENDS ${FW_LANG_FINAL}.hex)
list(APPEND ALL_VARIANT_HEXES ${FW_LANG_FINAL})
endforeach() endforeach()
add_custom_target("${variant_name}-All-Languages" add_custom_target("${variant_name}-All-Languages"
DEPENDS ${ALL_VARIANT_HEXES}) DEPENDS ${ALL_VARIANT_HEXES})