aboutsummaryrefslogtreecommitdiff
path: root/third_party
diff options
context:
space:
mode:
authorFabian Meumertzheim <meumertzheim@code-intelligence.com>2021-01-29 16:20:19 +0100
committerFabian Meumertzheim <meumertzheim@code-intelligence.com>2021-02-09 17:20:51 +0100
commit5246e52be3bf4427791000355cbef86626b43eca (patch)
treee0683ad15664f2c3deecf3a6ce8c56f2a9597d85 /third_party
downloadjazzer-api-5246e52be3bf4427791000355cbef86626b43eca.tar.gz
Initial commit
Diffstat (limited to 'third_party')
-rw-r--r--third_party/BUILD.bazel4
-rw-r--r--third_party/gflags-use-double-dash-args.patch11
-rw-r--r--third_party/jni/BUILD.bazel48
-rw-r--r--third_party/libjpeg_turbo.BUILD57
4 files changed, 120 insertions, 0 deletions
diff --git a/third_party/BUILD.bazel b/third_party/BUILD.bazel
new file mode 100644
index 00000000..e4e22821
--- /dev/null
+++ b/third_party/BUILD.bazel
@@ -0,0 +1,4 @@
+exports_files([
+ "gflags-use-double-dash-args.patch",
+ "libjpeg_turbo.BUILD",
+])
diff --git a/third_party/gflags-use-double-dash-args.patch b/third_party/gflags-use-double-dash-args.patch
new file mode 100644
index 00000000..554b41bd
--- /dev/null
+++ b/third_party/gflags-use-double-dash-args.patch
@@ -0,0 +1,11 @@
+--- src/gflags_reporting.cc
++++ src/gflags_reporting.cc
+@@ -118,7 +118,7 @@
+ // Goes to some trouble to make pretty line breaks.
+ string DescribeOneFlag(const CommandLineFlagInfo& flag) {
+ string main_part;
+- SStringPrintf(&main_part, " -%s (%s)",
++ SStringPrintf(&main_part, " --%s (%s)",
+ flag.name.c_str(),
+ flag.description.c_str());
+ const char* c_string = main_part.c_str();
diff --git a/third_party/jni/BUILD.bazel b/third_party/jni/BUILD.bazel
new file mode 100644
index 00000000..4d5fdd00
--- /dev/null
+++ b/third_party/jni/BUILD.bazel
@@ -0,0 +1,48 @@
+cc_library(
+ name = "jni",
+ visibility = ["//visibility:public"],
+ deps = [
+ ":jni_headers",
+ ":libjvm",
+ ],
+)
+
+cc_library(
+ name = "jni_headers_only",
+ visibility = ["//visibility:public"],
+ deps = [
+ ":jni_headers",
+ ],
+)
+
+genrule(
+ name = "jni_md_header",
+ srcs = select({
+ "@platforms//os:osx": ["@bazel_tools//tools/jdk:jni_md_header-darwin"],
+ "@platforms//os: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 = "jni_header",
+ srcs = ["@bazel_tools//tools/jdk:jni_header"],
+ outs = ["jni.h"],
+ cmd = "cp -f $< $@",
+)
+
+cc_import(
+ name = "jni_headers",
+ hdrs = [
+ ":jni_header",
+ ":jni_md_header",
+ ],
+)
+
+cc_import(
+ name = "libjvm",
+ interface_library = "@local_jdk//:lib/server/libjvm.so",
+ system_provided = True,
+)
diff --git a/third_party/libjpeg_turbo.BUILD b/third_party/libjpeg_turbo.BUILD
new file mode 100644
index 00000000..cb05e1b1
--- /dev/null
+++ b/third_party/libjpeg_turbo.BUILD
@@ -0,0 +1,57 @@
+load("@rules_foreign_cc//tools/build_defs:cmake.bzl", "cmake_external")
+load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
+load("@bazel_skylib//rules:select_file.bzl", "select_file")
+
+filegroup(
+ name = "all_files",
+ srcs = glob(["**"]),
+)
+
+filegroup(
+ name = "java_files",
+ srcs = glob(["java/org/libjpegturbo/turbojpeg/*.java"]),
+)
+
+cmake_external(
+ name = "libjpeg_turbo",
+ cache_entries = {
+ "CMAKE_BUILD_TYPE": "Release",
+ "CMAKE_C_COMPILER": "clang",
+ "CMAKE_C_FLAGS": "-fsanitize=address,fuzzer-no-link",
+ "CMAKE_SHARED_LINKER_FLAGS": "-fsanitize=address,fuzzer-no-link",
+ "WITH_JAVA": "1",
+ },
+ lib_source = ":all_files",
+ shared_libraries = [
+ "libjpeg.so",
+ "libturbojpeg.so",
+ ],
+)
+
+select_file(
+ name = "libturbojpeg_so",
+ srcs = ":libjpeg_turbo",
+ subpath = "lib/libturbojpeg.so",
+)
+
+copy_file(
+ name = "turbojpeg_native",
+ src = ":libturbojpeg_so",
+ out = "libturbojpeg.so",
+ visibility = ["//visibility:public"],
+)
+
+genrule(
+ name = "generate_jni_loader",
+ outs = ["TJLoader.java"],
+ cmd = "echo 'package org.libjpegturbo.turbojpeg; final class TJLoader { static void load() { System.loadLibrary(\"turbojpeg\"); }}' > $@",
+)
+
+java_library(
+ name = "turbojpeg_java",
+ srcs = [
+ ":generate_jni_loader",
+ ":java_files",
+ ],
+ visibility = ["//visibility:public"],
+)