# 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 = "ESP IoT Solution 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

## IF YOU ADD NEW FILES HERE
## DO NOT FORGET TO ADD THEM TO THE .patterns-docs_inc PATTERN
## IN THE .gitlab/ci/rules.yml FILE

INPUT = \
    $(PROJECT_PATH)/components/audio/adc_mic/adc_mic.h \
    $(PROJECT_PATH)/components/audio/dac_audio/include/dac_audio.h \
    $(PROJECT_PATH)/components/audio/pwm_audio/include/pwm_audio.h \
    $(PROJECT_PATH)/components/avi_player/include/avi_player.h \
    $(PROJECT_PATH)/components/bluetooth/ble_conn_mgr/include/esp_ble_conn_mgr.h \
    $(PROJECT_PATH)/components/bluetooth/ble_hci/include/ble_hci.h \
    $(PROJECT_PATH)/components/bluetooth/ble_adv/bthome/include/bthome_v2.h \
    $(PROJECT_PATH)/components/bluetooth/ble_profiles/std/ble_anp/include/esp_anp.h \
    $(PROJECT_PATH)/components/bluetooth/ble_profiles/std/ble_hrp/include/esp_hrp.h \
    $(PROJECT_PATH)/components/bluetooth/ble_profiles/std/ble_htp/include/esp_htp.h \
    $(PROJECT_PATH)/components/bluetooth/ble_profiles/third_party/ble_midi/include/esp_ble_midi.h \
    $(PROJECT_PATH)/components/bluetooth/ble_services/ans/include/esp_ans.h \
    $(PROJECT_PATH)/components/bluetooth/ble_services/bas/include/esp_bas.h \
    $(PROJECT_PATH)/components/bluetooth/ble_services/bcs/include/esp_bcs.h \
    $(PROJECT_PATH)/components/bluetooth/ble_services/cts/include/esp_cts.h \
    $(PROJECT_PATH)/components/bluetooth/ble_services/dis/include/esp_dis.h \
    $(PROJECT_PATH)/components/bluetooth/ble_services/hrs/include/esp_hrs.h \
    $(PROJECT_PATH)/components/bluetooth/ble_services/hts/include/esp_hts.h \
    $(PROJECT_PATH)/components/bluetooth/ble_services/ots/include/esp_ots.h \
    $(PROJECT_PATH)/components/bluetooth/ble_services/tps/include/esp_tps.h \
    $(PROJECT_PATH)/components/bluetooth/ble_services/uds/include/esp_uds.h \
    $(PROJECT_PATH)/components/bluetooth/ble_services/wss/include/esp_wss.h \
    $(PROJECT_PATH)/components/bus/include/i2s_lcd_driver.h \
    $(PROJECT_PATH)/components/button/include/iot_button.h \
    $(PROJECT_PATH)/components/display/tools/esp_lv_decoder/include/esp_lv_decoder.h \
    $(PROJECT_PATH)/components/display/tools/esp_lv_fs/include/esp_lv_fs.h \
    $(PROJECT_PATH)/components/display/tools/esp_lvgl_adapter/include/esp_lv_adapter.h \
    $(PROJECT_PATH)/components/display/tools/esp_lvgl_adapter/include/esp_lv_adapter_display.h \
    $(PROJECT_PATH)/components/display/tools/esp_lvgl_adapter/include/esp_lv_adapter_input.h \
    $(PROJECT_PATH)/components/display/tools/esp_mmap_assets/include/esp_mmap_assets.h \
    $(PROJECT_PATH)/components/i2c_bus/include/i2c_bus.h \
    $(PROJECT_PATH)/components/iot_eth/include/iot_eth.h \
    $(PROJECT_PATH)/components/ir/ir_learn/include/ir_learn.h \
    $(PROJECT_PATH)/components/keyboard_button/include/keyboard_button.h \
    $(PROJECT_PATH)/components/knob/include/iot_knob.h \
    $(PROJECT_PATH)/components/led/led_indicator/include/led_indicator.h \
    $(PROJECT_PATH)/components/led/lightbulb_driver/include/lightbulb.h \
    $(PROJECT_PATH)/components/motor/esp_sensorless_bldc_control/control/include/bldc_control_param.h \
    $(PROJECT_PATH)/components/motor/esp_sensorless_bldc_control/include/bldc_control.h \
    $(PROJECT_PATH)/components/motor/esp_sensorless_bldc_control/user_cfg/bldc_user_cfg.h \
    $(PROJECT_PATH)/components/motor/servo/include/iot_servo.h \
    $(PROJECT_PATH)/components/mcp-c-sdk/include/esp_mcp_engine.h \
    $(PROJECT_PATH)/components/mcp-c-sdk/include/esp_mcp_mgr.h \
    $(PROJECT_PATH)/components/mcp-c-sdk/include/esp_mcp_tool.h \
    $(PROJECT_PATH)/components/mcp-c-sdk/include/esp_mcp_data.h \
    $(PROJECT_PATH)/components/mcp-c-sdk/include/esp_mcp_property.h \
    $(PROJECT_PATH)/components/openai/include/OpenAI.h \
    $(PROJECT_PATH)/components/sensors/ntc_driver/include/ntc_driver.h \
    $(PROJECT_PATH)/components/sensors/power_measure/include/power_measure.h \
    $(PROJECT_PATH)/components/sensors/power_monitor/ina236/include/ina236.h \
    $(PROJECT_PATH)/components/sensors/sensor_hub/include/hal/humiture_hal.h \
    $(PROJECT_PATH)/components/sensors/sensor_hub/include/hal/imu_hal.h \
    $(PROJECT_PATH)/components/sensors/sensor_hub/include/hal/light_sensor_hal.h \
    $(PROJECT_PATH)/components/sensors/sensor_hub/include/iot_sensor_hub.h \
    $(PROJECT_PATH)/components/sensors/sensor_hub/include/sensor_type.h \
    $(PROJECT_PATH)/components/spi_bus/include/spi_bus.h \
    $(PROJECT_PATH)/components/touch/touch_button_sensor/include/touch_button_sensor.h \
    $(PROJECT_PATH)/components/touch/touch_proximity_sensor/include/touch_proximity_sensor.h \
    $(PROJECT_PATH)/components/touch/touch_slider_sensor/include/touch_slider_sensor.h \
    $(PROJECT_PATH)/components/usb/esp_msc_ota/include/esp_msc_ota.h \
    $(PROJECT_PATH)/components/usb/esp_tinyuf2/esp_tinyuf2.h \
    $(PROJECT_PATH)/components/usb/iot_usbh_cdc/include/iot_usbh_cdc.h \
    $(PROJECT_PATH)/components/usb/iot_usbh_cdc/include/usbh_helper.h \
    $(PROJECT_PATH)/components/usb/usb_device_uac/include/usb_device_uac.h \
    $(PROJECT_PATH)/components/usb/usb_device_uvc/include/usb_device_uvc.h \
    $(PROJECT_PATH)/components/usb/usb_stream/include/usb_stream.h \
    $(PROJECT_PATH)/components/utilities/adc_tp_calibration/include/adc_tp_calibration.h \
    $(PROJECT_PATH)/components/usb/iot_usbh_rndis/include/iot_usbh_rndis.h \
    $(PROJECT_PATH)/components/usb/iot_usbh_ecm/include/iot_usbh_ecm.h \
    $(PROJECT_PATH)/components/usb/iot_usbh_modem/include/iot_usbh_modem.h \
    $(PROJECT_PATH)/components/zero_detection/include/zero_detection.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"

## Enable Section Tags for conditional documentation
##
ENABLED_SECTIONS += DOC_EXCLUDE_HEADER_SECTION  ## To conditionally remove doc sections from IDF source files without affecting documentation in upstream files.
ENABLED_SECTIONS += DOC_SINGLE_GROUP            ## To conditionally remove groups from the documentation and create a 'flat' document without affecting documentation in upstream files.
