buck_genrule(
    name = "generate_config_h",
    srcs = [
        "jansson_config.h.in",
    ],
    out = "jansson_config.h",
    cmd = "cp $SRCDIR/jansson_config.h.in $OUT",
)

buck_cxx_library(
    name = "config_h",
    header_namespace = "",
    exported_headers = [
        ":generate_config_h",
    ],
    visibility = ["PUBLIC"],
)

cpp_library(
    name = "utf",
    srcs = ["utf.cpp"],
    headers = ["utf.h"],
    deps = [":config_h"],
)

cpp_library(
    name = "jansson",
    srcs = [
        "dump.cpp",
        "error.cpp",
        "load.cpp",
        "memory.cpp",
        "pack_unpack.cpp",
        "strbuffer.cpp",
        "strconv.cpp",
        "value.cpp",
    ],
    headers = [
        "jansson.h",
        "jansson_private.h",
        "strbuffer.h",
    ],
    deps = [
        ":config_h",
        ":utf",
        "@/watchman:headers",
        "@/watchman:string",
    ],
)
