# ESP-IDF component manifest for vendored GxEPD2. gxepd2_sources.cmake is
# generated by display.py at codegen time, listing only the driver .cpp
# files the current config actually selected; the GLOB fallback below is
# for building this component outside an ESPHome-generated project.
set(GXEPD2_MANIFEST "${CMAKE_SOURCE_DIR}/src/gxepd2_sources.cmake")
if(EXISTS "${GXEPD2_MANIFEST}")
    include("${GXEPD2_MANIFEST}")
else()
    # Fallback for building outside an ESPHome-generated project.
    file(GLOB_RECURSE GXEPD2_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp")
    list(FILTER GXEPD2_SOURCES EXCLUDE REGEX "/it8951/|GxEPD2_1248")
endif()

idf_component_register(
    SRCS ${GXEPD2_SOURCES}
    # arduino_compat is public: GxEPD2's own public headers (e.g. GxEPD2_BW.h)
    # include <Adafruit_GFX.h>, so consumers compiling those headers (the main
    # "src" component, via gxepd2_display.h) need it on their include path too
    # - a PRIV_INCLUDE_DIRS entry isn't visible outside this component.
    INCLUDE_DIRS "src" "../arduino_compat"
    # ${CMAKE_SOURCE_DIR}/src is the ESPHome-generated main component's source
    # root: arduino_compat/Arduino.h includes "esphome/core/hal.h", which only
    # resolves relative to that directory. Private is enough here - the main
    # component already has its own source root on its include path.
    PRIV_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/src"
    PRIV_REQUIRES driver
)
