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