idf_component_register(
    SRCS
        "main.c"
        "console_completion.c"
        "network_console.c"
        "system_console.c"
        "secure_random.c"
        "status_led.c"
        "local_display.c"
        "local_ui_hw_test.c"
        "rs232_hw_test.c"
        "rs232_port_owner.c"
        "serial_config.c"
        "serial_service.c"
        "serial_console.c"
        "session_broker.c"
        "session_console.c"
        "ssh_security.c"
        "ssh_transport.c"
        "ssh_console.c"
        "usb_cdc_transport.c"
        "usb_console.c"
        "web_security.c"
        "web_serial_transport.c"
        "web_assets_data.c"
        "web_ui.c"
        "web_server.c"
        "web_console.c"
        "wifi_config.c"
        "wifi_manager.c"
        "wifi_console.c"
    INCLUDE_DIRS "."
    REQUIRES
        bootloader_support
        console
        esp_driver_gpio
        esp_driver_i2c
        esp_driver_uart
        esp_event
        esp_http_server
        esp_https_server
        esp_netif
        esp_psram
        esp_system
        esp_timer
        esp_tinyusb
        esp_wifi
        freertos
        led_strip
        lwip
        mbedtls
        nvs_flash
        wolfssl__wolfssh
        wolfssl__wolfssl
)

# Public wolfSSH headers include wolfCrypt configuration from user_settings.h.
target_compile_definitions(${COMPONENT_LIB} PRIVATE
    WOLFSSL_USER_SETTINGS
    WOLFSSH_USER_SETTINGS
    WC_RNG_SEED_CB
)
