Files
coco 7846a45f2c a
2026-07-03 15:47:27 +08:00

91 lines
2.3 KiB
INI

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",
],
)