set(headers
    src/accessorinterface.h
    src/actioninterface.h
    src/changevaluedisplay.h
    src/changevaluedisplay_bool.h
    src/changevaluedisplay_daylightsavingmode.h
    src/changevaluedisplay_sntp_sync_mode_t.h
    src/checkboxicon.h
    src/colorinterface.h
    src/display.h
    src/displaywithtitle.h
    src/fontinterface.h
    src/graphdisplay.h
    src/icon.h
    src/iconinterface.h
    src/menudisplay.h
    src/menuitem.h
    src/richtextrenderer.h
    src/screenmanager.h
    src/splitgraphdisplay.h
    src/tftinstance.h
    src/textinterface.h
    src/actions/backproxyaction.h
    src/actions/dummyaction.h
    src/actions/setvalueaction.h
    src/actions/switchscreenaction.h
    src/actions/toggleboolaction.h
    src/icons/back.h
    src/icons/checked.h
    src/icons/unchecked.h
    src/widgets/graph.h
    src/widgets/label.h
    src/widgets/progressbar.h
    src/widgets/reverseprogressbar.h
    src/widgets/verticalmeter.h
    src/widgets/vumeter.h
)

set(sources
    src/changevaluedisplay.cpp
    src/changevaluedisplay_bool.cpp
    src/changevaluedisplay_daylightsavingmode.cpp
    src/changevaluedisplay_sntp_sync_mode_t.cpp
    src/display.cpp
    src/displaywithtitle.cpp
    src/graphdisplay.cpp
    src/menudisplay.cpp
    src/screenmanager.cpp
    src/splitgraphdisplay.cpp
    src/richtextrenderer.cpp
    src/tftinstance.cpp
    src/icons/back.cpp
    src/icons/checked.cpp
    src/icons/unchecked.cpp
    src/widgets/label.cpp
    src/widgets/progressbar.cpp
    src/widgets/reverseprogressbar.cpp
    src/widgets/verticalmeter.cpp
    src/widgets/vumeter.cpp
)

set(dependencies
    cpputils
    cxx-ring-buffer
    espchrono
    espcpputils
    expected
    fmt
    TFT_eSPI
)

idf_component_register(
    INCLUDE_DIRS
        src
    SRCS
        ${headers}
        ${sources}
    REQUIRES
        ${dependencies}
)

target_compile_options(${COMPONENT_TARGET}
    PRIVATE
        -fstack-reuse=all
        -fstack-protector-all
        -Wno-unused-function
        -Wno-deprecated-declarations
        -Wno-missing-field-initializers
        -Wno-parentheses
)
