load("@io_bazel_rules_scala//scala:scala.bzl", "scala_library") load("@io_bazel_rules_scala//scala_proto:scala_proto.bzl", "scalapb_proto_library") load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_proto_library") load("@rules_proto//proto:defs.bzl", "proto_library") genrule( name = "copy_link_jni_md_header", srcs = select({ "@atox//bazel/tools/config:linux": ["@bazel_tools//tools/jdk:jni_md_header-linux"], "@atox//bazel/tools/config:osx": ["@bazel_tools//tools/jdk:jni_md_header-darwin"], "@atox//bazel/tools/config:windows": ["@bazel_tools//tools/jdk:jni_md_header-windows"], }), outs = ["cpp/src/jni_md.h"], cmd = "cp -f $< $@", ) genrule( name = "copy_link_jni_header", srcs = ["@bazel_tools//tools/jdk:jni_header"], outs = ["cpp/src/jni.h"], cmd = "cp -f $< $@", ) proto_library( name = "jni_proto", srcs = [ "src/main/protobuf/Av.proto", "src/main/protobuf/Core.proto", "src/main/protobuf/ProtoLog.proto", ], ) cc_proto_library( name = "jni_cc_proto", deps = [":jni_proto"], ) scalapb_proto_library( name = "jni_scala_proto", deps = [":jni_proto"], ) cc_binary( name = "libtox4j-c.so", srcs = glob([ "cpp/src/**/*.cpp", "cpp/src/**/*.h", ]) + [ ":cpp/src/jni.h", ":cpp/src/jni_md.h", ], copts = [ "-DHAVE_TO_STRING", "-std=c++14", ], includes = [ "cpp/src", "src/main/protobuf", ], linkopts = select({ "@atox//bazel/tools/config:linux": ["-Wl,--version-script,$(location cpp/src/libtox4j-c.ld)"], "@atox//bazel/tools/config:osx": [], "@atox//bazel/tools/config:windows": [], }), linkshared = True, visibility = ["//visibility:public"], deps = [ "cpp/src/libtox4j-c.ld", ":jni_cc_proto", "@c-toxcore", ], ) scala_library( name = "jvm-toxcore-c", srcs = glob([ "src/main/java/**/*.java", "src/main/java/**/*.scala", ]), visibility = ["//visibility:public"], deps = [ ":jni_scala_proto", "@jvm-macros", "@jvm-toxcore-api", "@maven//:com_google_guava_guava", "@maven//:com_typesafe_scala_logging_scala_logging_2_11", "@maven//:org_jetbrains_annotations", "@maven//:org_slf4j_slf4j_api", ], )