load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
load("//tools/build_rules:template.bzl", "jinja2_template")

cc_library(
    name = "simulated_constants_sender",
    testonly = True,
    srcs = ["simulated_constants_sender.h"],
    hdrs = ["simulated_constants_sender.cc"],
    deps = [
        ":constants_fbs",
        ":constants_list_fbs",
        "//aos/events:simulated_event_loop",
        "//aos/testing:path",
        "//frc971/constants:constants_sender_lib",
    ],
)

jinja2_template(
    name = "constants.json",
    src = "constants.jinja2.json",
    includes = ["//y2023/vision/calib_files"] + ["7971.json"],
    parameters = {},
    visibility = ["//visibility:public"],
)

flatbuffer_cc_library(
    name = "constants_fbs",
    srcs = ["constants.fbs"],
    gen_reflections = True,
    visibility = ["//visibility:public"],
    deps = ["//frc971/vision:calibration_fbs"],
)

flatbuffer_cc_library(
    name = "constants_list_fbs",
    srcs = ["constants_list.fbs"],
    gen_reflections = True,
    visibility = ["//visibility:public"],
    deps = [":constants_fbs"],
)

cc_binary(
    name = "constants_sender",
    srcs = ["constants_sender.cc"],
    visibility = ["//visibility:public"],
    deps = [
        ":constants_fbs",
        ":constants_list_fbs",
        "//aos:init",
        "//aos/events:shm_event_loop",
        "//aos/testing:path",
        "//frc971/constants:constants_sender_lib",
    ],
)
