summaryrefslogtreecommitdiff
path: root/lib/python
diff options
context:
space:
mode:
authorNick Brassel <nick@tzarc.org>2024-02-22 23:47:42 +1100
committerGitHub <noreply@github.com>2024-02-22 12:47:42 +0000
commit56802f506cee22730e004b0695d87e9e9c5983af (patch)
tree28b15990af352965b177c1ce5171c33b65ce8de5 /lib/python
parentc6668b9cd9d153ed8cdd59f2f96d9deba1001e1a (diff)
Ensure `qmk generate-compilation-database` copies to userspace as well. (#23129)
Diffstat (limited to 'lib/python')
-rw-r--r--lib/python/qmk/build_targets.py5
-rwxr-xr-xlib/python/qmk/cli/generate/compilation_database.py4
2 files changed, 6 insertions, 3 deletions
diff --git a/lib/python/qmk/build_targets.py b/lib/python/qmk/build_targets.py
index 80f587bcc0..d974d04020 100644
--- a/lib/python/qmk/build_targets.py
+++ b/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:
diff --git a/lib/python/qmk/cli/generate/compilation_database.py b/lib/python/qmk/cli/generate/compilation_database.py
index 5100d2b6d2..a2190fee66 100755
--- a/lib/python/qmk/cli/generate/compilation_database.py
+++ b/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()