genrule( name = "copy_link_jni_md_header", srcs = select({ "//src/conditions:darwin": ["@bazel_tools//tools/jdk:jni_md_header-darwin"], "//src/conditions:freebsd": ["@bazel_tools//tools/jdk:jni_md_header-freebsd"], "//src/conditions:openbsd": ["@bazel_tools//tools/jdk:jni_md_header-openbsd"], "//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 $< $@", visibility = ["//src/main/native:__subpackages__"], ) genrule( name = "copy_link_jni_header", srcs = ["@bazel_tools//tools/jdk:jni_header"], outs = ["jni.h"], cmd = "cp -f $< $@", visibility = ["//src/main/native:__subpackages__"], ) filegroup( name = "jni_os", srcs = select({ "//src/conditions:darwin": [ "darwin/file_jni.cc", "darwin/fsevents.cc", "darwin/sleep_prevention_jni.cc", "darwin/system_cpu_speed_monitor_jni.cc", "darwin/system_disk_space_monitor_jni.cc", "darwin/system_load_advisory_monitor_jni.cc", "darwin/system_memory_pressure_jni.cc", "darwin/system_network_stats.cc", "darwin/system_suspension_monitor_jni.cc", "darwin/system_thermal_monitor_jni.cc", "darwin/util.cc", "darwin/util.h", ], "//src/conditions:freebsd": ["unix_jni_bsd.cc"], "//src/conditions:openbsd": ["unix_jni_bsd.cc"], "//conditions:default": ["unix_jni_linux.cc"], }), ) cc_library( name = "latin1_jni_path", srcs = [ "latin1_jni_path.cc", ":jni.h", ":jni_md.h", ], hdrs = ["latin1_jni_path.h"], includes = ["."], # For jni headers. ) cc_library( name = "blake3_jni", srcs = [ "blake3_jni.cc", ":jni.h", ":jni_md.h", ], includes = ["."], # For jni headers. visibility = ["//src/main/native:__subpackages__"], deps = [ "@blake3", ], alwayslink = 1, ) cc_binary( name = "libunix_jni.so", srcs = [ "macros.h", "process.cc", "unix_jni.cc", "unix_jni.h", ":jni.h", ":jni_md.h", ":jni_os", ], copts = [ "-fPIC", "-DBLAZE_JAVA_CPU=\"k8\"", ], includes = ["."], # For jni headers. linkopts = select({ "//src/conditions:darwin": [ "-Wl,-framework,CoreServices", "-Wl,-framework,IOKit", ], "//conditions:default": [], }), linkshared = 1, visibility = ["//src/main/java/com/google/devtools/build/lib/jni:__pkg__"], deps = [ ":blake3_jni", ":latin1_jni_path", "//src/main/cpp/util:logging", "//src/main/cpp/util:md5", "//src/main/cpp/util:port", ], ) # TODO(bazel-team): Come up with a way to support platform-specific dynamic # library extensions. This is issue #914. genrule( name = "mac-compat", srcs = ["libunix_jni.so"], outs = ["libunix_jni.dylib"], cmd = "cp $< $@", output_to_bindir = 1, visibility = ["//src/main/java/com/google/devtools/build/lib/jni:__pkg__"], ) filegroup( name = "srcs", srcs = glob(["**"]) + [ "//src/main/native/windows:srcs", ], visibility = ["//src:__pkg__"], ) filegroup( name = "embedded_tools", srcs = [ "BUILD", "//src/main/native/windows:embedded_tools", ], visibility = ["//visibility:public"], )