refactor(behaviors): Update Behaviors' KConfig Preprocessor Functions

Updates behaviors to compile only those explicitly used in a keymap, similarly to #1269.
This commit is contained in:
Kurtis Lew 2022-06-17 20:41:53 -07:00
parent 3d2bd01747
commit d38501af8e
2 changed files with 92 additions and 17 deletions

View file

@ -37,22 +37,22 @@ target_sources(app PRIVATE src/behaviors/behavior_reset.c)
target_sources_ifdef(CONFIG_ZMK_EXT_POWER app PRIVATE src/behaviors/behavior_ext_power.c)
if ((NOT CONFIG_ZMK_SPLIT) OR CONFIG_ZMK_SPLIT_ROLE_CENTRAL)
target_sources(app PRIVATE src/hid.c)
target_sources(app PRIVATE src/behaviors/behavior_key_press.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_KEY_PRESS app PRIVATE src/behaviors/behavior_key_press.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_KEY_TOGGLE app PRIVATE src/behaviors/behavior_key_toggle.c)
target_sources(app PRIVATE src/behaviors/behavior_hold_tap.c)
target_sources(app PRIVATE src/behaviors/behavior_sticky_key.c)
target_sources(app PRIVATE src/behaviors/behavior_caps_word.c)
target_sources(app PRIVATE src/behaviors/behavior_key_repeat.c)
target_sources(app PRIVATE src/behaviors/behavior_macro.c)
target_sources(app PRIVATE src/behaviors/behavior_momentary_layer.c)
target_sources(app PRIVATE src/behaviors/behavior_mod_morph.c)
target_sources(app PRIVATE src/behaviors/behavior_outputs.c)
target_sources(app PRIVATE src/behaviors/behavior_tap_dance.c)
target_sources(app PRIVATE src/behaviors/behavior_toggle_layer.c)
target_sources(app PRIVATE src/behaviors/behavior_to_layer.c)
target_sources(app PRIVATE src/behaviors/behavior_transparent.c)
target_sources(app PRIVATE src/behaviors/behavior_none.c)
target_sources(app PRIVATE src/behaviors/behavior_sensor_rotate_key_press.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_HOLD_TAP app PRIVATE src/behaviors/behavior_hold_tap.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_STICKY_KEY app PRIVATE src/behaviors/behavior_sticky_key.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_CAPS_WORD app PRIVATE src/behaviors/behavior_caps_word.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_KEY_REPEAT app PRIVATE src/behaviors/behavior_key_repeat.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_MACRO app PRIVATE src/behaviors/behavior_macro.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_MOMENTARY_LAYER app PRIVATE src/behaviors/behavior_momentary_layer.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_MOD_MORPH app PRIVATE src/behaviors/behavior_mod_morph.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_OUTPUTS app PRIVATE src/behaviors/behavior_outputs.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_TAP_DANCE app PRIVATE src/behaviors/behavior_tap_dance.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_TOGGLE_LAYER app PRIVATE src/behaviors/behavior_toggle_layer.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_TO_LAYER app PRIVATE src/behaviors/behavior_to_layer.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_TRANSPARENT app PRIVATE src/behaviors/behavior_transparent.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_NONE app PRIVATE src/behaviors/behavior_none.c)
target_sources_ifdef(CONFIG_ZMK_BEHAVIOR_SENSOR_ROTATE_KEY_PRESS app PRIVATE src/behaviors/behavior_sensor_rotate_key_press.c)
target_sources(app PRIVATE src/combo.c)
target_sources(app PRIVATE src/behavior_queue.c)
target_sources(app PRIVATE src/conditional_layer.c)

View file

@ -330,11 +330,86 @@ config ZMK_BEHAVIORS_QUEUE_SIZE
int "Maximum number of behaviors to allow queueing from a macro or other complex behavior"
default 64
DT_COMPAT_ZMK_BEHAVIOR_CAPS_WORD := zmk,behavior-caps-word
DT_COMPAT_ZMK_BEHAVIOR_HOLD_TAP := zmk,behavior-hold-tap
DT_COMPAT_ZMK_BEHAVIOR_KEY_PRESS := zmk,behavior-key-press
DT_COMPAT_ZMK_BEHAVIOR_KEY_REPEAT := zmk,behavior-key-repeat
DT_COMPAT_ZMK_BEHAVIOR_KEY_TOGGLE := zmk,behavior-key-toggle
DT_COMPAT_ZMK_BEHAVIOR_MACRO := zmk,behavior-macro
DT_COMPAT_ZMK_BEHAVIOR_MOD_MORPH := zmk,behavior-mod-morph
DT_COMPAT_ZMK_BEHAVIOR_MOMENTARY_LAYER := zmk,behavior-momentary-layer
DT_COMPAT_ZMK_BEHAVIOR_NONE := zmk,behavior-none
DT_COMPAT_ZMK_BEHAVIOR_OUTPUTS := zmk,behavior-outputs
DT_COMPAT_ZMK_BEHAVIOR_SENSOR_ROTATE_KEY_PRESS := zmk,behavior-sensor-rotate-key-press
DT_COMPAT_ZMK_BEHAVIOR_STICKY_KEY := zmk,behavior-sticky-key
DT_COMPAT_ZMK_BEHAVIOR_TAP_DANCE := zmk,behavior-tap-dance
DT_COMPAT_ZMK_BEHAVIOR_TO_LAYER := zmk,behavior-to-layer
DT_COMPAT_ZMK_BEHAVIOR_TOGGLE_LAYER := zmk,behavior-toggle-layer
DT_COMPAT_ZMK_BEHAVIOR_TRANSPARENT := zmk,behavior-transparent
config ZMK_BEHAVIOR_CAPS_WORD
bool
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_BEHAVIOR_CAPS_WORD))
config ZMK_BEHAVIOR_HOLD_TAP
bool
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_BEHAVIOR_HOLD_TAP))
config ZMK_BEHAVIOR_KEY_PRESS
bool
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_BEHAVIOR_KEY_PRESS))
config ZMK_BEHAVIOR_KEY_REPEAT
bool
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_BEHAVIOR_KEY_REPEAT))
config ZMK_BEHAVIOR_KEY_TOGGLE
bool
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_BEHAVIOR_KEY_TOGGLE))
bool
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_BEHAVIOR_KEY_TOGGLE))
config ZMK_BEHAVIOR_MACRO
bool
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_BEHAVIOR_MACRO))
config ZMK_BEHAVIOR_MOD_MORPH
bool
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_BEHAVIOR_MOD_MORPH))
config ZMK_BEHAVIOR_MOMENTARY_LAYER
bool
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_BEHAVIOR_MOMENTARY_LAYER))
config ZMK_BEHAVIOR_NONE
bool
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_BEHAVIOR_NONE))
config ZMK_BEHAVIOR_OUTPUTS
bool
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_BEHAVIOR_OUTPUTS))
config ZMK_BEHAVIOR_SENSOR_ROTATE_KEY_PRESS
bool
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_BEHAVIOR_SENSOR_ROTATE_KEY_PRESS))
config ZMK_BEHAVIOR_STICKY_KEY
bool
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_BEHAVIOR_STICKY_KEY))
config ZMK_BEHAVIOR_TAP_DANCE
bool
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_BEHAVIOR_TAP_DANCE))
config ZMK_BEHAVIOR_TO_LAYER
bool
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_BEHAVIOR_TO_LAYER))
config ZMK_BEHAVIOR_TOGGLE_LAYER
bool
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_BEHAVIOR_TOGGLE_LAYER))
config ZMK_BEHAVIOR_TRANSPARENT
bool
default $(dt_compat_enabled,$(DT_COMPAT_ZMK_BEHAVIOR_TRANSPARENT))
endmenu