aboutsummaryrefslogtreecommitdiff
path: root/build_keyboard.mk
diff options
context:
space:
mode:
authorskullydazed <skullydazed@users.noreply.github.com>2019-07-15 12:14:27 -0700
committerGitHub <noreply@github.com>2019-07-15 12:14:27 -0700
commita25dd58bc56b0c4010673723ac44eaff914979bb (patch)
treee4c08289df1b72db4ef8447ab7fdc13f604cffac /build_keyboard.mk
parent7ba82cb5b751d69dda6cc77ec8877c89defad3e4 (diff)
downloadqmk_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.mk60
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)
98MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP) 98MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
99MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP) 99MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
100 100
101ifneq ("$(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 102include build_json.mk
103 KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c 103
104 KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5) 104ifeq ("$(wildcard $(KEYMAP_PATH))", "")
105else 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
109else 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
113else 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
117else 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
121else ifneq ($(LAYOUTS),) 121 KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
122 include build_layout.mk 122 else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","")
123else 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
126endif 133endif
127 134
128ifeq ($(strip $(CTPC)), yes) 135ifeq ($(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
314endif 321endif
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
324endif 330endif
325 331
326# # project specific files 332# project specific files
327SRC += $(KEYBOARD_SRC) \ 333SRC += $(KEYBOARD_SRC) \
328 $(KEYMAP_C) \ 334 $(KEYMAP_C) \
329 $(QUANTUM_SRC) 335 $(QUANTUM_SRC)