genrule(
    name = "copy_link_jni_md_header",
    srcs = select({
        "@bazel_tools//src/conditions:darwin": ["@bazel_tools//tools/jdk:jni_md_header-darwin"],
        "@bazel_tools//src/conditions:freebsd": ["@bazel_tools//tools/jdk:jni_md_header-freebsd"],
        "@bazel_tools//src/conditions:openbsd": ["@bazel_tools//tools/jdk:jni_md_header-openbsd"],
        "@bazel_tools//src/conditions:windows": ["@bazel_tools//tools/jdk:jni_md_header-windows"],
        "//conditions:default": ["@bazel_tools//tools/jdk:jni_md_header-linux"],
    }),
    outs = ["jni_md.h"],
    cmd = "cp -f $< $@",
)

genrule(
    name = "copy_link_jni_header",
    srcs = ["@bazel_tools//tools/jdk:jni_header"],
    outs = ["jni.h"],
    cmd = "cp -f $< $@",
)

cc_binary(
    name = "libzstd-jni.so",
    srcs = glob([
        "src/main/native/**/*.c",
        "src/main/native/**/*.h",
    ]) + [
        ":jni_md.h",
        ":jni.h",
    ] + select({
        "@bazel_tools//src/conditions:windows": [],
        "//conditions:default": glob(["src/main/native/**/*.S"]),
    }),
    copts = select({
        "@bazel_tools//src/conditions:windows": [],
        "@bazel_tools//src/conditions:darwin": [
            "-std=c99",
            "-Wno-unused-variable",
            "-Wno-sometimes-uninitialized",
        ],
        "//conditions:default": [
            "-std=c99",
            "-Wno-unused-variable",
            "-Wno-maybe-uninitialized",
            "-Wno-sometimes-uninitialized",
        ]
    }),
    linkshared = 1,
    includes = [
        ".",  # For jni headers.
        "src/main/native",
        "src/main/native/common",
    ],
    local_defines = [
        "ZSTD_LEGACY_SUPPORT=4",
        "ZSTD_MULTITHREAD=1",
    ] + select({
        "@bazel_tools//src/conditions:windows": ["_JNI_IMPLEMENTATION_"],
        "//conditions:default": [],
    }),
)


genrule(
    name = "version-java",
    cmd_bash = 'echo "package com.github.luben.zstd.util;\n\npublic class ZstdVersion {\n\tpublic static final String VERSION = \\"$$(cat $<)\\";\n}" > $@',
    cmd_ps = '$$PSDefaultParameterValues.Remove("*:Encoding"); $$version = (Get-Content $<) -join ""; Set-Content -NoNewline -Path $@ -Value "package com.github.luben.zstd.util;\n\npublic class ZstdVersion {\n\tpublic static final String VERSION = `"$${version}`";\n}\n"',
    srcs = ["version"],
    outs = ["ZstdVersion.java"],
)

java_library(
    name = "zstd-jni",
    srcs = glob([
        "src/main/java/**/*.java",
    ]) + [
        ":version-java",
    ],
    resources = [":libzstd-jni.so"],
    visibility = [
        "//visibility:public",
    ],
)
