# Copyright (c) Meta Platforms, Inc. and affiliates.

load("../../defs.bzl", "zs_cxxlibrary")

oncall("data_compression")

zs_cxxlibrary(
    name = "train",
    srcs = [
        "train.cpp",
    ],
    headers = [
        "train.h",
    ],
    preprocessor_flags = [
        "-DOPENZL_HAS_ML_SELECTOR_TRAINER=1",
    ],
    deps = [
        "../../custom_parsers:custom_parsers",
        "../ml_selector:ml_selector_trainer",
        "ace:automated_compressor_explorer",
        "clustering:clustering_graph_trainer",
        "dict:base_dict_trainer",
        "graph_mutation:graph_mutation",
        "lz:lz_trainer",
    ],
    exported_deps = [
        "..:logger",
        "utils:training_utils",
        ":train_common",
    ],
)

# TODO: Clean up the BUCK rules in this directory
zs_cxxlibrary(
    name = "train_common",
    srcs = [
        "trained_candidate.cpp",
    ],
    headers = [
        "train_exceptions.h",
        "train_params.h",
        "trained_candidate.h",
    ],
    deps = [
        "../../cpp:openzl_cpp",
    ],
)
