diff options
Diffstat (limited to 'lib/python')
| -rwxr-xr-x | lib/python/qmk/cli/generate/config_h.py | 9 | ||||
| -rwxr-xr-x | lib/python/qmk/cli/generate/rules_mk.py | 4 | ||||
| -rw-r--r-- | lib/python/qmk/info.py | 10 | 
3 files changed, 18 insertions, 5 deletions
| diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index 24bbbdf517..340ed10436 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -82,7 +82,7 @@ def generate_config_items(kb_info_json, config_h_lines):      for config_key, info_dict in info_config_map.items():          info_key = info_dict['info_key'] -        key_type = info_dict.get('value_type', 'str') +        key_type = info_dict.get('value_type', 'raw')          to_config = info_dict.get('to_config', True)          if not to_config: @@ -110,6 +110,11 @@ 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 == 'str': +            config_h_lines.append('') +            config_h_lines.append(f'#ifndef {config_key}') +            config_h_lines.append(f'#   define {config_key} "{config_value}"') +            config_h_lines.append(f'#endif // {config_key}')          elif key_type == 'bcd_version':              (major, minor, revision) = config_value.split('.')              config_h_lines.append('') @@ -200,7 +205,7 @@ def generate_config_h(cli):          cli.args.output.parent.mkdir(parents=True, exist_ok=True)          if cli.args.output.exists():              cli.args.output.replace(cli.args.output.parent / (cli.args.output.name + '.bak')) -        cli.args.output.write_text(config_h) +        cli.args.output.write_text(config_h, encoding='utf-8')          if not cli.args.quiet:              cli.log.info('Wrote info_config.h to %s.', cli.args.output) diff --git a/lib/python/qmk/cli/generate/rules_mk.py b/lib/python/qmk/cli/generate/rules_mk.py index ce824f6378..a1b10cc945 100755 --- a/lib/python/qmk/cli/generate/rules_mk.py +++ b/lib/python/qmk/cli/generate/rules_mk.py @@ -19,7 +19,7 @@ def process_mapping_rule(kb_info_json, rules_key, info_dict):          return None      info_key = info_dict['info_key'] -    key_type = info_dict.get('value_type', 'str') +    key_type = info_dict.get('value_type', 'raw')      try:          rules_value = kb_info_json[info_key] @@ -32,6 +32,8 @@ def process_mapping_rule(kb_info_json, rules_key, info_dict):          return f'{rules_key} ?= {"yes" if rules_value else "no"}'      elif key_type == 'mapping':          return '\n'.join([f'{key} ?= {value}' for key, value in rules_value.items()]) +    elif key_type == 'str': +        return f'{rules_key} ?= "{rules_value}"'      return f'{rules_key} ?= {rules_value}' diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index b86eaa059f..c399a9f321 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -411,7 +411,7 @@ def _extract_config_h(info_data):      for config_key, info_dict in info_config_map.items():          info_key = info_dict['info_key'] -        key_type = info_dict.get('value_type', 'str') +        key_type = info_dict.get('value_type', 'raw')          try:              if config_key in config_c and info_dict.get('to_json', True): @@ -443,6 +443,9 @@ def _extract_config_h(info_data):                  elif key_type == 'int':                      dotty_info[info_key] = int(config_c[config_key]) +                elif key_type == 'str': +                    dotty_info[info_key] = config_c[config_key].strip('"') +                  elif key_type == 'bcd_version':                      major = int(config_c[config_key][2:4])                      minor = int(config_c[config_key][4]) @@ -491,7 +494,7 @@ def _extract_rules_mk(info_data):      for rules_key, info_dict in info_rules_map.items():          info_key = info_dict['info_key'] -        key_type = info_dict.get('value_type', 'str') +        key_type = info_dict.get('value_type', 'raw')          try:              if rules_key in rules and info_dict.get('to_json', True): @@ -523,6 +526,9 @@ def _extract_rules_mk(info_data):                  elif key_type == 'int':                      dotty_info[info_key] = int(rules[rules_key]) +                elif key_type == 'str': +                    dotty_info[info_key] = rules[rules_key].strip('"') +                  else:                      dotty_info[info_key] = rules[rules_key] | 
