load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")

package(features = ["layering_check"])

CIMPLE_FILES = [
    "//c-toxcore/toxav:cimple_files",
    "//c-toxcore/toxcore:cimple_files",
    "//c-toxcore/toxencryptsave:cimple_files",
]

sh_test(
    name = "cimple_test",
    size = "small",
    srcs = ["//hs-tokstyle/tools:check-cimple"],
    args = ["$(locations %s)" % f for f in CIMPLE_FILES] + [
        "-Wno-boolean-return",
        "-Wno-callback-names",
        "-Wno-callgraph",
        "-Wno-enum-names",
        "-Wno-type-check",
        "+RTS",
        "-N3",
        "-RTS",
    ],
    data = CIMPLE_FILES,
    tags = ["haskell"],
)

sh_test(
    name = "cimplefmt_test",
    size = "small",
    srcs = ["//hs-cimple/tools:cimplefmt"],
    args = ["--reparse"] + ["$(locations %s)" % f for f in CIMPLE_FILES],
    data = CIMPLE_FILES,
    tags = ["haskell"],
)

cc_library(
    name = "misc_tools",
    testonly = 1,
    srcs = ["misc_tools.c"],
    hdrs = ["misc_tools.h"],
    visibility = ["//c-toxcore:__subpackages__"],
    deps = [
        "//c-toxcore/toxcore:ccompat",
        "//c-toxcore/toxcore:tox",
        "@libsodium",
    ],
)

cc_binary(
    name = "Messenger_test",
    testonly = 1,
    srcs = ["Messenger_test.c"],
    deps = [
        ":misc_tools",
        "//c-toxcore/toxcore:Messenger",
        "//c-toxcore/toxcore:ccompat",
        "//c-toxcore/toxcore:mono_time",
    ],
)
