mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
[bazel] Add macros to build jni code and java tests (#7693)
This commit is contained in:
1
.github/workflows/bazel.yml
vendored
1
.github/workflows/bazel.yml
vendored
@@ -57,6 +57,7 @@ jobs:
|
||||
matrix:
|
||||
include:
|
||||
- { name: "Linux (native)", os: ubuntu-24.04, action: "test", config: "--config=linux", }
|
||||
- { name: "Linux (systemcore)", os: ubuntu-24.04, action: "build", config: "--config=systemcore", }
|
||||
name: "${{ matrix.name }}"
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
|
||||
@@ -14,6 +14,7 @@ modifiableFileExclude {
|
||||
thirdparty/
|
||||
\.patch$
|
||||
gradlew
|
||||
BUILD.bazel
|
||||
}
|
||||
|
||||
generatedFileExclude {
|
||||
|
||||
67
WORKSPACE
67
WORKSPACE
@@ -13,6 +13,7 @@ load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")
|
||||
rules_jvm_external_deps()
|
||||
|
||||
load("@rules_jvm_external//:defs.bzl", "maven_install")
|
||||
load("@rules_jvm_external//:specs.bzl", "maven")
|
||||
|
||||
maven_artifacts = [
|
||||
"org.ejml:ejml-simple:0.43.1",
|
||||
@@ -21,6 +22,72 @@ maven_artifacts = [
|
||||
"com.fasterxml.jackson.core:jackson-databind:2.15.2",
|
||||
"us.hebi.quickbuf:quickbuf-runtime:1.3.3",
|
||||
"com.google.code.gson:gson:2.10.1",
|
||||
maven.artifact(
|
||||
"org.junit.jupiter",
|
||||
"junit-jupiter",
|
||||
"5.10.1",
|
||||
testonly = True,
|
||||
),
|
||||
maven.artifact(
|
||||
"org.junit.platform",
|
||||
"junit-platform-console",
|
||||
"1.10.1",
|
||||
testonly = True,
|
||||
),
|
||||
maven.artifact(
|
||||
"org.junit.platform",
|
||||
"junit-platform-launcher",
|
||||
"1.10.1",
|
||||
testonly = True,
|
||||
),
|
||||
maven.artifact(
|
||||
"org.junit.platform",
|
||||
"junit-platform-reporting",
|
||||
"1.10.1",
|
||||
testonly = True,
|
||||
),
|
||||
maven.artifact(
|
||||
"com.google.code.gson",
|
||||
"gson",
|
||||
"2.10.1",
|
||||
testonly = False,
|
||||
),
|
||||
maven.artifact(
|
||||
"org.hamcrest",
|
||||
"hamcrest-all",
|
||||
"1.3",
|
||||
testonly = True,
|
||||
),
|
||||
maven.artifact(
|
||||
"com.googlecode.junit-toolbox",
|
||||
"junit-toolbox",
|
||||
"2.4",
|
||||
testonly = True,
|
||||
),
|
||||
maven.artifact(
|
||||
"org.apache.ant",
|
||||
"ant",
|
||||
"1.10.12",
|
||||
testonly = True,
|
||||
),
|
||||
maven.artifact(
|
||||
"org.apache.ant",
|
||||
"ant-junit",
|
||||
"1.10.12",
|
||||
testonly = True,
|
||||
),
|
||||
maven.artifact(
|
||||
"org.mockito",
|
||||
"mockito-core",
|
||||
"4.1.0",
|
||||
testonly = True,
|
||||
),
|
||||
maven.artifact(
|
||||
"com.google.testing.compile",
|
||||
"compile-testing",
|
||||
"0.21.0",
|
||||
testonly = True,
|
||||
),
|
||||
]
|
||||
|
||||
maven_install(
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
|
||||
load("@rules_java//java:defs.bzl", "java_binary", "java_library")
|
||||
load("@rules_java//java:defs.bzl", "java_binary")
|
||||
load("@rules_python//python:defs.bzl", "py_binary")
|
||||
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test")
|
||||
load("//shared/bazel/rules:jni_rules.bzl", "wpilib_jni_cc_library", "wpilib_jni_java_library")
|
||||
load("//shared/bazel/rules/gen:gen-resources.bzl", "generate_resources")
|
||||
|
||||
cc_library(
|
||||
@@ -59,9 +61,20 @@ cc_library(
|
||||
],
|
||||
)
|
||||
|
||||
java_library(
|
||||
wpilib_jni_cc_library(
|
||||
name = "apriltagjni",
|
||||
srcs = glob(["src/main/native/cpp/jni/**"]),
|
||||
java_dep = ":apriltag-java",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":apriltag.static",
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_jni_java_library(
|
||||
name = "apriltag-java",
|
||||
srcs = glob(["src/main/java/**/*.java"]),
|
||||
native_libs = [":apriltagjni"],
|
||||
resource_strip_prefix = "apriltag/src/main/native/resources",
|
||||
resources = glob(["src/main/native/resources/**"]),
|
||||
visibility = ["//visibility:public"],
|
||||
@@ -88,6 +101,20 @@ cc_test(
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_java_junit5_test(
|
||||
name = "apriltag-java-test",
|
||||
srcs = glob(["src/test/java/**/*.java"]),
|
||||
resource_strip_prefix = "apriltag/src/test/resources",
|
||||
resources = glob(["src/test/resources/**"]),
|
||||
deps = [
|
||||
":apriltag-java",
|
||||
"//wpimath:wpimath-java",
|
||||
"//wpiutil:wpiutil-java",
|
||||
"@bzlmodrio-opencv//libraries/java/opencv",
|
||||
"@maven//:com_fasterxml_jackson_core_jackson_databind",
|
||||
],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "DevMain-Cpp",
|
||||
srcs = ["src/dev/native/cpp/main.cpp"],
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test", "objc_library")
|
||||
load("@rules_java//java:defs.bzl", "java_binary", "java_library")
|
||||
load("@rules_java//java:defs.bzl", "java_binary")
|
||||
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test")
|
||||
load("//shared/bazel/rules:jni_rules.bzl", "wpilib_jni_cc_library", "wpilib_jni_java_library")
|
||||
|
||||
WIN_SRCS = glob([
|
||||
"src/main/native/windows/**/*.cpp",
|
||||
@@ -71,9 +73,20 @@ cc_library(
|
||||
}),
|
||||
)
|
||||
|
||||
java_library(
|
||||
wpilib_jni_cc_library(
|
||||
name = "cscorejni",
|
||||
srcs = glob(["src/main/native/cpp/jni/**"]),
|
||||
java_dep = ":cscore-java",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":cscore.static",
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_jni_java_library(
|
||||
name = "cscore-java",
|
||||
srcs = glob(["src/main/java/**/*.java"]),
|
||||
native_libs = [":cscorejni"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//wpiutil:wpiutil-java",
|
||||
@@ -91,6 +104,15 @@ cc_test(
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_java_junit5_test(
|
||||
name = "cscore-java-test",
|
||||
srcs = glob(["src/test/java/**/*.java"]),
|
||||
deps = [
|
||||
":cscore-java",
|
||||
"//wpiutil:wpiutil-java",
|
||||
],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "DevMain-Cpp",
|
||||
srcs = ["src/dev/native/cpp/main.cpp"],
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
load("@rules_java//java:defs.bzl", "java_library", "java_plugin")
|
||||
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test")
|
||||
|
||||
java_library(
|
||||
name = "processor",
|
||||
@@ -20,3 +21,15 @@ java_plugin(
|
||||
":processor",
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_java_junit5_test(
|
||||
name = "processor-test",
|
||||
srcs = glob(["src/test/java/**/*.java"]),
|
||||
plugins = [
|
||||
":plugin",
|
||||
],
|
||||
deps = [
|
||||
":processor",
|
||||
"@maven//:com_google_testing_compile_compile_testing",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
load("@rules_java//java:defs.bzl", "java_library")
|
||||
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test")
|
||||
|
||||
java_library(
|
||||
name = "epilogue",
|
||||
@@ -10,3 +11,12 @@ java_library(
|
||||
"//wpiutil:wpiutil-java",
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_java_junit5_test(
|
||||
name = "epilogue-test",
|
||||
srcs = glob(["src/test/java/**/*.java"]),
|
||||
deps = [
|
||||
":epilogue",
|
||||
"//wpiutil:wpiutil-java",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
load("@rules_cc//cc:defs.bzl", "cc_library")
|
||||
load("@rules_java//java:defs.bzl", "java_library")
|
||||
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test")
|
||||
load("//shared/bazel/rules/gen:gen-resources.bzl", "generate_resources")
|
||||
|
||||
generate_resources(
|
||||
@@ -29,3 +30,11 @@ java_library(
|
||||
"@maven//:com_fasterxml_jackson_core_jackson_databind",
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_java_junit5_test(
|
||||
name = "fieldImages-test",
|
||||
srcs = glob(["src/test/java/**/*.java"]),
|
||||
deps = [
|
||||
":fieldImages-java",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
|
||||
load("@rules_java//java:defs.bzl", "java_binary", "java_library")
|
||||
load("@rules_java//java:defs.bzl", "java_binary")
|
||||
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test")
|
||||
load("//shared/bazel/rules:jni_rules.bzl", "wpilib_jni_cc_library", "wpilib_jni_java_library")
|
||||
|
||||
cc_library(
|
||||
name = "generated_cc_headers",
|
||||
@@ -31,23 +33,14 @@ filegroup(
|
||||
visibility = ["//hal:__subpackages__"],
|
||||
)
|
||||
|
||||
ATHENA_SRCS = glob(["src/main/native/athena/**"])
|
||||
|
||||
ATHENA_DEPS = ["@bzlmodrio-ni//libraries/cpp/ni:shared"]
|
||||
SYSTEMCORE_SRCS = glob(["src/main/native/systemcore/**"])
|
||||
|
||||
SIM_SRCS = glob(["src/main/native/sim/**"])
|
||||
|
||||
SIM_DEPS = []
|
||||
|
||||
HAL_DEPS = select({
|
||||
"@rules_bzlmodrio_toolchains//constraints/is_roborio:roborio": ATHENA_DEPS,
|
||||
"//conditions:default": SIM_DEPS,
|
||||
})
|
||||
|
||||
filegroup(
|
||||
name = "platform-srcs",
|
||||
srcs = select({
|
||||
"@rules_bzlmodrio_toolchains//constraints/is_roborio:roborio": ATHENA_SRCS,
|
||||
"@rules_bzlmodrio_toolchains//constraints/is_systemcore:systemcore": SYSTEMCORE_SRCS,
|
||||
"//conditions:default": SIM_SRCS,
|
||||
}),
|
||||
)
|
||||
@@ -67,17 +60,28 @@ cc_library(
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":generated_cc_headers",
|
||||
":mrc_cc_headers",
|
||||
":generated_mrc_cc_headers",
|
||||
":mrc_cc_headers",
|
||||
"//ntcore:ntcore.static",
|
||||
"//wpinet:wpinet.static",
|
||||
"//wpiutil:wpiutil.static",
|
||||
] + HAL_DEPS,
|
||||
],
|
||||
)
|
||||
|
||||
java_library(
|
||||
wpilib_jni_cc_library(
|
||||
name = "wpiHaljni",
|
||||
srcs = glob(["src/main/native/cpp/jni/**"]),
|
||||
java_dep = ":hal-java",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":wpiHal.static",
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_jni_java_library(
|
||||
name = "hal-java",
|
||||
srcs = [":generated_java"] + glob(["src/main/java/**/*.java"]),
|
||||
native_libs = [":wpiHaljni"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//ntcore:networktables-java",
|
||||
@@ -99,6 +103,14 @@ cc_test(
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_java_junit5_test(
|
||||
name = "hal-java-test",
|
||||
srcs = glob(["src/test/java/**/*.java"]),
|
||||
deps = [
|
||||
":hal-java",
|
||||
],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "DevMain-Cpp",
|
||||
srcs = ["src/dev/native/cpp/main.cpp"],
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
|
||||
load("@rules_java//java:defs.bzl", "java_binary", "java_library")
|
||||
load("@rules_java//java:defs.bzl", "java_binary")
|
||||
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test")
|
||||
load("//shared/bazel/rules:jni_rules.bzl", "wpilib_jni_cc_library", "wpilib_jni_java_library")
|
||||
|
||||
cc_library(
|
||||
name = "generated_cc_headers",
|
||||
@@ -18,6 +20,12 @@ filegroup(
|
||||
visibility = ["//ntcore:__subpackages__"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "generated_jni",
|
||||
srcs = glob(["src/generated/main/native/cpp/jni/**"]),
|
||||
visibility = ["//ntcore:__subpackages__"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "generated_java",
|
||||
srcs = glob(["src/generated/main/java/**/*.java"]),
|
||||
@@ -44,9 +52,20 @@ cc_library(
|
||||
],
|
||||
)
|
||||
|
||||
java_library(
|
||||
wpilib_jni_cc_library(
|
||||
name = "ntcorejni",
|
||||
srcs = glob(["src/main/native/cpp/jni/**"]) + [":generated_jni"],
|
||||
java_dep = ":networktables-java",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":ntcore.static",
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_jni_java_library(
|
||||
name = "networktables-java",
|
||||
srcs = glob(["src/main/java/**/*.java"]) + [":generated_java"],
|
||||
native_libs = [":ntcorejni"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//wpiutil:wpiutil-java",
|
||||
@@ -73,6 +92,16 @@ cc_test(
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_java_junit5_test(
|
||||
name = "ntcore-java-test",
|
||||
srcs = glob(["src/test/java/**/*.java"]),
|
||||
tags = ["exclusive"],
|
||||
deps = [
|
||||
":networktables-java",
|
||||
"//wpiutil:wpiutil-java",
|
||||
],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "DevMain-Cpp",
|
||||
srcs = ["src/dev/native/cpp/main.cpp"],
|
||||
|
||||
0
shared/bazel/rules/BUILD.bazel
Normal file
0
shared/bazel/rules/BUILD.bazel
Normal file
35
shared/bazel/rules/java_rules.bzl
Normal file
35
shared/bazel/rules/java_rules.bzl
Normal file
@@ -0,0 +1,35 @@
|
||||
load("@rules_java//java:defs.bzl", "java_binary")
|
||||
|
||||
def wpilib_java_junit5_test(
|
||||
name,
|
||||
deps = [],
|
||||
runtime_deps = [],
|
||||
args = [],
|
||||
tags = [],
|
||||
package = "edu",
|
||||
**kwargs):
|
||||
"""
|
||||
Convenience helper to make a junit5 test
|
||||
"""
|
||||
junit_deps = [
|
||||
"@maven//:org_junit_jupiter_junit_jupiter_api",
|
||||
"@maven//:org_junit_jupiter_junit_jupiter_params",
|
||||
"@maven//:org_junit_jupiter_junit_jupiter_engine",
|
||||
]
|
||||
|
||||
junit_runtime_deps = [
|
||||
"@maven//:org_junit_platform_junit_platform_console",
|
||||
]
|
||||
|
||||
# TODO - replace with java_test once shared libraries are hooked up.
|
||||
java_binary(
|
||||
name = name,
|
||||
deps = deps + junit_deps,
|
||||
runtime_deps = runtime_deps + junit_runtime_deps,
|
||||
args = args + ["--select-package", package],
|
||||
main_class = "org.junit.platform.console.ConsoleLauncher",
|
||||
use_testrunner = False,
|
||||
testonly = True,
|
||||
tags = tags + ["no-roborio", "no-bionic", "no-raspbian", "allwpilib-build-java", "no-asan", "no-tsan", "no-ubsan"],
|
||||
**kwargs
|
||||
)
|
||||
101
shared/bazel/rules/jni_rules.bzl
Normal file
101
shared/bazel/rules/jni_rules.bzl
Normal file
@@ -0,0 +1,101 @@
|
||||
load("@bazel_tools//tools/cpp:toolchain_utils.bzl", "find_cpp_toolchain")
|
||||
load("@rules_cc//cc:defs.bzl", "cc_library")
|
||||
load("@rules_java//java:defs.bzl", "java_library")
|
||||
|
||||
def _jni_headers_impl(ctx):
|
||||
include_dir = ctx.actions.declare_directory(ctx.attr.name + ".h")
|
||||
native_headers_jar = ctx.attr.lib[JavaInfo].outputs.native_headers
|
||||
args = ["xf", native_headers_jar.path, "-d", include_dir.path]
|
||||
|
||||
ctx.actions.run(
|
||||
inputs = [native_headers_jar],
|
||||
tools = [ctx.executable._zipper],
|
||||
outputs = [include_dir],
|
||||
executable = ctx.executable._zipper.path,
|
||||
arguments = args,
|
||||
)
|
||||
|
||||
cc_toolchain = find_cpp_toolchain(ctx)
|
||||
feature_configuration = cc_common.configure_features(
|
||||
ctx = ctx,
|
||||
cc_toolchain = cc_toolchain,
|
||||
requested_features = ctx.features,
|
||||
unsupported_features = ctx.disabled_features,
|
||||
)
|
||||
compilation_context, _ = cc_common.compile(
|
||||
name = ctx.attr.name,
|
||||
actions = ctx.actions,
|
||||
feature_configuration = feature_configuration,
|
||||
cc_toolchain = cc_toolchain,
|
||||
public_hdrs = [include_dir],
|
||||
quote_includes = [include_dir.path],
|
||||
)
|
||||
cc_info_with_jni = cc_common.merge_cc_infos(
|
||||
direct_cc_infos = [
|
||||
CcInfo(compilation_context = compilation_context),
|
||||
ctx.attr.jni[CcInfo],
|
||||
],
|
||||
)
|
||||
|
||||
return [
|
||||
DefaultInfo(files = depset([include_dir])),
|
||||
cc_info_with_jni,
|
||||
]
|
||||
|
||||
_jni_headers = rule(
|
||||
implementation = _jni_headers_impl,
|
||||
attrs = {
|
||||
"jni": attr.label(mandatory = True),
|
||||
"lib": attr.label(
|
||||
mandatory = True,
|
||||
providers = [JavaInfo],
|
||||
),
|
||||
"_cc_toolchain": attr.label(default = Label("@bazel_tools//tools/cpp:current_cc_toolchain")),
|
||||
"_zipper": attr.label(
|
||||
executable = True,
|
||||
cfg = "exec",
|
||||
default = Label("@bazel_tools//tools/zip:zipper"),
|
||||
),
|
||||
},
|
||||
fragments = ["cpp"],
|
||||
incompatible_use_toolchain_transition = True,
|
||||
provides = [CcInfo],
|
||||
toolchains = ["@bazel_tools//tools/cpp:toolchain_type"],
|
||||
)
|
||||
|
||||
def wpilib_jni_java_library(
|
||||
name,
|
||||
native_libs = [],
|
||||
**java_library_args):
|
||||
tags = java_library_args.pop("tags", default = None)
|
||||
visibility = java_library_args.pop("visibility", default = None)
|
||||
testonly = java_library_args.pop("testonly", default = None)
|
||||
headers_name = name + ".hdrs"
|
||||
java_library(
|
||||
name = name,
|
||||
visibility = visibility,
|
||||
testonly = testonly,
|
||||
**java_library_args
|
||||
)
|
||||
|
||||
jni = "@rules_bzlmodrio_toolchains//jni"
|
||||
_jni_headers(
|
||||
name = headers_name,
|
||||
tags = ["manual"],
|
||||
jni = jni,
|
||||
lib = ":" + name,
|
||||
testonly = testonly,
|
||||
visibility = visibility,
|
||||
)
|
||||
|
||||
def wpilib_jni_cc_library(
|
||||
name,
|
||||
deps = [],
|
||||
java_dep = None,
|
||||
**kwargs):
|
||||
jni = "@rules_bzlmodrio_toolchains//jni"
|
||||
cc_library(
|
||||
name = name + ".static",
|
||||
deps = [jni, java_dep + ".hdrs"] + deps,
|
||||
**kwargs
|
||||
)
|
||||
@@ -1,5 +1,6 @@
|
||||
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
|
||||
load("@rules_java//java:defs.bzl", "java_binary", "java_library")
|
||||
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test")
|
||||
|
||||
cc_library(
|
||||
name = "generated_cc_headers",
|
||||
@@ -67,6 +68,23 @@ cc_test(
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_java_junit5_test(
|
||||
name = "wpilibNewCommands-java-test",
|
||||
srcs = glob(["**/*.java"]),
|
||||
resource_strip_prefix = "wpilibNewCommands/src/test/resources",
|
||||
resources = glob(["src/test/resources/**"]),
|
||||
deps = [
|
||||
":wpilibNewCommands-java",
|
||||
"//hal:hal-java",
|
||||
"//ntcore:networktables-java",
|
||||
"//wpilibj",
|
||||
"//wpimath:wpimath-java",
|
||||
"//wpiunits",
|
||||
"//wpiutil:wpiutil-java",
|
||||
"@maven//:org_mockito_mockito_core",
|
||||
],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "DevMain-Cpp",
|
||||
srcs = ["src/dev/native/cpp/main.cpp"],
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
load("@rules_cc//cc:defs.bzl", "cc_binary")
|
||||
load("@rules_java//java:defs.bzl", "java_binary", "java_library")
|
||||
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test")
|
||||
load("//shared/bazel/rules/gen:gen-version-file.bzl", "generate_version_file")
|
||||
|
||||
generate_version_file(
|
||||
@@ -36,6 +37,21 @@ java_library(
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_java_junit5_test(
|
||||
name = "wpilibj-java-test",
|
||||
srcs = glob(["src/test/java/**/*.java"]),
|
||||
resource_strip_prefix = "wpilibj/src/test/resources",
|
||||
resources = glob(["src/test/resources/**"]),
|
||||
deps = [
|
||||
":wpilibj",
|
||||
"//hal:hal-java",
|
||||
"//ntcore:networktables-java",
|
||||
"//wpimath:wpimath-java",
|
||||
"//wpiunits",
|
||||
"//wpiutil:wpiutil-java",
|
||||
],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "DevMain-Cpp",
|
||||
srcs = ["src/dev/native/cpp/main.cpp"],
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
|
||||
load("@rules_java//java:defs.bzl", "java_binary", "java_library")
|
||||
load("@rules_java//java:defs.bzl", "java_binary")
|
||||
load("@rules_python//python:defs.bzl", "py_binary")
|
||||
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test")
|
||||
load("//shared/bazel/rules:jni_rules.bzl", "wpilib_jni_cc_library", "wpilib_jni_java_library")
|
||||
|
||||
filegroup(
|
||||
name = "generated_java",
|
||||
@@ -78,9 +80,20 @@ cc_library(
|
||||
],
|
||||
)
|
||||
|
||||
java_library(
|
||||
wpilib_jni_cc_library(
|
||||
name = "wpimathjni",
|
||||
srcs = glob(["src/main/native/cpp/jni/**"]),
|
||||
java_dep = ":wpimath-java",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":wpimath.static",
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_jni_java_library(
|
||||
name = "wpimath-java",
|
||||
srcs = [":generated_java"] + glob(["src/main/java/**/*.java"]),
|
||||
native_libs = [":wpimathjni"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//wpiunits",
|
||||
@@ -121,6 +134,19 @@ cc_test(
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_java_junit5_test(
|
||||
name = "wpimath-java-test",
|
||||
srcs = glob(["src/test/java/**/*.java"]),
|
||||
deps = [
|
||||
":wpimath-java",
|
||||
"//wpiunits",
|
||||
"//wpiutil:wpiutil-java",
|
||||
"@maven//:org_ejml_ejml_core",
|
||||
"@maven//:org_ejml_ejml_simple",
|
||||
"@maven//:us_hebi_quickbuf_quickbuf_runtime",
|
||||
],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "DevMain-Cpp",
|
||||
srcs = ["src/dev/native/cpp/main.cpp"],
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
|
||||
load("@rules_java//java:defs.bzl", "java_binary", "java_library")
|
||||
load("@rules_java//java:defs.bzl", "java_binary")
|
||||
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test")
|
||||
load("//shared/bazel/rules:jni_rules.bzl", "wpilib_jni_cc_library", "wpilib_jni_java_library")
|
||||
load("//shared/bazel/rules/gen:gen-resources.bzl", "generate_resources")
|
||||
|
||||
WIN_UV_SRCS = glob([
|
||||
@@ -131,9 +133,23 @@ cc_library(
|
||||
],
|
||||
)
|
||||
|
||||
java_library(
|
||||
wpilib_jni_cc_library(
|
||||
name = "wpinetjni",
|
||||
srcs = glob([
|
||||
"src/main/native/cpp/jni/**",
|
||||
"src/main/native/cpp/**/*.h",
|
||||
]),
|
||||
java_dep = ":wpinet-java",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":wpinet.static",
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_jni_java_library(
|
||||
name = "wpinet-java",
|
||||
srcs = glob(["src/main/java/**/*.java"]),
|
||||
native_libs = [":wpinetjni"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//wpiutil:wpiutil-java",
|
||||
@@ -155,6 +171,14 @@ cc_test(
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_java_junit5_test(
|
||||
name = "wpinet-java-test",
|
||||
srcs = glob(["src/test/java/**/*.java"]),
|
||||
deps = [
|
||||
":wpinet-java",
|
||||
],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "DevMain-Cpp",
|
||||
srcs = ["src/dev/native/cpp/main.cpp"],
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
load("@rules_java//java:defs.bzl", "java_binary", "java_library")
|
||||
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test")
|
||||
|
||||
java_library(
|
||||
name = "wpiunits",
|
||||
@@ -7,6 +8,14 @@ java_library(
|
||||
deps = [],
|
||||
)
|
||||
|
||||
wpilib_java_junit5_test(
|
||||
name = "wpiunits-test",
|
||||
srcs = glob(["src/test/java/**/*.java"]),
|
||||
deps = [
|
||||
":wpiunits",
|
||||
],
|
||||
)
|
||||
|
||||
java_binary(
|
||||
name = "DevMain-Java",
|
||||
srcs = ["src/dev/java/edu/wpi/first/units/DevMain.java"],
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
|
||||
load("@rules_java//java:defs.bzl", "java_binary", "java_library")
|
||||
load("@rules_java//java:defs.bzl", "java_binary")
|
||||
load("@rules_python//python:defs.bzl", "py_binary")
|
||||
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test")
|
||||
load("//shared/bazel/rules:jni_rules.bzl", "wpilib_jni_cc_library", "wpilib_jni_java_library")
|
||||
load("//shared/bazel/rules/gen:gen-resources.bzl", "generate_resources")
|
||||
|
||||
cc_library(
|
||||
@@ -224,9 +226,20 @@ cc_library(
|
||||
}),
|
||||
)
|
||||
|
||||
java_library(
|
||||
wpilib_jni_cc_library(
|
||||
name = "wpiutiljni",
|
||||
srcs = glob(["src/main/native/cpp/jni/**"]),
|
||||
java_dep = ":wpiutil-java",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":wpiutil.static",
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_jni_java_library(
|
||||
name = "wpiutil-java",
|
||||
srcs = glob(["src/main/java/**/*.java"]),
|
||||
native_libs = [":wpiutiljni"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"@maven//:com_fasterxml_jackson_core_jackson_annotations",
|
||||
@@ -268,6 +281,14 @@ cc_test(
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_java_junit5_test(
|
||||
name = "wpiutil-java-test",
|
||||
srcs = glob(["src/test/java/**/*.java"]),
|
||||
deps = [
|
||||
":wpiutil-java",
|
||||
],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "DevMain-Cpp",
|
||||
srcs = ["src/dev/native/cpp/main.cpp"],
|
||||
|
||||
Reference in New Issue
Block a user