summary refs log tree commit diff
diff options
context:
space:
mode:
authorNick Brassel <nick@tzarc.org>2023-05-21 07:29:21 +1000
committerGitHub <noreply@github.com>2023-05-20 22:29:21 +0100
commit420e35f9225d7f76e70d25e143311602145c1eb0 (patch)
tree7474ead126beeb491b7af9a61e107c8750aa3be1
parent449240f19802ab4a1a7484f90c27fc7045d57b11 (diff)
`qmk generate-make-dependencies` improvements (#21001)
* Recommendations from @sigprof

* Fix CI tests
-rwxr-xr-xlib/python/qmk/cli/generate/make_dependencies.py17
1 files changed, 8 insertions, 9 deletions
diff --git a/lib/python/qmk/cli/generate/make_dependencies.py b/lib/python/qmk/cli/generate/make_dependencies.py
index 635c341897..9b695e907d 100755
--- a/lib/python/qmk/cli/generate/make_dependencies.py
+++ b/lib/python/qmk/cli/generate/make_dependencies.py
@@ -6,7 +6,6 @@ from milc import cli
 from argcomplete.completers import FilesCompleter
 
 from qmk.commands import dump_lines
-from qmk.constants import QMK_FIRMWARE
 from qmk.keyboard import keyboard_completer, keyboard_folder
 from qmk.keymap import keymap_completer, locate_keymap
 from qmk.path import normpath, FileType
@@ -23,34 +22,34 @@ def generate_make_dependencies(cli):
     """
     interesting_files = [
         'info.json',
-        'keymap.json',
         'rules.mk',
         'post_rules.mk',
         'config.h',
         'post_config.h',
     ]
 
-    found_files = []
+    check_files = []
 
     # Walk up the keyboard's directory tree looking for the files we're interested in
     keyboards_root = Path('keyboards')
     parent_path = Path('keyboards') / cli.args.keyboard
     while parent_path != keyboards_root:
         for file in interesting_files:
-            test_path = parent_path / file
-            if test_path.exists():
-                found_files.append(test_path)
+            check_files.append(parent_path / file)
         parent_path = parent_path.parent
 
     # Find the keymap and include any of the interesting files
     if cli.args.keymap is not None:
         km = locate_keymap(cli.args.keyboard, cli.args.keymap)
         if km is not None:
+            # keymap.json is only valid for the keymap, so check this one separately
+            check_files.append(km.parent / 'keymap.json')
+            # Add all the interesting files
             for file in interesting_files:
-                found_files.extend(km.parent.glob(f'**/{file}'))
+                check_files.append(km.parent / file)
 
     # If we have a matching userspace, include those too
     for file in interesting_files:
-        found_files.extend((QMK_FIRMWARE / 'users' / cli.args.keymap).glob(f'**/{file}'))
+        check_files.append(Path('users') / cli.args.keymap / file)
 
-    dump_lines(cli.args.output, [f'generated-files: {found.resolve()}\n' for found in found_files])
+    dump_lines(cli.args.output, [f'generated-files: $(wildcard {found})\n' for found in check_files])