91 lines
2.3 KiB
INI
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",
|
|
],
|
|
)
|