From 5246e52be3bf4427791000355cbef86626b43eca Mon Sep 17 00:00:00 2001 From: Fabian Meumertzheim Date: Fri, 29 Jan 2021 16:20:19 +0100 Subject: Initial commit --- third_party/BUILD.bazel | 4 ++ third_party/gflags-use-double-dash-args.patch | 11 ++++++ third_party/jni/BUILD.bazel | 48 ++++++++++++++++++++++ third_party/libjpeg_turbo.BUILD | 57 +++++++++++++++++++++++++++ 4 files changed, 120 insertions(+) create mode 100644 third_party/BUILD.bazel create mode 100644 third_party/gflags-use-double-dash-args.patch create mode 100644 third_party/jni/BUILD.bazel create mode 100644 third_party/libjpeg_turbo.BUILD (limited to 'third_party') 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"], +) -- cgit v1.2.3