diff options
Diffstat (limited to 'lib/python')
| -rwxr-xr-x | lib/python/qmk/cli/generate/config_h.py | 6 | ||||
| -rw-r--r-- | lib/python/qmk/info.py | 21 | 
2 files changed, 27 insertions, 0 deletions
| diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index f16dca1de8..6b1012fae7 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -108,6 +108,12 @@ def generate_config_items(kb_info_json, config_h_lines):                  config_h_lines.append(f'#ifndef {key}')                  config_h_lines.append(f'#   define {key} {value}')                  config_h_lines.append(f'#endif // {key}') +        elif key_type == 'bcd_version': +            (major, minor, revision) = config_value.split('.') +            config_h_lines.append('') +            config_h_lines.append(f'#ifndef {config_key}') +            config_h_lines.append(f'#   define {config_key} 0x{major.zfill(2)}{minor}{revision}') +            config_h_lines.append(f'#endif // {config_key}')          else:              config_h_lines.append('')              config_h_lines.append(f'#ifndef {config_key}') diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 6bdf2cb166..905f10ecc2 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -387,6 +387,19 @@ def _extract_matrix_info(info_data, config_c):      return info_data +# TODO: kill off usb.device_ver in favor of usb.device_version +def _extract_device_version(info_data): +    if info_data.get('usb'): +        if info_data['usb'].get('device_version') and not info_data['usb'].get('device_ver'): +            (major, minor, revision) = info_data['usb']['device_version'].split('.', 3) +            info_data['usb']['device_ver'] = f'0x{major.zfill(2)}{minor}{revision}' +        if not info_data['usb'].get('device_version') and info_data['usb'].get('device_ver'): +            major = int(info_data['usb']['device_ver'][2:4]) +            minor = int(info_data['usb']['device_ver'][4]) +            revision = int(info_data['usb']['device_ver'][5]) +            info_data['usb']['device_version'] = f'{major}.{minor}.{revision}' + +  def _extract_config_h(info_data):      """Pull some keyboard information from existing config.h files      """ @@ -430,6 +443,13 @@ def _extract_config_h(info_data):                  elif key_type == 'int':                      dotty_info[info_key] = int(config_c[config_key]) +                elif key_type == 'bcd_version': +                    major = int(config_c[config_key][2:4]) +                    minor = int(config_c[config_key][4]) +                    revision = int(config_c[config_key][5]) + +                    dotty_info[info_key] = f'{major}.{minor}.{revision}' +                  else:                      dotty_info[info_key] = config_c[config_key] @@ -444,6 +464,7 @@ def _extract_config_h(info_data):      _extract_split_main(info_data, config_c)      _extract_split_transport(info_data, config_c)      _extract_split_right_pins(info_data, config_c) +    _extract_device_version(info_data)      return info_data | 
