/* This file is auto-generated by mos build, do not edit! */

#include <stdbool.h>
#include <stdio.h>

#include "common/cs_dbg.h"

#include "mgos_app.h"


extern bool mgos_mongoose_init(void);
extern bool mgos_ota_common_init(void);
extern bool mgos_vfs_common_init(void);
extern bool mgos_vfs_dev_spi_flash_init(void);
extern bool mgos_vfs_fs_spiffs_init(void);
extern bool mgos_core_init(void);
extern bool mgos_arduino_compat_init(void);
extern bool mgos_spi_init(void);
extern bool mgos_arduino_spi_init(void);
extern bool mgos_i2c_init(void);
extern bool mgos_arduino_wire_init(void);
extern bool mgos_Adafruit_SGP30_init(void);
extern bool mgos_adc_init(void);
extern bool mgos_arduino_adafruit_bme280_init(void);
extern bool mgos_atca_init(void);
extern bool mgos_mqtt_init(void);
extern bool mgos_shadow_init(void);
extern bool mgos_aws_init(void);
extern bool mgos_sntp_init(void);
extern bool mgos_azure_init(void);
extern bool mgos_bt_common_init(void);
extern bool mgos_bt_service_config_init(void);
extern bool mgos_bt_service_debug_init(void);
extern bool mgos_ota_http_client_init(void);
extern bool mgos_ota_shadow_init(void);
extern bool mgos_ethernet_init(void);
extern bool mgos_wifi_init(void);
extern bool mgos_http_server_init(void);
extern bool mgos_rpc_common_init(void);
extern bool mgos_dash_init(void);
extern bool mgos_dht_init(void);
extern bool mgos_dns_sd_init(void);
extern bool mgos_esp32_touchpad_init(void);
extern bool mgos_gcp_init(void);
extern bool mgos_neopixel_init(void);
extern bool mgos_ota_http_server_init(void);
extern bool mgos_pppos_init(void);
extern bool mgos_provision_init(void);
extern bool mgos_pwm_init(void);
extern bool mgos_rpc_azure_init(void);
extern bool mgos_rpc_gatts_init(void);
extern bool mgos_rpc_loopback_init(void);
extern bool mgos_watson_init(void);
extern bool mgos_rpc_mqtt_init(void);
extern bool mgos_rpc_service_atca_init(void);
extern bool mgos_rpc_service_config_init(void);
extern bool mgos_rpc_service_fs_init(void);
extern bool mgos_rpc_service_gpio_init(void);
extern bool mgos_rpc_service_i2c_init(void);
extern bool mgos_rpc_service_ota_init(void);
extern bool mgos_rpc_service_wifi_init(void);
extern bool mgos_rpc_uart_init(void);
extern bool mgos_demo_bundle_init(void);
extern bool mgos_mjs_init(void);
extern bool mgos_js_demo_bundle_init(void);
extern bool mgos_mbedtls_init(void);

static const struct lib_descr {
  const char *title;
  bool (*init)(void);
} descrs[] = {

    // "mongoose". deps: [ ]
    {.title = "mongoose", .init = mgos_mongoose_init},

    // "ota-common". deps: [ ]
    {.title = "ota-common", .init = mgos_ota_common_init},

    // "vfs-common". deps: [ ]
    {.title = "vfs-common", .init = mgos_vfs_common_init},

    // "vfs-dev-spi-flash". deps: [ "vfs-common" ]
    {.title = "vfs-dev-spi-flash", .init = mgos_vfs_dev_spi_flash_init},

    // "vfs-fs-spiffs". deps: [ "vfs-common" ]
    {.title = "vfs-fs-spiffs", .init = mgos_vfs_fs_spiffs_init},

    // "core". deps: [ "mongoose" "ota-common" "vfs-common" "vfs-dev-spi-flash" "vfs-fs-spiffs" ]
    {.title = "core", .init = mgos_core_init},

    // "arduino-compat". deps: [ "core" ]
    {.title = "arduino-compat", .init = mgos_arduino_compat_init},

    // "spi". deps: [ "core" ]
    {.title = "spi", .init = mgos_spi_init},

    // "arduino-spi". deps: [ "arduino-compat" "core" "spi" ]
    {.title = "arduino-spi", .init = mgos_arduino_spi_init},

    // "i2c". deps: [ "core" ]
    {.title = "i2c", .init = mgos_i2c_init},

    // "arduino-wire". deps: [ "arduino-compat" "core" "i2c" ]
    {.title = "arduino-wire", .init = mgos_arduino_wire_init},

    // "Adafruit_SGP30". deps: [ "arduino-compat" "arduino-spi" "arduino-wire" "core" ]
    {.title = "Adafruit_SGP30", .init = mgos_Adafruit_SGP30_init},

    // "adc". deps: [ "core" ]
    {.title = "adc", .init = mgos_adc_init},

    // "arduino-adafruit-bme280". deps: [ "arduino-compat" "arduino-spi" "arduino-wire" "core" ]
    {.title = "arduino-adafruit-bme280", .init = mgos_arduino_adafruit_bme280_init},

    // "atca". deps: [ "i2c" ]
    {.title = "atca", .init = mgos_atca_init},

    // "mqtt". deps: [ "core" ]
    {.title = "mqtt", .init = mgos_mqtt_init},

    // "shadow". deps: [ "core" ]
    {.title = "shadow", .init = mgos_shadow_init},

    // "aws". deps: [ "ca-bundle" "core" "mqtt" "shadow" ]
    {.title = "aws", .init = mgos_aws_init},

    // "sntp". deps: [ "core" ]
    {.title = "sntp", .init = mgos_sntp_init},

    // "azure". deps: [ "ca-bundle" "core" "mqtt" "shadow" "sntp" ]
    {.title = "azure", .init = mgos_azure_init},

    // "bt-common". deps: [ "core" ]
    {.title = "bt-common", .init = mgos_bt_common_init},

    // "bt-service-config". deps: [ "bt-common" "core" ]
    {.title = "bt-service-config", .init = mgos_bt_service_config_init},

    // "bt-service-debug". deps: [ "bt-common" "core" ]
    {.title = "bt-service-debug", .init = mgos_bt_service_debug_init},

    // "ota-http-client". deps: [ "core" "ota-common" ]
    {.title = "ota-http-client", .init = mgos_ota_http_client_init},

    // "ota-shadow". deps: [ "core" "ota-common" "ota-http-client" "shadow" ]
    {.title = "ota-shadow", .init = mgos_ota_shadow_init},

    // "ethernet". deps: [ "core" ]
    {.title = "ethernet", .init = mgos_ethernet_init},

    // "wifi". deps: [ "core" ]
    {.title = "wifi", .init = mgos_wifi_init},

    // "http-server". deps: [ "atca" "core" "ethernet" "wifi" ]
    {.title = "http-server", .init = mgos_http_server_init},

    // "rpc-common". deps: [ "core" "http-server" ]
    {.title = "rpc-common", .init = mgos_rpc_common_init},

    // "dash". deps: [ "core" "ota-shadow" "rpc-common" "shadow" ]
    {.title = "dash", .init = mgos_dash_init},

    // "dht". deps: [ "core" ]
    {.title = "dht", .init = mgos_dht_init},

    // "dns-sd". deps: [ "core" "ethernet" "http-server" "wifi" ]
    {.title = "dns-sd", .init = mgos_dns_sd_init},

    // "esp32-touchpad". deps: [ "core" ]
    {.title = "esp32-touchpad", .init = mgos_esp32_touchpad_init},

    // "gcp". deps: [ "ca-bundle" "core" "mqtt" "sntp" ]
    {.title = "gcp", .init = mgos_gcp_init},

    // "neopixel". deps: [ "core" ]
    {.title = "neopixel", .init = mgos_neopixel_init},

    // "ota-http-server". deps: [ "core" "http-server" "ota-common" "ota-http-client" ]
    {.title = "ota-http-server", .init = mgos_ota_http_server_init},

    // "pppos". deps: [ "core" ]
    {.title = "pppos", .init = mgos_pppos_init},

    // "provision". deps: [ "core" ]
    {.title = "provision", .init = mgos_provision_init},

    // "pwm". deps: [ "core" ]
    {.title = "pwm", .init = mgos_pwm_init},

    // "rpc-azure". deps: [ "azure" "core" "rpc-common" ]
    {.title = "rpc-azure", .init = mgos_rpc_azure_init},

    // "rpc-gatts". deps: [ "bt-common" "core" "rpc-common" ]
    {.title = "rpc-gatts", .init = mgos_rpc_gatts_init},

    // "rpc-loopback". deps: [ "core" "rpc-common" ]
    {.title = "rpc-loopback", .init = mgos_rpc_loopback_init},

    // "watson". deps: [ "ca-bundle" "core" "mqtt" ]
    {.title = "watson", .init = mgos_watson_init},

    // "rpc-mqtt". deps: [ "aws" "azure" "core" "gcp" "mqtt" "rpc-common" "watson" ]
    {.title = "rpc-mqtt", .init = mgos_rpc_mqtt_init},

    // "rpc-service-atca". deps: [ "atca" "core" "rpc-common" ]
    {.title = "rpc-service-atca", .init = mgos_rpc_service_atca_init},

    // "rpc-service-config". deps: [ "core" "rpc-common" ]
    {.title = "rpc-service-config", .init = mgos_rpc_service_config_init},

    // "rpc-service-fs". deps: [ "core" "rpc-common" ]
    {.title = "rpc-service-fs", .init = mgos_rpc_service_fs_init},

    // "rpc-service-gpio". deps: [ "core" "rpc-common" ]
    {.title = "rpc-service-gpio", .init = mgos_rpc_service_gpio_init},

    // "rpc-service-i2c". deps: [ "core" "i2c" "rpc-common" ]
    {.title = "rpc-service-i2c", .init = mgos_rpc_service_i2c_init},

    // "rpc-service-ota". deps: [ "core" "ota-http-client" "rpc-common" ]
    {.title = "rpc-service-ota", .init = mgos_rpc_service_ota_init},

    // "rpc-service-wifi". deps: [ "core" "rpc-common" "wifi" ]
    {.title = "rpc-service-wifi", .init = mgos_rpc_service_wifi_init},

    // "rpc-uart". deps: [ "core" "rpc-common" ]
    {.title = "rpc-uart", .init = mgos_rpc_uart_init},

    // "demo-bundle". deps: [ "adc" "atca" "aws" "azure" "bt-service-config" "bt-service-debug" "ca-bundle" "core" "dash" "dht" "dns-sd" "esp32-touchpad" "ethernet" "gcp" "http-server" "i2c" "neopixel" "ota-http-client" "ota-http-server" "ota-shadow" "pppos" "provision" "pwm" "rpc-azure" "rpc-gatts" "rpc-loopback" "rpc-mqtt" "rpc-service-atca" "rpc-service-config" "rpc-service-fs" "rpc-service-gpio" "rpc-service-i2c" "rpc-service-ota" "rpc-service-wifi" "rpc-uart" "shadow" "sntp" "spi" "vfs-dev-spi-flash" "watson" "wifi" "zz_boards" ]
    {.title = "demo-bundle", .init = mgos_demo_bundle_init},

    // "mjs". deps: [ "core" ]
    {.title = "mjs", .init = mgos_mjs_init},

    // "js-demo-bundle". deps: [ "core" "demo-bundle" "mjs" ]
    {.title = "js-demo-bundle", .init = mgos_js_demo_bundle_init},

    // "mbedtls". deps: [ ]
    {.title = "mbedtls", .init = mgos_mbedtls_init},

};

bool mgos_deps_init(void) {
  size_t i;
  for (i = 0; i < sizeof(descrs) / sizeof(struct lib_descr); i++) {
    LOG(LL_DEBUG, ("init %s...", descrs[i].title));
    if (!descrs[i].init()) {
      LOG(LL_ERROR, ("%s init failed", descrs[i].title));
      return false;
    }
  }

  return true;
}
