1
0
forked from me/IronOS

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.
This commit is contained in:
Thomas Weißschuh
2021-01-15 16:45:55 +01:00
parent 4e46e2b3b9
commit 884a830d62
38 changed files with 16 additions and 13 deletions

2
.gitignore vendored
View File

@@ -52,7 +52,6 @@ workspace/TS100A/.metadata/
Translation Editor/.vscode/ Translation Editor/.vscode/
Translation Editor/__pycache__/ Translation Editor/__pycache__/
*.pyc *.pyc
workspace/TS100/src/Translation.cpp
*.lst *.lst
*.mk *.mk
*.list *.list
@@ -67,7 +66,6 @@ codeship.aes
.vscode/settings.json .vscode/settings.json
# Auto generated files # Auto generated files
workspace/TS100/Core/Src/Translation.cpp
workspace/TS100/Core/Inc/unit.h workspace/TS100/Core/Inc/unit.h
# IDE configs # IDE configs
.vs/* .vs/*

View File

@@ -1,6 +1,6 @@
# Translation # 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. 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.

View File

@@ -554,7 +554,7 @@ def read_opts():
if len(sys.argv) > 2: if len(sys.argv) > 2:
outFileTranslationCPP = sys.argv[2] outFileTranslationCPP = sys.argv[2]
else: 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) outFileTranslationCPP = os.path.join(outDir, TRANSLATION_CPP)
if len(sys.argv) > 3: if len(sys.argv) > 3:

1
workspace/TS100/Core/Gen/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
*

View File

@@ -98,6 +98,8 @@ INCLUDES = -I$(APP_INC_DIR) \
-I$(INC_PD_DRIVERS_DIR) \ -I$(INC_PD_DRIVERS_DIR) \
$(DEVICE_INCLUDES) $(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') \ SOURCE := $(shell find $(SOURCE_THREADS_DIR) -type f -name '*.c') \
$(shell find $(SOURCE_CORE_DIR) -type f -name '*.c') \ $(shell find $(SOURCE_CORE_DIR) -type f -name '*.c') \
$(shell find $(SOURCE_DRIVERS_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_CORE_DIR) -type f -name '*.cpp') \
$(shell find $(SOURCE_DRIVERS_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 $(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 # output folder
HEXFILE_DIR=Hexfile 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 @echo Linking $(OUTPUT_EXE).elf
@$(CPP) $(CXXFLAGS) $(OUT_OBJS_S) $(OUT_OBJS) $(OUT_OBJS_CPP) $(LIBS) $(LINKER_FLAGS) @$(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) @test -d $(@D) || mkdir -p $(@D)
@echo Compiling ${<} @echo Compiling ${<}
@$(CC) -c $(CFLAGS) $< -o $@ @$(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) @test -d $(@D) || mkdir -p $(@D)
@echo Compiling ${<} @echo Compiling ${<}
@$(CPP) -c $(CXXFLAGS) $< -o $@ @$(CPP) -c $(CXXFLAGS) $< -o $@
@@ -303,8 +306,13 @@ $(OUT_OBJS_S): $(OUTPUT_DIR)/%.o: %.S Makefile
@echo 'Building file: $<' @echo 'Building file: $<'
@$(AS) -c $(AFLAGS) $< -o $@ @$(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 : clean :
rm -f $(GENERATED_TRANSLATION_SOURCE) $(SOURCE_CORE_DIR)/Translation.cpp
rm -Rf $(OUTPUT_DIR_BASE) rm -Rf $(OUTPUT_DIR_BASE)
rm -Rf $(HEXFILE_DIR) rm -Rf $(HEXFILE_DIR)

View File

@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
TRANSLATION_DIR="../../Translation Editor" TRANSLATION_DIR="../../Translations"
TRANSLATION_SCRIPT="make_translation.py" TRANSLATION_SCRIPT="make_translation.py"
# AVAILABLE_LANGUAGES will be calculating according to json files in $TRANSLATION_DIR # AVAILABLE_LANGUAGES will be calculating according to json files in $TRANSLATION_DIR
@@ -116,10 +116,6 @@ fi
echo "*********************************************" echo "*********************************************"
if [ ${#BUILD_LANGUAGES[@]} -gt 0 ] && [ ${#BUILD_MODELS[@]} -gt 0 ]; then 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" echo "Cleaning previous builds"
rm -rf Hexfile/ >/dev/null rm -rf Hexfile/ >/dev/null
rm -rf Objects/ >/dev/null rm -rf Objects/ >/dev/null