mirror of
https://github.com/zsa/qmk_firmware.git
synced 2026-05-06 01:13:55 +00:00
chore(lib/utils) update from mainline
This commit is contained in:
@@ -250,8 +250,8 @@ def to_hex(b: int) -> str:
|
||||
|
||||
|
||||
@cli.argument('filename', type=normpath, help='The autocorrection database file')
|
||||
@cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='The keyboard to build a firmware for. Ignored when a configurator export is supplied.')
|
||||
@cli.argument('-km', '--keymap', completer=keymap_completer, help='The keymap to build a firmware for. Ignored when a configurator export is supplied.')
|
||||
@cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='The keyboard to build a firmware for. Ignored when a output file is supplied.')
|
||||
@cli.argument('-km', '--keymap', completer=keymap_completer, help='The keymap to build a firmware for. Ignored when a output file is supplied.')
|
||||
@cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to')
|
||||
@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages")
|
||||
@cli.subcommand('Generate the autocorrection data file from a dictionary file.')
|
||||
@@ -263,7 +263,7 @@ def generate_autocorrect_data(cli):
|
||||
current_keyboard = cli.args.keyboard or cli.config.user.keyboard or cli.config.generate_autocorrect_data.keyboard
|
||||
current_keymap = cli.args.keymap or cli.config.user.keymap or cli.config.generate_autocorrect_data.keymap
|
||||
|
||||
if current_keyboard and current_keymap:
|
||||
if not cli.args.output and current_keyboard and current_keymap:
|
||||
cli.args.output = locate_keymap(current_keyboard, current_keymap).parent / 'autocorrect_data.h'
|
||||
|
||||
assert all(0 <= b <= 255 for b in data)
|
||||
|
||||
@@ -72,19 +72,6 @@ def generate_matrix_size(kb_info_json, config_h_lines):
|
||||
config_h_lines.append(generate_define('MATRIX_ROWS', kb_info_json['matrix_size']['rows']))
|
||||
|
||||
|
||||
def generate_matrix_masked(kb_info_json, config_h_lines):
|
||||
""""Enable matrix mask if required"""
|
||||
mask_required = False
|
||||
|
||||
if 'matrix_grid' in kb_info_json.get('dip_switch', {}):
|
||||
mask_required = True
|
||||
if 'matrix_grid' in kb_info_json.get('split', {}).get('handedness', {}):
|
||||
mask_required = True
|
||||
|
||||
if mask_required:
|
||||
config_h_lines.append(generate_define('MATRIX_MASKED'))
|
||||
|
||||
|
||||
def generate_config_items(kb_info_json, config_h_lines):
|
||||
"""Iterate through the info_config map to generate basic config values.
|
||||
"""
|
||||
@@ -138,11 +125,12 @@ def generate_encoder_config(encoder_json, config_h_lines, postfix=''):
|
||||
config_h_lines.append(generate_define(f'ENCODER_A_PINS{postfix}', f'{{ {", ".join(a_pads)} }}'))
|
||||
config_h_lines.append(generate_define(f'ENCODER_B_PINS{postfix}', f'{{ {", ".join(b_pads)} }}'))
|
||||
|
||||
if None in resolutions:
|
||||
cli.log.debug(f"Unable to generate ENCODER_RESOLUTION{postfix} configuration")
|
||||
elif len(resolutions) == 0:
|
||||
if len(resolutions) == 0 or all(r is None for r in resolutions):
|
||||
cli.log.debug(f"Skipping ENCODER_RESOLUTION{postfix} configuration")
|
||||
elif len(set(resolutions)) == 1:
|
||||
return
|
||||
|
||||
resolutions = [4 if r is None else r for r in resolutions]
|
||||
if len(set(resolutions)) == 1:
|
||||
config_h_lines.append(generate_define(f'ENCODER_RESOLUTION{postfix}', resolutions[0]))
|
||||
else:
|
||||
config_h_lines.append(generate_define(f'ENCODER_RESOLUTIONS{postfix}', f'{{ {", ".join(map(str,resolutions))} }}'))
|
||||
@@ -202,8 +190,6 @@ def generate_config_h(cli):
|
||||
|
||||
generate_matrix_size(kb_info_json, config_h_lines)
|
||||
|
||||
generate_matrix_masked(kb_info_json, config_h_lines)
|
||||
|
||||
if 'matrix_pins' in kb_info_json:
|
||||
config_h_lines.append(matrix_pins(kb_info_json['matrix_pins']))
|
||||
|
||||
|
||||
@@ -92,15 +92,15 @@ def _generate_helpers(lines, keycodes):
|
||||
for group, codes in temp.items():
|
||||
lo = keycodes["keycodes"][f'0x{codes[0]:04X}']['key']
|
||||
hi = keycodes["keycodes"][f'0x{codes[1]:04X}']['key']
|
||||
lines.append(f'#define IS_{ _translate_group(group).upper() }_KEYCODE(code) ((code) >= {lo} && (code) <= {hi})')
|
||||
lines.append(f'#define IS_{_translate_group(group).upper()}_KEYCODE(code) ((code) >= {lo} && (code) <= {hi})')
|
||||
|
||||
lines.append('')
|
||||
lines.append('// Switch statement Helpers')
|
||||
for group, codes in temp.items():
|
||||
lo = keycodes["keycodes"][f'0x{codes[0]:04X}']['key']
|
||||
hi = keycodes["keycodes"][f'0x{codes[1]:04X}']['key']
|
||||
name = f'{ _translate_group(group).upper() }_KEYCODE_RANGE'
|
||||
lines.append(f'#define { name.ljust(35) } {lo} ... {hi}')
|
||||
name = f'{_translate_group(group).upper()}_KEYCODE_RANGE'
|
||||
lines.append(f'#define {name.ljust(35)} {lo} ... {hi}')
|
||||
|
||||
|
||||
def _generate_aliases(lines, keycodes):
|
||||
|
||||
@@ -96,11 +96,10 @@ def generate_rules_mk(cli):
|
||||
rules_mk_lines.append(generate_rule('SPLIT_TRANSPORT', 'custom'))
|
||||
|
||||
# Set CUSTOM_MATRIX, if needed
|
||||
if kb_info_json.get('matrix_pins', {}).get('custom'):
|
||||
if kb_info_json.get('matrix_pins', {}).get('custom_lite'):
|
||||
rules_mk_lines.append(generate_rule('CUSTOM_MATRIX', 'lite'))
|
||||
else:
|
||||
rules_mk_lines.append(generate_rule('CUSTOM_MATRIX', 'yes'))
|
||||
if kb_info_json.get('matrix_pins', {}).get('custom_lite'):
|
||||
rules_mk_lines.append(generate_rule('CUSTOM_MATRIX', 'lite'))
|
||||
elif kb_info_json.get('matrix_pins', {}).get('custom'):
|
||||
rules_mk_lines.append(generate_rule('CUSTOM_MATRIX', 'yes'))
|
||||
|
||||
if converter:
|
||||
rules_mk_lines.append(generate_rule('CONVERT_TO', converter))
|
||||
|
||||
@@ -8,6 +8,7 @@ from qmk.path import normpath
|
||||
from qmk.commands import dump_lines
|
||||
from qmk.git import git_get_qmk_hash, git_get_version, git_is_dirty
|
||||
from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE
|
||||
from qmk.util import triplet_to_bcd
|
||||
|
||||
TIME_FMT = '%Y-%m-%d-%H:%M:%S'
|
||||
|
||||
@@ -32,12 +33,14 @@ def generate_version_h(cli):
|
||||
git_dirty = False
|
||||
git_version = "NA"
|
||||
git_qmk_hash = "NA"
|
||||
git_bcd_version = "0x00000000"
|
||||
chibios_version = "NA"
|
||||
chibios_contrib_version = "NA"
|
||||
else:
|
||||
git_dirty = git_is_dirty()
|
||||
git_version = git_get_version() or current_time
|
||||
git_qmk_hash = git_get_qmk_hash() or "Unknown"
|
||||
git_bcd_version = triplet_to_bcd(git_version)
|
||||
chibios_version = git_get_version("chibios", "os") or current_time
|
||||
chibios_contrib_version = git_get_version("chibios-contrib", "os") or current_time
|
||||
|
||||
@@ -48,6 +51,7 @@ def generate_version_h(cli):
|
||||
f"""
|
||||
#define QMK_VERSION "{git_version}"
|
||||
#define QMK_BUILDDATE "{current_time}"
|
||||
#define QMK_VERSION_BCD {git_bcd_version}
|
||||
#define QMK_GIT_HASH "{git_qmk_hash}{'*' if git_dirty else ''}"
|
||||
#define CHIBIOS_VERSION "{chibios_version}"
|
||||
#define CHIBIOS_CONTRIB_VERSION "{chibios_contrib_version}"
|
||||
|
||||
Reference in New Issue
Block a user