From 884a830d62a8d5dbf7f14dd2e92553fadbe62cc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= Date: Fri, 15 Jan 2021 16:45:55 +0100 Subject: [PATCH] TS100: move translation generation to Makefile Translation.cpp is now automatically regenerated when necessary. This frees the developer from having to remember to execute build.sh after the translations have changed. Translation.cpp has been moved from Core/Src/ to the new Core/Gen/ as otherwise it would end up twice in SOURCE, once through the source discovery and once through the explicit entry. --- .gitignore | 2 -- Documentation/Translation.md | 4 ++-- .../BitmapEditor.html | 0 .../TranslationEditor.html | 0 .../TranslationsParser.html | 0 {Translation Editor => Translations}/fontTables.py | 0 .../make_translation.py | 2 +- .../translation_bg.json | 0 .../translation_cs.json | 0 .../translation_da.json | 0 .../translation_de.json | 0 .../translation_en.json | 0 .../translation_es.json | 0 .../translation_fi.json | 0 .../translation_fr.json | 0 .../translation_hr.json | 0 .../translation_hu.json | 0 .../translation_it.json | 0 .../translation_lt.json | 0 .../translation_nl.json | 0 .../translation_nl_be.json | 0 .../translation_no.json | 0 .../translation_pl.json | 0 .../translation_pt.json | 0 .../translation_ru.json | 0 .../translation_sk.json | 0 .../translation_sl.json | 0 .../translation_sr_cyrl.json | 0 .../translation_sr_latn.json | 0 .../translation_sv.json | 0 .../translation_tr.json | 0 .../translation_uk.json | 0 .../translations.css | 0 .../translations_commons.js | 0 .../translations_def.js | 0 workspace/TS100/Core/Gen/.gitignore | 1 + workspace/TS100/Makefile | 14 +++++++++++--- workspace/TS100/build.sh | 6 +----- 38 files changed, 16 insertions(+), 13 deletions(-) rename {Translation Editor => Translations}/BitmapEditor.html (100%) rename {Translation Editor => Translations}/TranslationEditor.html (100%) rename {Translation Editor => Translations}/TranslationsParser.html (100%) rename {Translation Editor => Translations}/fontTables.py (100%) rename {Translation Editor => Translations}/make_translation.py (96%) rename {Translation Editor => Translations}/translation_bg.json (100%) rename {Translation Editor => Translations}/translation_cs.json (100%) rename {Translation Editor => Translations}/translation_da.json (100%) rename {Translation Editor => Translations}/translation_de.json (100%) rename {Translation Editor => Translations}/translation_en.json (100%) rename {Translation Editor => Translations}/translation_es.json (100%) rename {Translation Editor => Translations}/translation_fi.json (100%) rename {Translation Editor => Translations}/translation_fr.json (100%) rename {Translation Editor => Translations}/translation_hr.json (100%) rename {Translation Editor => Translations}/translation_hu.json (100%) rename {Translation Editor => Translations}/translation_it.json (100%) rename {Translation Editor => Translations}/translation_lt.json (100%) rename {Translation Editor => Translations}/translation_nl.json (100%) rename {Translation Editor => Translations}/translation_nl_be.json (100%) rename {Translation Editor => Translations}/translation_no.json (100%) rename {Translation Editor => Translations}/translation_pl.json (100%) rename {Translation Editor => Translations}/translation_pt.json (100%) rename {Translation Editor => Translations}/translation_ru.json (100%) rename {Translation Editor => Translations}/translation_sk.json (100%) rename {Translation Editor => Translations}/translation_sl.json (100%) rename {Translation Editor => Translations}/translation_sr_cyrl.json (100%) rename {Translation Editor => Translations}/translation_sr_latn.json (100%) rename {Translation Editor => Translations}/translation_sv.json (100%) rename {Translation Editor => Translations}/translation_tr.json (100%) rename {Translation Editor => Translations}/translation_uk.json (100%) rename {Translation Editor => Translations}/translations.css (100%) rename {Translation Editor => Translations}/translations_commons.js (100%) rename {Translation Editor => Translations}/translations_def.js (100%) create mode 100644 workspace/TS100/Core/Gen/.gitignore diff --git a/.gitignore b/.gitignore index fe079eb1..b73fb107 100644 --- a/.gitignore +++ b/.gitignore @@ -52,7 +52,6 @@ workspace/TS100A/.metadata/ Translation Editor/.vscode/ Translation Editor/__pycache__/ *.pyc -workspace/TS100/src/Translation.cpp *.lst *.mk *.list @@ -67,7 +66,6 @@ codeship.aes .vscode/settings.json # Auto generated files -workspace/TS100/Core/Src/Translation.cpp workspace/TS100/Core/Inc/unit.h # IDE configs .vs/* diff --git a/Documentation/Translation.md b/Documentation/Translation.md index da23a6d5..b96b39b8 100644 --- a/Documentation/Translation.md +++ b/Documentation/Translation.md @@ -1,6 +1,6 @@ # Translation -If you would like to contribute a translation, use the [Translation Editor](http://htmlpreview.github.io/?https://github.com/Ralim/ts100/blob/master/Translation%20Editor/TranslationEditor.html). +If you would like to contribute a translation, use the [Translation Editor](http://htmlpreview.github.io/?https://github.com/Ralim/ts100/blob/master/Translations/TranslationEditor.html). -[Open a reference language file and optionally a target language file](https://github.com/Ralim/ts100/tree/master/Translation%20Editor). +[Open a reference language file and optionally a target language file](https://github.com/Ralim/ts100/tree/master/Translations). You can create a pull request with the new / updated json configuration file, and this will include this language into the new builds for the firmware. diff --git a/Translation Editor/BitmapEditor.html b/Translations/BitmapEditor.html similarity index 100% rename from Translation Editor/BitmapEditor.html rename to Translations/BitmapEditor.html diff --git a/Translation Editor/TranslationEditor.html b/Translations/TranslationEditor.html similarity index 100% rename from Translation Editor/TranslationEditor.html rename to Translations/TranslationEditor.html diff --git a/Translation Editor/TranslationsParser.html b/Translations/TranslationsParser.html similarity index 100% rename from Translation Editor/TranslationsParser.html rename to Translations/TranslationsParser.html diff --git a/Translation Editor/fontTables.py b/Translations/fontTables.py similarity index 100% rename from Translation Editor/fontTables.py rename to Translations/fontTables.py diff --git a/Translation Editor/make_translation.py b/Translations/make_translation.py similarity index 96% rename from Translation Editor/make_translation.py rename to Translations/make_translation.py index a253cc76..2d4135e8 100755 --- a/Translation Editor/make_translation.py +++ b/Translations/make_translation.py @@ -554,7 +554,7 @@ def read_opts(): if len(sys.argv) > 2: outFileTranslationCPP = sys.argv[2] else: - outDir = os.path.relpath(jsonDir + "/../workspace/TS100/Core/Src") + outDir = os.path.relpath(jsonDir + "/../workspace/TS100/Core/Gen") outFileTranslationCPP = os.path.join(outDir, TRANSLATION_CPP) if len(sys.argv) > 3: diff --git a/Translation Editor/translation_bg.json b/Translations/translation_bg.json similarity index 100% rename from Translation Editor/translation_bg.json rename to Translations/translation_bg.json diff --git a/Translation Editor/translation_cs.json b/Translations/translation_cs.json similarity index 100% rename from Translation Editor/translation_cs.json rename to Translations/translation_cs.json diff --git a/Translation Editor/translation_da.json b/Translations/translation_da.json similarity index 100% rename from Translation Editor/translation_da.json rename to Translations/translation_da.json diff --git a/Translation Editor/translation_de.json b/Translations/translation_de.json similarity index 100% rename from Translation Editor/translation_de.json rename to Translations/translation_de.json diff --git a/Translation Editor/translation_en.json b/Translations/translation_en.json similarity index 100% rename from Translation Editor/translation_en.json rename to Translations/translation_en.json diff --git a/Translation Editor/translation_es.json b/Translations/translation_es.json similarity index 100% rename from Translation Editor/translation_es.json rename to Translations/translation_es.json diff --git a/Translation Editor/translation_fi.json b/Translations/translation_fi.json similarity index 100% rename from Translation Editor/translation_fi.json rename to Translations/translation_fi.json diff --git a/Translation Editor/translation_fr.json b/Translations/translation_fr.json similarity index 100% rename from Translation Editor/translation_fr.json rename to Translations/translation_fr.json diff --git a/Translation Editor/translation_hr.json b/Translations/translation_hr.json similarity index 100% rename from Translation Editor/translation_hr.json rename to Translations/translation_hr.json diff --git a/Translation Editor/translation_hu.json b/Translations/translation_hu.json similarity index 100% rename from Translation Editor/translation_hu.json rename to Translations/translation_hu.json diff --git a/Translation Editor/translation_it.json b/Translations/translation_it.json similarity index 100% rename from Translation Editor/translation_it.json rename to Translations/translation_it.json diff --git a/Translation Editor/translation_lt.json b/Translations/translation_lt.json similarity index 100% rename from Translation Editor/translation_lt.json rename to Translations/translation_lt.json diff --git a/Translation Editor/translation_nl.json b/Translations/translation_nl.json similarity index 100% rename from Translation Editor/translation_nl.json rename to Translations/translation_nl.json diff --git a/Translation Editor/translation_nl_be.json b/Translations/translation_nl_be.json similarity index 100% rename from Translation Editor/translation_nl_be.json rename to Translations/translation_nl_be.json diff --git a/Translation Editor/translation_no.json b/Translations/translation_no.json similarity index 100% rename from Translation Editor/translation_no.json rename to Translations/translation_no.json diff --git a/Translation Editor/translation_pl.json b/Translations/translation_pl.json similarity index 100% rename from Translation Editor/translation_pl.json rename to Translations/translation_pl.json diff --git a/Translation Editor/translation_pt.json b/Translations/translation_pt.json similarity index 100% rename from Translation Editor/translation_pt.json rename to Translations/translation_pt.json diff --git a/Translation Editor/translation_ru.json b/Translations/translation_ru.json similarity index 100% rename from Translation Editor/translation_ru.json rename to Translations/translation_ru.json diff --git a/Translation Editor/translation_sk.json b/Translations/translation_sk.json similarity index 100% rename from Translation Editor/translation_sk.json rename to Translations/translation_sk.json diff --git a/Translation Editor/translation_sl.json b/Translations/translation_sl.json similarity index 100% rename from Translation Editor/translation_sl.json rename to Translations/translation_sl.json diff --git a/Translation Editor/translation_sr_cyrl.json b/Translations/translation_sr_cyrl.json similarity index 100% rename from Translation Editor/translation_sr_cyrl.json rename to Translations/translation_sr_cyrl.json diff --git a/Translation Editor/translation_sr_latn.json b/Translations/translation_sr_latn.json similarity index 100% rename from Translation Editor/translation_sr_latn.json rename to Translations/translation_sr_latn.json diff --git a/Translation Editor/translation_sv.json b/Translations/translation_sv.json similarity index 100% rename from Translation Editor/translation_sv.json rename to Translations/translation_sv.json diff --git a/Translation Editor/translation_tr.json b/Translations/translation_tr.json similarity index 100% rename from Translation Editor/translation_tr.json rename to Translations/translation_tr.json diff --git a/Translation Editor/translation_uk.json b/Translations/translation_uk.json similarity index 100% rename from Translation Editor/translation_uk.json rename to Translations/translation_uk.json diff --git a/Translation Editor/translations.css b/Translations/translations.css similarity index 100% rename from Translation Editor/translations.css rename to Translations/translations.css diff --git a/Translation Editor/translations_commons.js b/Translations/translations_commons.js similarity index 100% rename from Translation Editor/translations_commons.js rename to Translations/translations_commons.js diff --git a/Translation Editor/translations_def.js b/Translations/translations_def.js similarity index 100% rename from Translation Editor/translations_def.js rename to Translations/translations_def.js diff --git a/workspace/TS100/Core/Gen/.gitignore b/workspace/TS100/Core/Gen/.gitignore new file mode 100644 index 00000000..72e8ffc0 --- /dev/null +++ b/workspace/TS100/Core/Gen/.gitignore @@ -0,0 +1 @@ +* diff --git a/workspace/TS100/Makefile b/workspace/TS100/Makefile index e5abf41e..f9dc835f 100644 --- a/workspace/TS100/Makefile +++ b/workspace/TS100/Makefile @@ -98,6 +98,8 @@ INCLUDES = -I$(APP_INC_DIR) \ -I$(INC_PD_DRIVERS_DIR) \ $(DEVICE_INCLUDES) +TRANSLATION_FILES=$(wildcard ../../Translations/translation_*.json) +GENERATED_TRANSLATION_SOURCE=Core/Gen/Translation.cpp SOURCE := $(shell find $(SOURCE_THREADS_DIR) -type f -name '*.c') \ $(shell find $(SOURCE_CORE_DIR) -type f -name '*.c') \ $(shell find $(SOURCE_DRIVERS_DIR) -type f -name '*.c') \ @@ -107,7 +109,8 @@ SOURCE_CPP := $(shell find $(SOURCE_THREADS_DIR) -type f -name '*.cpp') \ $(shell find $(SOURCE_CORE_DIR) -type f -name '*.cpp') \ $(shell find $(SOURCE_DRIVERS_DIR) -type f -name '*.cpp') \ $(shell find $(DEVICE_BSP_DIR) -type f -name '*.cpp') \ -$(shell find $(SOURCE_MIDDLEWARES_DIR) -type f -name '*.cpp') +$(shell find $(SOURCE_MIDDLEWARES_DIR) -type f -name '*.cpp') \ +$(GENERATED_TRANSLATION_SOURCE) # output folder HEXFILE_DIR=Hexfile @@ -288,12 +291,12 @@ $(OUT_HEXFILE).elf : $(OUT_OBJS_S) $(OUT_OBJS) $(OUT_OBJS_CPP) Makefile $(LDSCRI @echo Linking $(OUTPUT_EXE).elf @$(CPP) $(CXXFLAGS) $(OUT_OBJS_S) $(OUT_OBJS) $(OUT_OBJS_CPP) $(LIBS) $(LINKER_FLAGS) -$(OUT_OBJS): $(OUTPUT_DIR)/%.o : %.c Makefile +$(OUT_OBJS): $(OUTPUT_DIR)/%.o : %.c Makefile $(APP_INC_DIR)/unit.h @test -d $(@D) || mkdir -p $(@D) @echo Compiling ${<} @$(CC) -c $(CFLAGS) $< -o $@ -$(OUT_OBJS_CPP): $(OUTPUT_DIR)/%.o : %.cpp Makefile +$(OUT_OBJS_CPP): $(OUTPUT_DIR)/%.o : %.cpp Makefile $(APP_INC_DIR)/unit.h @test -d $(@D) || mkdir -p $(@D) @echo Compiling ${<} @$(CPP) -c $(CXXFLAGS) $< -o $@ @@ -303,8 +306,13 @@ $(OUT_OBJS_S): $(OUTPUT_DIR)/%.o: %.S Makefile @echo 'Building file: $<' @$(AS) -c $(AFLAGS) $< -o $@ +$(APP_INC_DIR)/unit.h $(GENERATED_TRANSLATION_SOURCE): $(TRANSLATION_FILES) Makefile ../../Translations/make_translation.py + @echo 'Building translations' + @cd ../../Translations && python3 make_translation.py + clean : + rm -f $(GENERATED_TRANSLATION_SOURCE) $(SOURCE_CORE_DIR)/Translation.cpp rm -Rf $(OUTPUT_DIR_BASE) rm -Rf $(HEXFILE_DIR) diff --git a/workspace/TS100/build.sh b/workspace/TS100/build.sh index 09ceb0bb..e747bc06 100755 --- a/workspace/TS100/build.sh +++ b/workspace/TS100/build.sh @@ -1,6 +1,6 @@ #!/bin/bash -TRANSLATION_DIR="../../Translation Editor" +TRANSLATION_DIR="../../Translations" TRANSLATION_SCRIPT="make_translation.py" # AVAILABLE_LANGUAGES will be calculating according to json files in $TRANSLATION_DIR @@ -116,10 +116,6 @@ fi echo "*********************************************" if [ ${#BUILD_LANGUAGES[@]} -gt 0 ] && [ ${#BUILD_MODELS[@]} -gt 0 ]; then - echo "Generating Translation.cpp" - python3 "$TRANSLATION_DIR/$TRANSLATION_SCRIPT" "$TRANSLATION_DIR" - checkLastCommand - echo "Cleaning previous builds" rm -rf Hexfile/ >/dev/null rm -rf Objects/ >/dev/null