load("@fbcode_macros//build_defs:compilation_flags.bzl", "compilation_flags")
load("@fbcode_macros//build_defs:python.bzl", python_modifiers = "python")
load("@fbcode_macros//build_defs/lib:nvcc_build.bzl", "nvcc_build")
load("@fbcode_macros//build_defs/lib:third_party.bzl", "third_party")
load("@prelude//cfg/modifier:set_cfg_modifiers.bzl", "set_cfg_modifiers")

compilation_flags.automatically_managed_warning_flags(
    [
        # This line prevents merge conflicts
        # "-Wduplicate-enum",
        # This line prevents merge conflicts
        # "-Wreorder-init-list",
        # This line prevents merge conflicts
        # "-Wmissing-noreturn",
        # This line prevents merge conflicts
        # "-Wextra",
        # This line prevents merge conflicts
        "-Wunused-value",
        # This line prevents merge conflicts
        # "-Wzero-as-null-pointer-constant",
        # This line prevents merge conflicts
        # "-Wshorten-64-to-32",
        # This line prevents merge conflicts
        # "-Wunused-lambda-capture",
        # This line prevents merge conflicts
        # "-Wdeprecated-copy-with-user-provided-dtor",
        # This line prevents merge conflicts
        # "-Wshadow",
        # This line prevents merge conflicts
        # "-Wmissing-field-initializers",
        # This line prevents merge conflicts
        # "-Wunused-function",
        # This line prevents merge conflicts
        "-Wunused-variable",
        # This line prevents merge conflicts
        # "-Wdeprecated-copy-with-dtor",
        # This line prevents merge conflicts
        # "-Wextra-semi-stmt",
        # This line prevents merge conflicts
        # "-Wunsafe-buffer-usage",
        # This line prevents merge conflicts
        "-Wunused-exception-parameter",
        # This line prevents merge conflicts
        "-Wambiguous-reversed-operator",
        # This line prevents merge conflicts
        "-Wdeprecated-dynamic-exception-spec",
        # This line prevents merge conflicts
        "-Wunused-private-field",
        # This line prevents merge conflicts
        # "-Wdeprecated-this-capture",
        # This line prevents merge conflicts
        # "-Wmissing-prototypes",
        # This line prevents merge conflicts
        # "-Wimplicit-const-int-float-conversion",
        # This line prevents merge conflicts
        # "-Wextra-semi",
        # This line prevents merge conflicts
        "-Wdeprecated-copy-with-user-provided-copy",
        # This line prevents merge conflicts
        # "-Wexceptions",
        # This line prevents merge conflicts
        # "-Wdeprecated",
        # This line prevents merge conflicts
        "-Wmismatched-tags",
        # This line prevents merge conflicts
    ],
    True,
)

python_modifiers.set_opt_by_default(enabled = True)

modifiers_list = third_party.gen_overrides({
    "llvm-fb": "19",
    "python-scientific-stack": "2",
})

modifiers_list.extend([
    "ovr_config//toolchain/nvcc/compile:dist",
    "ovr_config//toolchain/nvcc/compile:dev-mode-native-build-enabled",
])

set_cfg_modifiers(cfg_modifiers = modifiers_list)

nvcc_build.set_nvcc_host_compiler("clang")
