Эх сурвалжийг харах

Ensure `version.h` is recreated each build. (#16188)

Nick Brassel 3 жил өмнө
parent
commit
db43e45077

+ 5 - 6
build_keyboard.mk

@@ -45,6 +45,9 @@ ifdef SKIP_GIT
 VERSION_H_FLAGS := --skip-git
 endif
 
+# Generate the board's version.h file.
+$(shell $(QMK_BIN) generate-version-h $(VERSION_H_FLAGS) -q -o $(KEYMAP_OUTPUT)/src/version.h)
+
 # Determine which subfolders exist.
 KEYBOARD_FOLDER_PATH_1 := $(KEYBOARD)
 KEYBOARD_FOLDER_PATH_2 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_1)))
@@ -165,13 +168,8 @@ generated-files: $(KEYMAP_OUTPUT)/src/config.h $(KEYMAP_OUTPUT)/src/keymap.c
 
 endif
 
-generated-files: $(KEYMAP_OUTPUT)/src/version.h
-$(KEYMAP_OUTPUT)/src/version.h:
-	[ -d $(KEYMAP_OUTPUT)/src ] || mkdir -p $(KEYMAP_OUTPUT)/src
-	$(QMK_BIN) generate-version-h $(VERSION_H_FLAGS) -q -o $(KEYMAP_OUTPUT)/src/version.h
-
 ifeq ($(strip $(CTPC)), yes)
-  CONVERT_TO_PROTON_C=yes
+    CONVERT_TO_PROTON_C=yes
 endif
 
 ifeq ($(strip $(CONVERT_TO_PROTON_C)), yes)
@@ -397,6 +395,7 @@ VPATH += $(KEYMAP_PATH)
 VPATH += $(USER_PATH)
 VPATH += $(KEYBOARD_PATHS)
 VPATH += $(COMMON_VPATH)
+VPATH += $(KEYBOARD_OUTPUT)/src
 VPATH += $(KEYMAP_OUTPUT)/src
 
 include common_features.mk

+ 3 - 0
lib/python/qmk/cli/generate/version_h.py

@@ -20,6 +20,9 @@ def generate_version_h(cli):
     version_h = create_version_h(cli.args.skip_git, cli.args.skip_all)
 
     if cli.args.output:
+        cli.args.output.parent.mkdir(parents=True, exist_ok=True)
+        if cli.args.output.exists():
+            cli.args.output.replace(cli.args.output.parent / (cli.args.output.name + '.bak'))
         cli.args.output.write_text(version_h)
 
         if not cli.args.quiet: