load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
load("@rules_cc//cc:cc_binary.bzl", "cc_binary")
load("@rules_cc//cc:cc_library.bzl", "cc_library")

copy_file(
    name = "copy_link_jni_md_header",
    src = select({
        "//src/conditions:darwin": "@rules_java//toolchains:jni_md_header-darwin",
        "//src/conditions:freebsd": "@rules_java//toolchains:jni_md_header-freebsd",
        "//src/conditions:openbsd": "@rules_java//toolchains:jni_md_header-openbsd",
        "//src/conditions:windows": "@rules_java//toolchains:jni_md_header-windows",
        "//conditions:default": "@rules_java//toolchains:jni_md_header-linux",
    }),
    out = "jni_md.h",
    allow_symlink = True,
    visibility = ["//src/main/native:__subpackages__"],
)

copy_file(
    name = "copy_link_jni_header",
    src = "@rules_java//toolchains:jni_header",
    out = "jni.h",
    allow_symlink = True,
    visibility = ["//src/main/native:__subpackages__"],
)

filegroup(
    name = "jni_os",
    srcs = select({
        "//src/conditions:darwin": [
            "darwin/file_jni.cc",
            "darwin/fsevents.cc",
            "darwin/sleep_prevention_jni.cc",
            "darwin/system_cpu_speed_monitor_jni.cc",
            "darwin/system_disk_space_monitor_jni.cc",
            "darwin/system_load_advisory_monitor_jni.cc",
            "darwin/system_memory_pressure_jni.cc",
            "darwin/system_network_stats.cc",
            "darwin/system_suspension_monitor_jni.cc",
            "darwin/system_thermal_monitor_jni.cc",
            "darwin/util.cc",
            "darwin/util.h",
        ],
        "//src/conditions:freebsd": ["unix_jni_bsd.cc"],
        "//src/conditions:openbsd": ["unix_jni_bsd.cc"],
        "//conditions:default": ["unix_jni_linux.cc"],
    }),
)

cc_library(
    name = "latin1_jni_path",
    srcs = [
        "latin1_jni_path.cc",
        ":jni.h",
        ":jni_md.h",
    ],
    hdrs = ["latin1_jni_path.h"],
    includes = ["."],  # For jni headers.
    deps = [
        "//src/main/cpp/util:logging",
    ],
)

cc_library(
    name = "blake3_jni",
    srcs = [
        "blake3_jni.cc",
        ":jni.h",
        ":jni_md.h",
    ],
    includes = ["."],  # For jni headers.
    visibility = ["//src/main/native:__subpackages__"],
    deps = [
        "@blake3",
    ],
    alwayslink = 1,
)

cc_binary(
    name = "libunix_jni.so",
    srcs = [
        "process.cc",
        "unix_jni.cc",
        "unix_jni.h",
        ":jni.h",
        ":jni_md.h",
        ":jni_os",
    ],
    copts = [
        "-fPIC",
    ],
    includes = ["."],  # For jni headers.
    linkopts = select({
        "//src/conditions:darwin": [
            "-Wl,-framework,CoreServices",
            "-Wl,-framework,IOKit",
        ],
        "//conditions:default": [],
    }),
    linkshared = 1,
    visibility = ["//src/main/java/com/google/devtools/build/lib/jni:__pkg__"],
    deps = [
        ":blake3_jni",
        ":latin1_jni_path",
        "//src/main/cpp/util:logging",
    ],
)

# TODO(bazel-team): Come up with a way to support platform-specific dynamic
# library extensions.  This is issue #914.
copy_file(
    name = "mac-compat",
    src = "libunix_jni.so",
    out = "libunix_jni.dylib",
    allow_symlink = True,
    visibility = ["//src/main/java/com/google/devtools/build/lib/jni:__pkg__"],
)

filegroup(
    name = "srcs",
    srcs = glob(["**"]) + [
        "//src/main/native/windows:srcs",
    ],
    visibility = ["//src:__pkg__"],
)

filegroup(
    name = "embedded_tools",
    srcs = [
        "BUILD",
        "//src/main/native/windows:embedded_tools",
    ],
    visibility = ["//visibility:public"],
)
