Browse Source

Be explicit on languages

VintagePC 1 year ago
parent
commit
ca0d6caddf
1 changed files with 20 additions and 9 deletions
  1. 20 9
      CMakeLists.txt

+ 20 - 9
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)