# Copyright (c) 2017-present, Facebook, Inc.
#
# This source code is licensed under the Apache 2.0 license found in the
# LICENSE file in the root directory of this source tree.

load(
    "//tools/build_defs/oss:litho_defs.bzl",
    "LITHO_ANDROIDSUPPORT_TARGET",
    "LITHO_ANNOTATIONS_TARGET",
    "LITHO_CONFIG_TARGET",
    "LITHO_INFERANNOTATIONS_TARGET",
    "LITHO_JSR_TARGET",
    "LITHO_PERFBOOST_TARGET",
    "LITHO_PROGUARDANNOTATIONS_TARGET",
    "LITHO_PROGUARD_ANNOTATIONS_TARGET",
    "LITHO_RENDERCORE_INCREMENTAL_MOUNT_TARGET",
    "LITHO_RENDERCORE_TARGET",
    "LITHO_RENDERCORE_TRANSITIONS_TARGET",
    "LITHO_RENDERCORE_VISIBILITY_TARGET",
    "LITHO_RES_TARGET",
    "LITHO_STATS_TARGET",
    "LITHO_TEST_TARGET",
    "LITHO_VIEWCOMPAT_TARGET",
    "LITHO_VISIBILITY",
    "LITHO_YOGA_FACTORY_TARGET",
    "litho_android_library",
    "make_dep_path",
)

litho_android_library(
    name = "litho",
    srcs = glob([
        "*.java",
        "animation/*.java",
        "choreographercompat/*.java",
        "dataflow/**/*.java",
        "drawable/*.java",
        "equivalence/*.java",
    ]),
    autoglob = False,
    is_androidx = True,
    labels = ["supermodule:android/default/litho.core"],
    provided_deps = [
        LITHO_ANDROIDSUPPORT_TARGET,
        LITHO_JSR_TARGET,
        LITHO_PROGUARD_ANNOTATIONS_TARGET,
    ],
    required_for_source_only_abi = True,
    tests = [
        LITHO_TEST_TARGET,
        make_dep_path("litho-it-powermock/src/test/java/com/facebook/litho:litho"),
        make_dep_path("litho-it-spec/src/test/java/com/facebook/litho:litho"),
    ],
    visibility = LITHO_VISIBILITY,
    deps = [
        "//fbandroid/third-party/java/infer-annotations:infer-annotations",
        "//fbandroid/third-party/java/jsr-305:jsr-305",
        LITHO_INFERANNOTATIONS_TARGET,
        LITHO_PERFBOOST_TARGET,
        LITHO_RES_TARGET,
        LITHO_STATS_TARGET,
        LITHO_VIEWCOMPAT_TARGET,
        LITHO_YOGA_FACTORY_TARGET,
    ],
    exported_deps = [
        LITHO_ANNOTATIONS_TARGET,
        LITHO_CONFIG_TARGET,
        LITHO_PERFBOOST_TARGET,
        LITHO_PROGUARDANNOTATIONS_TARGET,
        LITHO_RENDERCORE_TARGET,
        LITHO_RENDERCORE_INCREMENTAL_MOUNT_TARGET,
        LITHO_RENDERCORE_VISIBILITY_TARGET,
        LITHO_RENDERCORE_TRANSITIONS_TARGET,
        make_dep_path("litho-core/src/main/java/com/facebook/litho/internal:internal"),
    ],
)
