|  | 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", | 
|  | ], | 
|  | ) |