فهرست منبع

Ensure `qmk generate-compilation-database` copies to userspace as well. (#23129)

Nick Brassel 2 سال پیش
والد
کامیت
56802f506c
2فایلهای تغییر یافته به همراه6 افزوده شده و 3 حذف شده
  1. 3 2
      lib/python/qmk/build_targets.py
  2. 3 1
      lib/python/qmk/cli/generate/compilation_database.py

+ 3 - 2
lib/python/qmk/build_targets.py

@@ -119,9 +119,10 @@ class BuildTarget:
         command = self.compile_command(build_target=build_target, dry_run=True, **env_vars)
         from qmk.cli.generate.compilation_database import write_compilation_database  # Lazy load due to circular references
         output_path = QMK_FIRMWARE / 'compile_commands.json'
-        write_compilation_database(command=command, output_path=output_path, skip_clean=skip_clean, **env_vars)
-        if output_path.exists() and HAS_QMK_USERSPACE:
+        ret = write_compilation_database(command=command, output_path=output_path, skip_clean=skip_clean, **env_vars)
+        if ret and output_path.exists() and HAS_QMK_USERSPACE:
             shutil.copy(str(output_path), str(QMK_USERSPACE / 'compile_commands.json'))
+        return ret
 
     def compile(self, build_target: str = None, dry_run: bool = False, **env_vars) -> None:
         if self._clean or self._compiledb:

+ 3 - 1
lib/python/qmk/cli/generate/compilation_database.py

@@ -17,6 +17,7 @@ from qmk.constants import QMK_FIRMWARE
 from qmk.decorators import automagic_keyboard, automagic_keymap
 from qmk.keyboard import keyboard_completer, keyboard_folder
 from qmk.keymap import keymap_completer
+from qmk.build_targets import KeyboardKeymapBuildTarget
 
 
 @lru_cache(maxsize=10)
@@ -138,4 +139,5 @@ def generate_compilation_database(cli: MILC) -> Union[bool, int]:
     elif not current_keymap:
         cli.log.error('Could not determine keymap!')
 
-    return write_compilation_database(current_keyboard, current_keymap, QMK_FIRMWARE / 'compile_commands.json')
+    target = KeyboardKeymapBuildTarget(current_keyboard, current_keymap)
+    return target.generate_compilation_database()