From ca0d6caddfad9624f89df01052ed57897c643cc1 Mon Sep 17 00:00:00 2001 From: VintagePC <53943260+vintagepc@users.noreply.github.com> Date: Thu, 28 Jul 2022 18:16:15 -0400 Subject: [PATCH] Be explicit on languages --- CMakeLists.txt | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b3663d3ff..615ffeb3f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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)