summaryrefslogtreecommitdiff
path: root/lib/python/qmk/cli/generate
diff options
context:
space:
mode:
authorNick Brassel <nick@tzarc.org>2024-02-28 21:47:37 +1100
committerNick Brassel <nick@tzarc.org>2024-02-28 21:47:37 +1100
commit4e369d405af6bba1adce6337b2e1b1ea1788566c (patch)
treeb0f020feff1809e37c9e7795d344929ff0bb290a /lib/python/qmk/cli/generate
parent4e04da397ef643f8fcf4afbe1d19f63aee1fc561 (diff)
parentdd1706e468bb18dd7f7ae143de735a5d3be1bfb8 (diff)
Merge branch 'develop'
Diffstat (limited to 'lib/python/qmk/cli/generate')
-rwxr-xr-xlib/python/qmk/cli/generate/compilation_database.py4
-rwxr-xr-xlib/python/qmk/cli/generate/config_h.py2
-rwxr-xr-xlib/python/qmk/cli/generate/keyboard_c.py25
3 files changed, 20 insertions, 11 deletions
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()
diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py
index 00fb1d9585..fc681300a3 100755
--- a/lib/python/qmk/cli/generate/config_h.py
+++ b/lib/python/qmk/cli/generate/config_h.py
@@ -108,6 +108,8 @@ def generate_config_items(kb_info_json, config_h_lines):
elif key_type.startswith('array'):
config_h_lines.append(generate_define(config_key, f'{{ {", ".join(map(str, config_value))} }}'))
elif key_type == 'bool':
+ config_h_lines.append(generate_define(config_key, 'true' if config_value else 'false'))
+ elif key_type == 'flag':
if config_value:
config_h_lines.append(generate_define(config_key))
elif key_type == 'mapping':
diff --git a/lib/python/qmk/cli/generate/keyboard_c.py b/lib/python/qmk/cli/generate/keyboard_c.py
index f010341613..5a6c967486 100755
--- a/lib/python/qmk/cli/generate/keyboard_c.py
+++ b/lib/python/qmk/cli/generate/keyboard_c.py
@@ -9,21 +9,25 @@ from qmk.path import normpath
from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE
-def _gen_led_config(info_data):
+def _gen_led_configs(info_data):
+ lines = []
+
+ if 'layout' in info_data.get('rgb_matrix', {}):
+ lines.extend(_gen_led_config(info_data, 'rgb_matrix'))
+
+ if 'layout' in info_data.get('led_matrix', {}):
+ lines.extend(_gen_led_config(info_data, 'led_matrix'))
+
+ return lines
+
+
+def _gen_led_config(info_data, config_type):
"""Convert info.json content to g_led_config
"""
cols = info_data['matrix_size']['cols']
rows = info_data['matrix_size']['rows']
- config_type = None
- if 'layout' in info_data.get('rgb_matrix', {}):
- config_type = 'rgb_matrix'
- elif 'layout' in info_data.get('led_matrix', {}):
- config_type = 'led_matrix'
-
lines = []
- if not config_type:
- return lines
matrix = [['NO_LED'] * cols for _ in range(rows)]
pos = []
@@ -53,6 +57,7 @@ def _gen_led_config(info_data):
lines.append(f' {{ {", ".join(flags)} }},')
lines.append('};')
lines.append('#endif')
+ lines.append('')
return lines
@@ -98,7 +103,7 @@ def generate_keyboard_c(cli):
# Build the layouts.h file.
keyboard_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#include QMK_KEYBOARD_H', '']
- keyboard_h_lines.extend(_gen_led_config(kb_info_json))
+ keyboard_h_lines.extend(_gen_led_configs(kb_info_json))
keyboard_h_lines.extend(_gen_matrix_mask(kb_info_json))
# Show the results