Skip to content

Commit d86b71e

Browse files
Compile zstd-jni from sources
1 parent 04e4813 commit d86b71e

18 files changed

+99
-21
lines changed

WORKSPACE

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,16 @@ dist_http_archive(
306306
patch_cmds_win = EXPORT_WORKSPACE_IN_BUILD_FILE_WIN,
307307
)
308308

309+
http_archive(
310+
name = "zstd-jni",
311+
urls = [
312+
"https://github.com/luben/zstd-jni/archive/v1.5.0-4.zip",
313+
],
314+
sha256 = "d320d59b89a163c5efccbe4915ae6a49883ce653cdc670643dfa21c6063108e4",
315+
build_file = "//third_party:zstd-jni/zstd-jni.BUILD",
316+
strip_prefix = "zstd-jni-1.5.0-4"
317+
)
318+
309319
http_archive(
310320
name = "org_snakeyaml",
311321
build_file_content = """

src/main/java/com/google/devtools/build/lib/remote/zstd/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ java_library(
1212
srcs = glob(["*.java"]),
1313
deps = [
1414
"//third_party/protobuf:protobuf_java",
15-
"//third_party:zstd-jni",
15+
"@zstd-jni//:zstd-jni",
1616
],
1717
)

src/test/java/com/google/devtools/build/lib/remote/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@ java_test(
103103
"//third_party:netty",
104104
"//third_party:rxjava3",
105105
"//third_party:truth",
106-
"//third_party:zstd-jni",
107106
"//third_party/grpc:grpc-jar",
108107
"//third_party/protobuf:protobuf_java",
109108
"//third_party/protobuf:protobuf_java_util",
@@ -116,5 +115,6 @@ java_test(
116115
"@remoteapis//:build_bazel_remote_execution_v2_remote_execution_java_grpc",
117116
"@remoteapis//:build_bazel_remote_execution_v2_remote_execution_java_proto",
118117
"@remoteapis//:build_bazel_semver_semver_java_proto",
118+
"@zstd-jni//:zstd-jni",
119119
],
120120
)

third_party/BUILD

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -142,25 +142,6 @@ distrib_java_import(
142142
jars = ["apache_commons_compress/apache-commons-compress-1.19.jar"],
143143
)
144144

145-
distrib_java_import(
146-
name = "zstd-jni",
147-
enable_distributions = ["debian"],
148-
jars = select({
149-
"//src/conditions:linux_aarch64": ["zstd-jni/zstd-jni-1.5.0-4-linux_aarch64.jar"],
150-
"//src/conditions:linux_arm": ["zstd-jni/zstd-jni-1.5.0-4-linux_arm.jar"],
151-
"//src/conditions:linux_ppc": ["zstd-jni/zstd-jni-1.5.0-4-linux_ppc64.jar"],
152-
"//src/conditions:linux_ppc64le": ["zstd-jni/zstd-jni-1.5.0-4-linux_ppc64le.jar"],
153-
"//src/conditions:linux_s390x": ["zstd-jni/zstd-jni-1.5.0-4-linux_s390x.jar"],
154-
"//src/conditions:linux_mips64": ["zstd-jni/zstd-jni-1.5.0-4-linux_mips64.jar"],
155-
"//src/conditions:linux_x86_64": ["zstd-jni/zstd-jni-1.5.0-4-linux_amd64.jar"],
156-
"//src/conditions:darwin_x86_64": ["zstd-jni/zstd-jni-1.5.0-4-darwin_x86_64.jar"],
157-
"//src/conditions:darwin_arm64": ["zstd-jni/zstd-jni-1.5.0-4-darwin_aarch64.jar"],
158-
"//src/conditions:freebsd": ["zstd-jni/zstd-jni-1.5.0-4-freebsd_amd64.jar"],
159-
"//src/conditions:windows": ["zstd-jni/zstd-jni-1.5.0-4-win_amd64.jar"],
160-
"//conditions:default": ["zstd-jni/zstd-jni-1.5.0-4.jar"],
161-
})
162-
)
163-
164145
distrib_java_import(
165146
name = "apache_commons_logging",
166147
enable_distributions = ["debian"],
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-6.46 MB
Binary file not shown.

third_party/zstd-jni/zstd-jni.BUILD

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
cc_binary(
2+
name = "libzstd-jni.so",
3+
srcs = glob([
4+
"src/main/native/**/*.c",
5+
"src/main/native/**/*.h",
6+
]) + select({
7+
"@io_bazel//src/conditions:windows": [
8+
"src/windows/include/jni_md.h",
9+
"jni/jni.h",
10+
],
11+
"//conditions:default": [
12+
"jni/jni_md.h",
13+
"jni/jni.h",
14+
]
15+
}),
16+
copts = [
17+
"-std=c99",
18+
"-Wundef",
19+
"-Wshadow",
20+
"-Wcast-align",
21+
"-Wstrict-prototypes",
22+
"-Wno-unused-variable",
23+
"-Wpointer-arith",
24+
"-flto",
25+
] + select({
26+
"@io_bazel//src/conditions:darwin": [],
27+
"@io_bazel//src/conditions:windows": [
28+
"-static-libgcc",
29+
"-Wl,--kill-at",
30+
],
31+
"//conditions:default": [
32+
"-static-libgcc",
33+
],
34+
}),
35+
linkshared = 1,
36+
includes = select({
37+
"@io_bazel//src/conditions:windows": ["src/windows/include"],
38+
"//conditions:default": [],
39+
}) + [
40+
"jni",
41+
"src/main/native",
42+
"src/main/native/common",
43+
],
44+
local_defines = [
45+
"ZSTD_LEGACY_SUPPORT=4",
46+
"ZSTD_MULTITHREAD=1",
47+
] + select({
48+
"@io_bazel//src/conditions:windows": ["_JNI_IMPLEMENTATION_"],
49+
"//conditions:default": [],
50+
}),
51+
)
52+
53+
54+
genrule(
55+
name = "version-java",
56+
cmd_bash = 'echo "package com.github.luben.zstd.util;\n\npublic class ZstdVersion {\n\tpublic static final String VERSION = \\"$$(cat $<)\\";\n}" > $@',
57+
cmd_ps = '$$version = (Get-Content $<) -join ""; echo -n "package com.github.luben.zstd.util;\n\npublic class ZstdVersion {\n\tpublic static final String VERSION = `"$${version}`";\n}\n" | Set-Content -NoNewline $@',
58+
srcs = ["version"],
59+
outs = ["ZstdVersion.java"],
60+
)
61+
62+
genrule(
63+
name = "native-patched",
64+
srcs = ["src/main/java/com/github/luben/zstd/util/Native.java"],
65+
cmd_bash = "sed 's/String resourceName = resourceName();/String resourceName = \"\\/libzstd-jni.so\";/' $< > $@",
66+
cmd_ps = "(Get-Content $<) -Replace 'String resourceName = resourceName\\(\\);', 'String resourceName = \"/libzstd-jni.so\";' | Set-Content $@",
67+
outs = ["Native.java"],
68+
)
69+
70+
java_library(
71+
name = "zstd-jni",
72+
srcs = glob(
73+
[
74+
"src/main/java/**/*.java",
75+
],
76+
exclude = [
77+
"src/main/java/com/github/luben/zstd/util/Native.java",
78+
],
79+
) + [
80+
":native-patched",
81+
":version-java",
82+
],
83+
resources = [":libzstd-jni.so"],
84+
visibility = [
85+
"//visibility:public",
86+
],
87+
)

0 commit comments

Comments
 (0)