diff options
| author | skullydazed <skullydazed@users.noreply.github.com> | 2019-07-15 12:14:27 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-07-15 12:14:27 -0700 |
| commit | a25dd58bc56b0c4010673723ac44eaff914979bb (patch) | |
| tree | e4c08289df1b72db4ef8447ab7fdc13f604cffac /build_keyboard.mk | |
| parent | 7ba82cb5b751d69dda6cc77ec8877c89defad3e4 (diff) | |
| download | qmk_firmware-a25dd58bc56b0c4010673723ac44eaff914979bb.tar.gz qmk_firmware-a25dd58bc56b0c4010673723ac44eaff914979bb.zip | |
QMK CLI and JSON keymap support (#6176)
* Script to generate keymap.c from JSON file.
* Support for keymap.json
* Add a warning about the keymap.c getting overwritten.
* Fix keymap generating
* Install the python deps
* Flesh out more of the python environment
* Remove defunct json2keymap
* Style everything with yapf
* Polish up python support
* Hide json keymap.c into the .build dir
* Polish up qmk-compile-json
* Make milc work with positional arguments
* Fix a couple small things
* Fix some errors and make the CLI more understandable
* Make the qmk wrapper more robust
* Add basic QMK Doctor
* Clean up docstrings and flesh them out as needed
* remove unused compile_firmware() function
Diffstat (limited to 'build_keyboard.mk')
| -rw-r--r-- | build_keyboard.mk | 60 |
1 files changed, 33 insertions, 27 deletions
diff --git a/build_keyboard.mk b/build_keyboard.mk index 213cb4445..0e3c5ea23 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk | |||
| @@ -98,31 +98,38 @@ MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP) | |||
| 98 | MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP) | 98 | MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP) |
| 99 | MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP) | 99 | MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP) |
| 100 | 100 | ||
| 101 | ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","") | 101 | # Check for keymap.json first, so we can regenerate keymap.c |
| 102 | -include $(MAIN_KEYMAP_PATH_5)/rules.mk | 102 | include build_json.mk |
| 103 | KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c | 103 | |
| 104 | KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5) | 104 | ifeq ("$(wildcard $(KEYMAP_PATH))", "") |
| 105 | else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","") | 105 | # Look through the possible keymap folders until we find a matching keymap.c |
| 106 | -include $(MAIN_KEYMAP_PATH_4)/rules.mk | 106 | ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","") |
| 107 | KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c | 107 | -include $(MAIN_KEYMAP_PATH_5)/rules.mk |
| 108 | KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4) | 108 | KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c |
| 109 | else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","") | 109 | KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5) |
| 110 | -include $(MAIN_KEYMAP_PATH_3)/rules.mk | 110 | else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","") |
| 111 | KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c | 111 | -include $(MAIN_KEYMAP_PATH_4)/rules.mk |
| 112 | KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3) | 112 | KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c |
| 113 | else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","") | 113 | KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4) |
| 114 | -include $(MAIN_KEYMAP_PATH_2)/rules.mk | 114 | else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","") |
| 115 | KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c | 115 | -include $(MAIN_KEYMAP_PATH_3)/rules.mk |
| 116 | KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2) | 116 | KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c |
| 117 | else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","") | 117 | KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3) |
| 118 | -include $(MAIN_KEYMAP_PATH_1)/rules.mk | 118 | else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","") |
| 119 | KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c | 119 | -include $(MAIN_KEYMAP_PATH_2)/rules.mk |
| 120 | KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1) | 120 | KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c |
| 121 | else ifneq ($(LAYOUTS),) | 121 | KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2) |
| 122 | include build_layout.mk | 122 | else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","") |
| 123 | else | 123 | -include $(MAIN_KEYMAP_PATH_1)/rules.mk |
| 124 | $(error Could not find keymap) | 124 | KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c |
| 125 | # this state should never be reached | 125 | KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1) |
| 126 | else ifneq ($(LAYOUTS),) | ||
| 127 | # If we haven't found a keymap yet fall back to community layouts | ||
| 128 | include build_layout.mk | ||
| 129 | else | ||
| 130 | $(error Could not find keymap) | ||
| 131 | # this state should never be reached | ||
| 132 | endif | ||
| 126 | endif | 133 | endif |
| 127 | 134 | ||
| 128 | ifeq ($(strip $(CTPC)), yes) | 135 | ifeq ($(strip $(CTPC)), yes) |
| @@ -313,7 +320,6 @@ ifneq ("$(wildcard $(USER_PATH)/config.h)","") | |||
| 313 | CONFIG_H += $(USER_PATH)/config.h | 320 | CONFIG_H += $(USER_PATH)/config.h |
| 314 | endif | 321 | endif |
| 315 | 322 | ||
| 316 | |||
| 317 | # Object files directory | 323 | # Object files directory |
| 318 | # To put object files in current directory, use a dot (.), do NOT make | 324 | # To put object files in current directory, use a dot (.), do NOT make |
| 319 | # this an empty or blank macro! | 325 | # this an empty or blank macro! |
| @@ -323,7 +329,7 @@ ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","") | |||
| 323 | CONFIG_H += $(KEYMAP_PATH)/config.h | 329 | CONFIG_H += $(KEYMAP_PATH)/config.h |
| 324 | endif | 330 | endif |
| 325 | 331 | ||
| 326 | # # project specific files | 332 | # project specific files |
| 327 | SRC += $(KEYBOARD_SRC) \ | 333 | SRC += $(KEYBOARD_SRC) \ |
| 328 | $(KEYMAP_C) \ | 334 | $(KEYMAP_C) \ |
| 329 | $(QUANTUM_SRC) | 335 | $(QUANTUM_SRC) |
