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:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -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/*
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
1
workspace/TS100/Core/Gen/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
*
|
||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user