Import("env")

env.Append(
    LINT_SOURCES=[
        Dir("app-scened-template"),
        Dir("digital_signal"),
        Dir("drivers"),
        Dir("flipper_format"),
        Dir("infrared"),
        Dir("nfc"),
        Dir("one_wire"),
        Dir("ST25RFAL002"),
        Dir("subghz"),
        Dir("toolbox"),
        Dir("u8g2"),
        Dir("update_util"),
        Dir("print"),
    ],
    SDK_HEADERS=[
        File("one_wire/one_wire_host_timing.h"),
        File("one_wire/one_wire_host.h"),
        File("one_wire/one_wire_slave.h"),
        File("one_wire/one_wire_device.h"),
        File("one_wire/ibutton/ibutton_worker.h"),
        File("one_wire/maxim_crc.h"),
    ],
)

env.Append(
    CPPPATH=[
        "#/",
        "#/lib",  # TODO: remove!
        "#/lib/mlib",
        # Ugly hack
        Dir("../assets/compiled"),
    ],
    CPPDEFINES=[
        '"M_MEMORY_FULL(x)=abort()"',
    ],
)


# drivers
# fatfs
# flipper_format
# infrared
# littlefs
# subghz
# toolbox
# misc
#    digital_signal
#    fnv1a-hash
#    micro-ecc
#    microtar
#    nfc
#    one_wire
#    qrcode
#    u8g2
#    update_util
#    heatshrink
#    nanopb
# apps
#    app-scened-template
#    callback-connector
#    app-template


libs = env.BuildModules(
    [
        "STM32CubeWB",
        "freertos",
        "print",
        "microtar",
        "toolbox",
        "ST25RFAL002",
        "libusb_stm32",
        "drivers",
        "fatfs",
        "flipper_format",
        "infrared",
        "littlefs",
        "mbedtls",
        "subghz",
        "nfc",
        "appframe",
        "misc",
        "lfrfid",
        "flipper_application",
    ],
)

Return("libs")
