menu "NodeMCU modules"

menu "Core Lua modules"

config LUA_BUILTIN_STRING
  bool "String module"
  default "y"
  help
    Includes the string module (recommended).

config LUA_BUILTIN_TABLE
  bool "Table module"
  default "y"
  help
    Includes the table module (recommended).

config LUA_BUILTIN_COROUTINE
  bool "Coroutine module"
  default "y"
  help
    Includes the coroutine module (recommended).

config LUA_BUILTIN_MATH
  bool "Math module"
  default "y"
  help
    Includes the math module (recommended).

config LUA_BUILTIN_DEBUG
  bool "Debug module"
  default "n"
  help
    Includes the debug module.

config LUA_BUILTIN_DEBUG_EXTENDED
depends on LUA_BUILTIN_DEBUG
  bool "Extended debug support"
  default "n"
  help
    Includes the full debug module, rather than just getregistry and traceback.

config LUA_BUILTIN_DEBUG_MINIMAL
depends on LUA_BUILTIN_DEBUG
  bool
  default !LUA_BUILTIN_DEBUG_EXTENDED

endmenu


config LUA_MODULE_ADC
  bool "ADC module"
  default "n"
  help
      Includes the adc module. This module provides access to the
      adc1 hardware.

config LUA_MODULE_BIT
  bool "Bit module"
  default "n"
  help
      Includes the bit module. This module provide bit manipulation functions
      on Lua numbers.

config LUA_MODULE_BTHCI
  bool "BlueTooth HCI interface module"
  default "n"
  select BT_ENABLED
  help
      Includes the simple BlueTooth HCI module.

config LUA_MODULE_CAN
  bool "CAN module"
  default "n"
  help
      Includes the can module.

config LUA_MODULE_CRYPTO
  bool "Crypto module"
  default "n"
  help
      Includes the crypto module.

menu "Crypto module hashing algorithms"
  depends on LUA_MODULE_CRYPTO

  config CRYPTO_HASH_SHA1
    bool "SHA1"
    default "y"
    help
      Includes the SHA1 hashing algorithm
  config CRYPTO_HASH_SHA256
    bool "SHA256 and SHA224"
    default "y"
    help
      Includes the SHA256 and SHA224 hashing algorithms
  config CRYPTO_HASH_SHA512
    bool "SHA512 and SHA384"
    default "y"
    help
      Includes the SHA256 and SHA384 hashing algorithms
  config CRYPTO_HASH_MD5
    bool "MD5"
    default "n"
    help
      Includes the MD5 hashing algorithm
endmenu


config LUA_MODULE_DAC
  bool "DAC module"
  default "n"
  help
      Includes the dac module.

config LUA_MODULE_DHT
  bool "DHT11/21/22/AM2301/AM2302 module"
  default "n"
  help
      Includes the dht module.

config LUA_MODULE_ENCODER
  bool "Encoder module"
  default "n"
  help
      Includes the encoder module. This provides hex and base64 encoding and
      decoding functionality.

config LUA_MODULE_FILE
  bool "File module"
  default "y"
  help
      Includes the file module (recommended).

config LUA_MODULE_GPIO
  bool "GPIO module"
  default "y"
  help
      Includes the GPIO module (recommended).

config LUA_MODULE_HTTP
  bool "HTTP module"
  default "y"
  help
      Includes the HTTP module (recommended).

config LUA_MODULE_I2C
  bool "I2C module"
  default "y"
  help
      Includes the I2C module (recommended).

config LUA_MODULE_I2S
  bool "I2S module"
  default "n"
  help
      Includes the I2S module.

config LUA_MODULE_LEDC
  bool "LEDC module"
  default "n"
  help
      Includes the LEDC module.

config LUA_MODULE_MQTT
  bool "MQTT module"
  default "n"
  help
      Includes the MQTT module.

config LUA_MODULE_NET
  bool "Net module"
  default "y"
  help
      Includes the net module (recommended).

config LUA_MODULE_NODE
  bool "Node module"
  default "y"
  help
      Includes the node module (recommended).

config LUA_MODULE_OW
  bool "1-Wire module"
  default "y"
  help
      Includes the 1-Wire (ow) module (recommended).

config LUA_MODULE_QRCODEGEN
  bool "QR Code Generator module"
  default "n"
  help
      Includes the QR Code Generator from
      https://www.nayuki.io/page/qr-code-generator-library

config LUA_MODULE_SDMMC
  bool "SD-MMC module"
  default "n"
  help
      Includes the sdmmc module.

config LUA_MODULE_SIGMA_DELTA
  bool "Sigma-Delta module"
  default "n"
  help
      Includes the sigma_delta module. This module provides access to the
      sigma-delta hardware.
	  
config LUA_MODULE_SJSON
  bool "SJSON module"
  default "n"
  help
      Includes the sjson module.

config LUA_MODULE_SODIUM
  bool "Sodium module"
  default "n"
  help
      Includes the libsodium crypto module.

config LUA_MODULE_SPI
  bool "SPI module"
  default "n"
  help
      Includes the spi module.

config LUA_MODULE_STRUCT
  bool "Struct module"
  default "n"
  help
      Includes the struct module. This module provides [un]packing of raw
      byte strings into Lua values and vice versa.

config LUA_MODULE_TMR
  bool "Timer module"
  default "y"
  help
      Includes the timer module (recommended).

config LUA_MODULE_U8G2
  bool "U8G2 module"
  default "n"
  help
      Includes the u8g2 module.

source "$PROJECT_PATH/components/u8g2/u8g2.kconfig"

config LUA_MODULE_UCG
  bool "UCG module"
  default "n"
  select LUA_MODULE_SPI
  help
      Includes the ucg module.

source "$PROJECT_PATH/components/ucg/ucg.kconfig"

config LUA_MODULE_WIFI
  bool "WiFi module"
  default "y"
  help
      Includes the WiFi module (recommended).

config LUA_MODULE_WS2812
  bool "WS2812 module"
  default "n"
  help
      Includes the ws2812 module.
	  
config LUA_MODULE_TIME
  bool "time module"
  default "n"
  help
      Includes the time module.

endmenu