load("@rules_cc//cc:defs.bzl", "cc_library")
load("//tools/project:build_defs.bzl", "project")

project(license = "gpl3-https")

genrule(
    name = "public_headers",
    srcs = [
        "//c-toxcore/toxav:toxav.h",
        "//c-toxcore/toxcore:tox.h",
        "//c-toxcore/toxcore:tox_attributes.h",
        "//c-toxcore/toxcore:tox_dispatch.h",
        "//c-toxcore/toxcore:tox_events.h",
        "//c-toxcore/toxcore:tox_log_level.h",
        "//c-toxcore/toxcore:tox_options.h",
        "//c-toxcore/toxcore:tox_private.h",
        "//c-toxcore/toxencryptsave:toxencryptsave.h",
    ],
    outs = [
        "tox/toxav.h",
        "tox/tox.h",
        "tox/tox_attributes.h",
        "tox/tox_dispatch.h",
        "tox/tox_events.h",
        "tox/tox_log_level.h",
        "tox/tox_options.h",
        "tox/tox_private.h",
        "tox/toxencryptsave.h",
    ],
    cmd = """
        cp $(location //c-toxcore/toxav:toxav.h) $(GENDIR)/c-toxcore/tox/toxav.h
        cp $(location //c-toxcore/toxcore:tox.h) $(GENDIR)/c-toxcore/tox/tox.h
        cp $(location //c-toxcore/toxcore:tox_attributes.h) $(GENDIR)/c-toxcore/tox/tox_attributes.h
        cp $(location //c-toxcore/toxcore:tox_dispatch.h) $(GENDIR)/c-toxcore/tox/tox_dispatch.h
        cp $(location //c-toxcore/toxcore:tox_events.h) $(GENDIR)/c-toxcore/tox/tox_events.h
        cp $(location //c-toxcore/toxcore:tox_log_level.h) $(GENDIR)/c-toxcore/tox/tox_log_level.h
        cp $(location //c-toxcore/toxcore:tox_options.h) $(GENDIR)/c-toxcore/tox/tox_options.h
        cp $(location //c-toxcore/toxcore:tox_private.h) $(GENDIR)/c-toxcore/tox/tox_private.h
        cp $(location //c-toxcore/toxencryptsave:toxencryptsave.h) $(GENDIR)/c-toxcore/tox/toxencryptsave.h
    """,
    visibility = ["//visibility:public"],
)

cc_library(
    name = "c-toxcore",
    hdrs = [":public_headers"],
    includes = ["."],
    visibility = ["//visibility:public"],
    deps = [
        "//c-toxcore/toxav",
        "//c-toxcore/toxcore",
        "//c-toxcore/toxencryptsave",
    ],
)
