Import("env")

env.Append(
    LINT_SOURCES=[
        "lib/app-scened-template",
        "lib/digital_signal",
        "lib/drivers",
        "lib/flipper_format",
        "lib/infrared",
        "lib/nfc",
        "lib/one_wire",
        "lib/ST25RFAL002",
        "lib/subghz",
        "lib/toolbox",
        "lib/u8g2",
        "lib/update_util",
        "lib/print",
    ],
    SDK_HEADERS=[
        File("#/lib/one_wire/one_wire_host_timing.h"),
        File("#/lib/one_wire/one_wire_host.h"),
        File("#/lib/one_wire/one_wire_slave.h"),
        File("#/lib/one_wire/one_wire_device.h"),
        File("#/lib/one_wire/ibutton/ibutton_worker.h"),
        File("#/lib/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")