mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
kconfig: Fix generation of hex outputs for Make & CMake
And add tests for hex output formatting in all output formats. Previously, Make & CMake outputs only formatted hex values with the 0x prefix if they had the 0x prefix in the sdkconfig file. Now this prefix is always applied. Closes https://github.com/espressif/vscode-esp-idf-extension/issues/83
This commit is contained in:
parent
fc2199c5d6
commit
260fe847e2
@ -310,14 +310,24 @@ def write_makefile(deprecated_options, config, filename):
|
||||
|
||||
def get_makefile_config_string(name, value, orig_type):
|
||||
if orig_type in (kconfiglib.BOOL, kconfiglib.TRISTATE):
|
||||
return "{}{}={}\n".format(config.config_prefix, name, '' if value == 'n' else value)
|
||||
elif orig_type in (kconfiglib.INT, kconfiglib.HEX):
|
||||
return "{}{}={}\n".format(config.config_prefix, name, value)
|
||||
value = '' if value == 'n' else value
|
||||
elif orig_type == kconfiglib.INT:
|
||||
try:
|
||||
value = int(value)
|
||||
except ValueError:
|
||||
value = ""
|
||||
elif orig_type == kconfiglib.HEX:
|
||||
try:
|
||||
value = hex(int(value, 16)) # ensure 0x prefix
|
||||
except ValueError:
|
||||
value = ""
|
||||
elif orig_type == kconfiglib.STRING:
|
||||
return '{}{}="{}"\n'.format(config.config_prefix, name, kconfiglib.escape(value))
|
||||
value = '"{}"'.format(kconfiglib.escape(value))
|
||||
else:
|
||||
raise RuntimeError('{}{}: unknown type {}'.format(config.config_prefix, name, orig_type))
|
||||
|
||||
return '{}{}={}\n'.format(config.config_prefix, name, value)
|
||||
|
||||
def write_makefile_node(node):
|
||||
item = node.item
|
||||
if isinstance(item, kconfiglib.Symbol) and item.env_var is None:
|
||||
@ -373,13 +383,14 @@ def write_cmake(deprecated_options, config, filename):
|
||||
val = "" # write unset values as empty variables
|
||||
elif sym.orig_type == kconfiglib.STRING:
|
||||
val = kconfiglib.escape(val)
|
||||
write("set({}{} \"{}\")\n".format(
|
||||
prefix, sym.name, val))
|
||||
elif sym.orig_type == kconfiglib.HEX:
|
||||
val = hex(int(val, 16)) # ensure 0x prefix
|
||||
write('set({}{} "{}")\n'.format(prefix, sym.name, val))
|
||||
|
||||
configs_list.append(prefix + sym.name)
|
||||
dep_opt = deprecated_options.get_deprecated_option(sym.name)
|
||||
if dep_opt:
|
||||
tmp_dep_list.append("set({}{} \"{}\")\n".format(prefix, dep_opt, val))
|
||||
tmp_dep_list.append('set({}{} "{}")\n'.format(prefix, dep_opt, val))
|
||||
configs_list.append(prefix + dep_opt)
|
||||
|
||||
config.walk_menu(write_node)
|
||||
|
Loading…
x
Reference in New Issue
Block a user