# This is Doxygen configuration file
#
# Doxygen provides over 260 configuration statements
# To make this file easier to follow,
# it contains only statements that are non-default
#
# NOTE:
# It is recommended not to change defaults unless specifically required
# Test any changes how they affect generated documentation
# Make sure that correct warnings are generated to flag issues with documented code
#
# For the complete list of configuration statements see:
# https://www.stack.nl/~dimitri/doxygen/manual/config.html


PROJECT_NAME = "ESP32 Programming Guide"

## The 'INPUT' statement below is used as input by script 'gen-df-input.py'
## to automatically generate API reference list files heder_file.inc
## These files are placed in '_inc' directory
## and used to include in API reference documentation

INPUT = \
    ##
    ## Wi-Fi - API Reference
    ##
    ../../components/esp32/include/esp_wifi.h \
    ../../components/esp32/include/esp_wifi_types.h \
    ../../components/esp32/include/esp_smartconfig.h \
    ../../components/esp32/include/esp_now.h \
    ## Mesh - API Reference
    ../../components/esp32/include/esp_mesh.h \
    ## Bluetooth - API Reference
    ## Controller && VHCI
    ../../components/bt/include/esp_bt.h \
    ## Bluetooth COMMON
    ## Issue with __attribute__
    ../../components/bt/bluedroid/api/include/api/esp_bt_defs.h \
    ../../components/bt/bluedroid/api/include/api/esp_bt_main.h \
    ../../components/bt/bluedroid/api/include/api/esp_bt_device.h \
    ## Bluetooth LE
    ../../components/bt/bluedroid/api/include/api/esp_gap_ble_api.h \
    ## Issue with __attribute__
    ../../components/bt/bluedroid/api/include/api/esp_gatt_defs.h \
    ../../components/bt/bluedroid/api/include/api/esp_gatts_api.h \
    ../../components/bt/bluedroid/api/include/api/esp_gattc_api.h \
    ../../components/bt/bluedroid/api/include/api/esp_blufi_api.h \
    ## Bluetooth Classic
    ../../components/bt/bluedroid/api/include/api/esp_gap_bt_api.h \
    ## Issue with __attribute__
    ../../components/bt/bluedroid/api/include/api/esp_a2dp_api.h \
    ../../components/bt/bluedroid/api/include/api/esp_avrc_api.h \
    ../../components/bt/bluedroid/api/include/api/esp_spp_api.h \
    ../../components/bt/bluedroid/api/include/api/esp_hf_defs.h \
    ../../components/bt/bluedroid/api/include/api/esp_hf_client_api.h \
    ##
    ## Ethernet - API Reference
    ##
    ../../components/ethernet/include/esp_eth.h \
    ../../components/ethernet/include/eth_phy/phy.h \
    ../../components/ethernet/include/eth_phy/phy_tlk110.h \
    ../../components/ethernet/include/eth_phy/phy_lan8720.h \
    ##
    ## Peripherals - API Reference
    ##
    ../../components/driver/include/driver/adc.h \
    ../../components/driver/include/driver/can.h \
    ../../components/driver/include/driver/dac.h \
    ../../components/driver/include/driver/gpio.h \
    ../../components/driver/include/driver/rtc_io.h \
    ../../components/driver/include/driver/i2c.h \
    ../../components/driver/include/driver/i2s.h \
    ../../components/driver/include/driver/ledc.h \
    ../../components/driver/include/driver/mcpwm.h \
    ../../components/driver/include/driver/pcnt.h \
    ../../components/driver/include/driver/rmt.h \
    ../../components/driver/include/driver/sigmadelta.h \
    ../../components/driver/include/driver/spi_common.h \
    ../../components/driver/include/driver/spi_master.h \
    ../../components/driver/include/driver/spi_slave.h \
    ../../components/driver/include/driver/timer.h \
    ../../components/driver/include/driver/touch_pad.h \
    ../../components/driver/include/driver/uart.h \
    ../../components/esp_adc_cal/include/esp_adc_cal.h \
    ../../components/soc/esp32/include/soc/adc_channel.h \
    ../../components/soc/esp32/include/soc/dac_channel.h \
    ../../components/soc/esp32/include/soc/touch_channel.h \
    ../../components/soc/esp32/include/soc/uart_channel.h \
    ../../components/soc/esp32/include/soc/rtc_gpio_channel.h \
    ## tcpip_adapter - API Reference
    ../../components/tcpip_adapter/include/tcpip_adapter.h \
    ##
    ## Protocols - API Reference
    ##
    ## ESP-TLS
    ../../components/esp-tls/esp_tls.h \
    ## MQTT
    ../../components/mqtt/esp-mqtt/include/mqtt_client.h \
    ## mDNS
    ../../components/mdns/include/mdns.h \
    ../../components/esp_http_client/include/esp_http_client.h \
    ../../components/esp_http_server/include/esp_http_server.h \
    ../../components/esp_https_server/include/esp_https_server.h \
    ##
    ## Provisioning - API Reference
    ##
    ## Protocol Communication
    ../../components/protocomm/include/common/protocomm.h \
    ../../components/protocomm/include/security/protocomm_security.h \
    ../../components/protocomm/include/security/protocomm_security0.h \
    ../../components/protocomm/include/security/protocomm_security1.h \
    ../../components/protocomm/include/transports/protocomm_ble.h \
    ../../components/protocomm/include/transports/protocomm_console.h \
    ../../components/protocomm/include/transports/protocomm_httpd.h \
    ## WiFi Provisioning
    ../../components/wifi_provisioning/include/wifi_provisioning/wifi_config.h \
    ##
    ## Storage - API Reference
    ##
    ## SPI Flash and Partition APIs
    ../../components/spi_flash/include/esp_spi_flash.h \
    ../../components/spi_flash/include/esp_partition.h \
    ../../components/bootloader_support/include/esp_flash_encrypt.h \
    ## SPIFFS
    ../../components/spiffs/include/esp_spiffs.h \
    ## SD/MMC Card Host
    ../../components/sdmmc/include/sdmmc_cmd.h \
    ../../components/driver/include/driver/sdmmc_host.h \
    ../../components/driver/include/driver/sdmmc_types.h \
    ../../components/driver/include/driver/sdspi_host.h \
    ## SDIO slave
    ../../components/driver/include/driver/sdio_slave.h \
    ## Non-Volatile Storage
    ../../components/nvs_flash/include/nvs.h \
    ../../components/nvs_flash/include/nvs_flash.h \
    ## Virtual Filesystem
    ../../components/vfs/include/esp_vfs.h \
    ../../components/vfs/include/esp_vfs_dev.h \
    ## FAT Filesystem
    ## NOTE: for two lines below header_file.inc is not used
    ../../components/fatfs/src/esp_vfs_fat.h \
    ../../components/fatfs/src/diskio.h \
    ## Wear Levelling
    ../../components/wear_levelling/include/wear_levelling.h \
    ##
    ## System - API Reference
    ##
    ## Memory Allocation    #
    ../../components/heap/include/esp_heap_caps.h \
    ../../components/heap/include/esp_heap_trace.h \
    ../../components/heap/include/esp_heap_caps_init.h \
    ../../components/heap/include/multi_heap.h \
    ## Himem
    ../../components/esp32/include/esp_himem.h \
    ## Interrupt Allocation
    ../../components/esp32/include/esp_intr_alloc.h \
    ## Watchdogs
    ## NOTE: for two lines below header_file.inc is not used
    ../../components/esp32/include/esp_int_wdt.h \
    ../../components/esp32/include/esp_task_wdt.h \
    ## Hooks
    ../../components/esp32/include/esp_freertos_hooks.h \
    ## Inter-Processor Call
    ../../components/esp32/include/esp_ipc.h \
    ## Over The Air Updates (OTA)
    ../../components/app_update/include/esp_ota_ops.h \
    ## ESP HTTPS OTA
    ../../components/esp_https_ota/include/esp_https_ota.h \
    ## Sleep
    ../../components/esp32/include/esp_sleep.h \
    ## Logging
    ../../components/log/include/esp_log.h \
    ## Base MAC address
    ## NOTE: for line below header_file.inc is not used
    ../../components/esp32/include/esp_system.h \
    ##
    ## ULP Coprocessor - API Guides
    ##
    ## NOTE: for line below header_file.inc is not used
    ../../components/ulp/include/esp32/ulp.h \
    ##
    ## Application Level Tracing - API Reference
    ##
    ../../components/app_trace/include/esp_app_trace.h \
    ### Power management
    ../../components/esp32/include/esp_pm.h \
    ../../components/esp32/include/esp32/pm.h \
    ### esp_timer, High Resolution Timer
    ../../components/esp32/include/esp_timer.h \
    ### esp_event, Event Loop Library
    ../../components/esp_event/include/esp_event.h \
    ../../components/esp_event/include/esp_event_base.h \
    ### ESP Pthread parameters
    ../../components/pthread/include/esp_pthread.h \
    ###
    ### FreeRTOS
    ###
    ../../components/freertos/include/freertos/task.h \
    ../../components/freertos/include/freertos/queue.h \
    ../../components/freertos/include/freertos/semphr.h \
    ../../components/freertos/include/freertos/timers.h \
    ../../components/freertos/include/freertos/event_groups.h \
    ### Ringbuffer
    ../../components/esp_ringbuf/include/freertos/ringbuf.h \
    ### Helper functions for error codes
    ../../components/esp32/include/esp_err.h \
    ### System APIs
    ../../components/esp32/include/esp_system.h \
    ### Modbus controller component header file
    ../../components/freemodbus/modbus_controller/mbcontroller.h

## Get warnings for functions that have no documentation for their parameters or return value
##
WARN_NO_PARAMDOC = YES

## Enable preprocessing and remove __attribute__(...) expressions from the INPUT files
##
ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = YES
EXPAND_ONLY_PREDEF     = YES
PREDEFINED             = \
    __attribute__(x)= \
    IRAM_ATTR= \
    configSUPPORT_DYNAMIC_ALLOCATION=1 \
    configSUPPORT_STATIC_ALLOCATION=1 \
    configQUEUE_REGISTRY_SIZE=1 \
    configUSE_RECURSIVE_MUTEXES=1 \
    configTHREAD_LOCAL_STORAGE_DELETE_CALLBACKS=1 \
    configNUM_THREAD_LOCAL_STORAGE_POINTERS=1 \
    configUSE_APPLICATION_TASK_TAG=1 \
    configTASKLIST_INCLUDE_COREID=1

## Do not complain about not having dot
##
HAVE_DOT = NO

## Generate XML that is required for Breathe
##
GENERATE_XML    = YES
XML_OUTPUT      = xml

GENERATE_HTML   = NO
HAVE_DOT        = NO
GENERATE_LATEX  = NO
GENERATE_MAN    = YES
GENERATE_RTF    = NO

## Skip distracting progress messages
##
QUIET = YES
## Log warnings in a file for further review
##
WARN_LOGFILE = "doxygen-warning-log.txt"

