diff --git a/app/cmake/ZephyrBuildConfig.cmake b/app/cmake/ZephyrBuildConfig.cmake index 294098b4..469f5761 100644 --- a/app/cmake/ZephyrBuildConfig.cmake +++ b/app/cmake/ZephyrBuildConfig.cmake @@ -121,11 +121,11 @@ if(DEFINED SHIELD) list(LENGTH S_PIECES S_PIECES_LEN) while(NOT S_PIECES STREQUAL "") list(POP_BACK S_PIECES) - list(JOIN S_PIECES "_" S_SUBSTR) - if (S_SUBSTR STREQUAL ${shield_dir_name}) + list(JOIN S_PIECES "_" s_substr) + if ("%{s_substr}" STREQUAL "" OR "${s_substr}" STREQUAL ${shield_dir_name}) break() endif() - list(APPEND shield_candidate_names ${S_SUBSTR}) + list(APPEND shield_candidate_names ${s_substr}) endwhile() endforeach() endif() @@ -133,12 +133,11 @@ endif() if (ZMK_CONFIG) if (EXISTS ${ZMK_CONFIG}) message(STATUS "ZMK Config directory: ${ZMK_CONFIG}") - list(APPEND DTS_ROOT ${ZMK_CONFIG}) list(PREPEND KEYMAP_DIRS "${ZMK_CONFIG}") if (DEFINED SHIELD) - foreach (s ${shield_candidate_names}) - if (DEFINED $SHIELD_DIR_${s}) + foreach (s ${shield_candidate_names} ${SHIELD_AS_LIST}) + if (DEFINED ${SHIELD_DIR_${s}}) get_filename_component(shield_dir_name ${SHIELD_DIR_${s}} NAME) endif() list(APPEND overlay_candidates "${ZMK_CONFIG}/${s}_${BOARD}.overlay") diff --git a/app/drivers/CMakeLists.txt b/app/drivers/CMakeLists.txt index c58ada48..44d69ac3 100644 --- a/app/drivers/CMakeLists.txt +++ b/app/drivers/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2020 The ZMK Contributors # SPDX-License-Identifier: MIT -add_subdirectory(gpio) +add_subdirectory_ifdef(CONFIG_ZMK_DRIVERS_GPIO gpio) add_subdirectory(kscan) add_subdirectory(sensor) add_subdirectory(display) diff --git a/app/drivers/gpio/Kconfig b/app/drivers/gpio/Kconfig index 0e612ea0..43c7c24e 100644 --- a/app/drivers/gpio/Kconfig +++ b/app/drivers/gpio/Kconfig @@ -1,3 +1,6 @@ +menuconfig ZMK_DRIVERS_GPIO + bool "GPIO" + rsource "Kconfig.mcp23017" rsource "Kconfig.max7318" rsource "Kconfig.595" diff --git a/app/drivers/gpio/Kconfig.595 b/app/drivers/gpio/Kconfig.595 index b863adcb..f43e807b 100644 --- a/app/drivers/gpio/Kconfig.595 +++ b/app/drivers/gpio/Kconfig.595 @@ -10,6 +10,7 @@ menuconfig GPIO_595 default $(dt_compat_enabled,$(DT_COMPAT_ZMK_GPIO_595)) depends on SPI select HAS_DTS_GPIO + select ZMK_DRIVERS_GPIO help Enable driver for 595 shift register chip using SPI. diff --git a/app/drivers/gpio/Kconfig.mcp23017 b/app/drivers/gpio/Kconfig.mcp23017 index 4953b924..049ca82e 100644 --- a/app/drivers/gpio/Kconfig.mcp23017 +++ b/app/drivers/gpio/Kconfig.mcp23017 @@ -7,6 +7,7 @@ menuconfig GPIO_MCP23017 bool "MCP23017 I2C-based GPIO chip" depends on I2C select HAS_DTS_GPIO + select ZMK_DRIVERS_GPIO help Enable driver for MCP23017 I2C-based GPIO chip.