Be explicit on languages

This commit is contained in:
VintagePC 2022-07-28 18:16:15 -04:00
parent 25ee23ca76
commit ca0d6caddf
1 changed files with 20 additions and 9 deletions

View File

@ -3,8 +3,19 @@ include(cmake/Utilities.cmake)
set (CMAKE_CXX_STANDARD 11)
MESSAGE(WARNING "
***************** YOUR ATTENTION PLEASE *****************
CMake support is experimental. There is no guarantee at this time. If you have problems you are encouraged to fall back to the tried-and-true methods.
*********************** THANK YOU **********************
We now return to your regularly scheduled Firmware Build."
)
OPTION(SECONDARY_LANGUAGES "Secondary language support in the firmware" ON)
SET(MAIN_LANGUAGES cs de es fr it pl CACHE STRING "The list of 'main' languages to be included, in the correct order")
SET(COMMUNITY_LANGUAGES nl ro hu hr sk sv no CACHE STRING "The list of community languages to be included, in the correct order")
SET(SELECTED_LANGUAGES ${MAIN_LANGUAGES} ${COMMUNITY_LANGUAGES})
get_dependency_directory(prusa3dboards PRUSA_BOARDS_DIR)
project(Prusa-Firmware)
@ -13,7 +24,7 @@ STRING(REGEX MATCH "0x[0-9]+" MAX_SIZE_HEX "${MAX_SIZE_LINE}")
math(EXPR LANG_MAX_SIZE "${MAX_SIZE_HEX}" OUTPUT_FORMAT DECIMAL)
message("Language maximum size (from config.h): ${LANG_MAX_SIZE} bytes")
set (LANG_BIN_MAX 249856) # Ditto, this in xflash_layout.h
set (LANG_BIN_MAX 249856) # Ditto, this in xflash_layout.h but needs invocation of the preprocessor... :-/
get_recommended_gcc_version(RECOMMENDED_TOOLCHAIN_VERSION)
if(CMAKE_CROSSCOMPILING AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL
@ -88,12 +99,12 @@ file(GLOB FW_SOURCES RELATIVE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/Firmwa
file(GLOB FW_HEADERS RELATIVE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/Firmware/*.h*)
file(GLOB AVR_SOURCES RELATIVE ${PROJECT_SOURCE_DIR} ${PRUSA_BOARDS_DIR}/cores/prusa_einsy_rambo/*.c*)
# Setup language resources:
file(GLOB LANG_VARIANTS RELATIVE ${PROJECT_SOURCE_DIR}/lang/po ${PROJECT_SOURCE_DIR}/lang/po/Firmware_??.po)
string(REPLACE "Firmware_" "" LANG_VARIANTS "${LANG_VARIANTS}")
string(REPLACE ".po" "" LANG_VARIANTS "${LANG_VARIANTS}")
list(SORT LANG_VARIANTS)
message("Languages found: ${LANG_VARIANTS}")
# Setup language resources:
# file(GLOB LANG_VARIANTS RELATIVE ${PROJECT_SOURCE_DIR}/lang/po ${PROJECT_SOURCE_DIR}/lang/po/Firmware_??.po)
# string(REPLACE "Firmware_" "" LANG_VARIANTS "${LANG_VARIANTS}")
# string(REPLACE ".po" "" LANG_VARIANTS "${LANG_VARIANTS}")
# list(SORT LANG_VARIANTS)
# message("Languages found: ${LANG_VARIANTS}")
add_library(avr_core STATIC ${AVR_SOURCES})
target_include_directories(avr_core PRIVATE
@ -187,7 +198,7 @@ function(fw_add_variant variant_name)
set(LANG_BINS "")
foreach (LANG IN LISTS LANG_VARIANTS)
foreach (LANG IN LISTS SELECTED_LANGUAGES)
set(LANG_BIN ${LANG_TMP_DIR}/${variant_name}_${LANG}.bin)
set(PO_FILE "${CMAKE_CURRENT_SOURCE_DIR}/lang/po/Firmware_${LANG}.po")
@ -249,7 +260,7 @@ function(fw_add_variant variant_name)
else()
set (ALL_VARIANT_HEXES "")
# Non-xflash, e.g. MK2.5
foreach(LANG IN LISTS LANG_VARIANTS)
foreach(LANG IN LISTS SELECTED_LANGUAGES)
SET(LANG_HEX_FN ${variant_name}-en_${LANG})
SET(LANG_HEX ${CMAKE_BINARY_DIR}/${LANG_HEX_FN}.hex)
SET(LANG_BIN ${LANG_TMP_DIR}/${variant_name}_${LANG}.bin)