diff options
author | Nick Brassel <[email protected]> | 2024-08-12 22:34:22 +1000 |
---|---|---|
committer | GitHub <[email protected]> | 2024-08-12 22:34:22 +1000 |
commit | 380e0c9cad72ac29f858bef85c8b8eb35b6931f0 (patch) | |
tree | e711c1d30cb02a931db0b2a91c075dd65a38cb9f /lib/python/qmk/info.py | |
parent | 158aaef78c26ea1ade9a5fbc0ee7fbe5b84a6fe9 (diff) | |
download | qmk_firmware-380e0c9cad72ac29f858bef85c8b8eb35b6931f0.tar.gz qmk_firmware-380e0c9cad72ac29f858bef85c8b8eb35b6931f0.zip |
Userspace: add support for adding environment variables during build (#22887)
Diffstat (limited to 'lib/python/qmk/info.py')
-rw-r--r-- | lib/python/qmk/info.py | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 833271c09c..e295c5cfe0 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -212,7 +212,7 @@ def _validate(keyboard, info_data): maybe_exit(1) -def info_json(keyboard): +def info_json(keyboard, force_layout=None): """Generate the info.json data for a specific keyboard. """ cur_dir = Path('keyboards') @@ -255,6 +255,11 @@ def info_json(keyboard): # Merge in data from <keyboard.c> info_data = _extract_led_config(info_data, str(keyboard)) + # Force a community layout if requested + community_layouts = info_data.get("community_layouts", []) + if force_layout in community_layouts: + info_data["community_layouts"] = [force_layout] + # Validate _validate(keyboard, info_data) @@ -988,25 +993,25 @@ def find_info_json(keyboard): return [info_json for info_json in info_jsons if info_json.exists()] -def keymap_json_config(keyboard, keymap): +def keymap_json_config(keyboard, keymap, force_layout=None): """Extract keymap level config """ # TODO: resolve keymap.py and info.py circular dependencies from qmk.keymap import locate_keymap - keymap_folder = locate_keymap(keyboard, keymap).parent + keymap_folder = locate_keymap(keyboard, keymap, force_layout=force_layout).parent km_info_json = parse_configurator_json(keymap_folder / 'keymap.json') return km_info_json.get('config', {}) -def keymap_json(keyboard, keymap): +def keymap_json(keyboard, keymap, force_layout=None): """Generate the info.json data for a specific keymap. """ # TODO: resolve keymap.py and info.py circular dependencies from qmk.keymap import locate_keymap - keymap_folder = locate_keymap(keyboard, keymap).parent + keymap_folder = locate_keymap(keyboard, keymap, force_layout=force_layout).parent # Files to scan keymap_config = keymap_folder / 'config.h' @@ -1014,10 +1019,10 @@ def keymap_json(keyboard, keymap): keymap_file = keymap_folder / 'keymap.json' # Build the info.json file - kb_info_json = info_json(keyboard) + kb_info_json = info_json(keyboard, force_layout=force_layout) # Merge in the data from keymap.json - km_info_json = keymap_json_config(keyboard, keymap) if keymap_file.exists() else {} + km_info_json = keymap_json_config(keyboard, keymap, force_layout=force_layout) if keymap_file.exists() else {} deep_update(kb_info_json, km_info_json) # Merge in the data from config.h, and rules.mk |