load("//tools/build_defs/oss:rn_defs.bzl", "ANDROID", "FBJNI_TARGET", "react_native_dep", "react_native_target", "react_native_xplat_target", "rn_android_library", "rn_xplat_cxx_library")

rn_android_library(
    name = "jscexecutor",
    srcs = glob(["*.java"]),
    visibility = [
        "PUBLIC",
    ],
    deps = [
        ":jni",
        react_native_dep("libraries/soloader/java/com/facebook/soloader:soloader"),
        react_native_target("java/com/facebook/react/bridge:bridge"),
    ],
)

rn_xplat_cxx_library(
    name = "jni",
    srcs = glob(["*.cpp"]),
    headers = glob(["*.h"]),
    header_namespace = "",
    compiler_flags = ["-fexceptions"],
    fbandroid_allow_jni_merging = True,
    platforms = ANDROID,
    soname = "libjscexecutor.$(ext)",
    visibility = [
        react_native_target("java/com/facebook/react/jscexecutor:jscexecutor"),
    ],
    deps = [
        "xplat//folly:molly",
        FBJNI_TARGET,
        react_native_target("jni/react/jni:jni"),
        react_native_xplat_target("jsi:JSCRuntime"),
        react_native_xplat_target("jsiexecutor:jsiexecutor"),
    ],
)
