mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-30 02:31:44 +00:00
[bazel] Make publishers for c++ hdr / srcs, and java (#8114)
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
load("@rules_pkg//:mappings.bzl", "pkg_filegroup", "pkg_files")
|
||||
load("@rules_pkg//pkg:zip.bzl", "pkg_zip")
|
||||
load("//shared/bazel/rules:publishing.bzl", "architectures_pkg_zip", "platform_prefix", "wpilib_maven_export")
|
||||
|
||||
def pkg_java_files(name):
|
||||
def pkg_java_src_files(name):
|
||||
pkg_files(
|
||||
name = name + "-java-srcs",
|
||||
srcs = native.glob(["src/main/java/**"]),
|
||||
@@ -28,3 +30,128 @@ def pkg_java_files(name):
|
||||
"//shared/bazel/rules:src_jar_dummy_manifest",
|
||||
],
|
||||
)
|
||||
|
||||
def zip_java_srcs(name, extra_pkgs = []):
|
||||
pkg_java_src_files("{}-sources.pkg".format(name))
|
||||
|
||||
pkg_zip(
|
||||
name = "lib{}-java-sources".format(name),
|
||||
srcs = ["{}-sources.pkg".format(name)] + extra_pkgs,
|
||||
out = "lib{}-sources.jar".format(name),
|
||||
tags = ["manual"],
|
||||
)
|
||||
|
||||
def package_default_jni_project(
|
||||
name,
|
||||
maven_group_id,
|
||||
maven_artifact_name):
|
||||
"""
|
||||
Packages a the C++ libraries for a project that has a JNI component.
|
||||
|
||||
This assumes that static and shared libraries exist for the project, and
|
||||
that it is built for all native platforms plus systemcore. It runs the
|
||||
per-platform transitions and bundles them all into a single maven_export target.
|
||||
"""
|
||||
pkg_files(
|
||||
name = "{}-static-files".format(name),
|
||||
srcs = [
|
||||
":static/{}".format(name),
|
||||
],
|
||||
prefix = platform_prefix("static"),
|
||||
strip_prefix = "static",
|
||||
)
|
||||
|
||||
pkg_filegroup(
|
||||
name = "{}-shared-files".format(name),
|
||||
srcs = [
|
||||
":shared/lib{}-shared-files".format(name),
|
||||
":shared/lib{}jni-shared-files".format(name),
|
||||
],
|
||||
prefix = platform_prefix("shared"),
|
||||
)
|
||||
|
||||
architectures_pkg_zip(
|
||||
name = "{}_static_zip".format(name),
|
||||
srcs = [
|
||||
":{}-static-files".format(name),
|
||||
"//:license_pkg_files",
|
||||
],
|
||||
)
|
||||
|
||||
architectures_pkg_zip(
|
||||
name = "{}_shared_zip".format(name),
|
||||
srcs = [
|
||||
":{}-shared-files".format(name),
|
||||
"//:license_pkg_files",
|
||||
],
|
||||
)
|
||||
|
||||
wpilib_maven_export(
|
||||
name = "{}-cpp_publish".format(name),
|
||||
classifier_artifacts = {
|
||||
"headers": ":{}-hdrs-zip".format(name),
|
||||
"linuxsystemcore": ":{}_shared_zip-opt-systemcore".format(name),
|
||||
"linuxsystemcoredebug": ":{}_shared_zip-dbg-systemcore".format(name),
|
||||
"linuxsystemcorestatic": ":{}_static_zip-opt-systemcore".format(name),
|
||||
"linuxsystemcorestaticdebug": ":{}_static_zip-dbg-systemcore".format(name),
|
||||
"sources": ":{}-srcs-zip".format(name),
|
||||
},
|
||||
linux_artifacts = {
|
||||
"linuxx86-64": ":{}_shared_zip-opt-linux-x86-64".format(name),
|
||||
"linuxx86-64debug": ":{}_shared_zip-dbg-linux-x86-64".format(name),
|
||||
"linuxx86-64static": ":{}_static_zip-opt-linux-x86-64".format(name),
|
||||
"linuxx86-64staticdebug": ":{}_static_zip-dbg-linux-x86-64".format(name),
|
||||
},
|
||||
maven_coordinates = "{}:{}:$(WPILIB_VERSION)".format(maven_group_id, maven_artifact_name),
|
||||
osx_artifacts = {
|
||||
"osxuniversal": ":{}_shared_zip-opt-osxuniversal".format(name),
|
||||
"osxuniversaldebug": ":{}_shared_zip-dbg-osxuniversal".format(name),
|
||||
"osxuniversalstatic": ":{}_static_zip-opt-osxuniversal".format(name),
|
||||
"osxuniversalstaticdebug": ":{}_static_zip-dbg-osxuniversal".format(name),
|
||||
},
|
||||
visibility = ["//visibility:public"],
|
||||
windows_artifacts = {
|
||||
"windowsarm64": ":{}_shared_zip-opt-windows-arm64".format(name),
|
||||
"windowsarm64debug": ":{}_shared_zip-dbg-windows-arm64".format(name),
|
||||
"windowsarm64static": ":{}_static_zip-opt-windows-arm64".format(name),
|
||||
"windowsarm64staticdebug": ":{}_static_zip-dbg-windows-arm64".format(name),
|
||||
"windowsx86-64": ":{}_shared_zip-opt-windows-x86-64".format(name),
|
||||
"windowsx86-64debug": ":{}_shared_zip-dbg-windows-x86-64".format(name),
|
||||
"windowsx86-64static": ":{}_static_zip-opt-windows-x86-64".format(name),
|
||||
"windowsx86-64staticdebug": ":{}_static_zip-dbg-windows-x86-64".format(name),
|
||||
},
|
||||
)
|
||||
|
||||
def package_minimal_jni_project(
|
||||
name,
|
||||
maven_group_id,
|
||||
maven_artifact_name):
|
||||
wpilib_maven_export(
|
||||
name = "{}-cpp_publish".format(name),
|
||||
classifier_artifacts = {
|
||||
"headers": ":{}-hdrs-zip".format(name),
|
||||
"sources": ":{}-srcs-zip".format(name),
|
||||
},
|
||||
linux_artifacts = {},
|
||||
maven_coordinates = "{}:{}:$(WPILIB_VERSION)".format(maven_group_id, maven_artifact_name),
|
||||
osx_artifacts = {},
|
||||
visibility = ["//visibility:public"],
|
||||
windows_artifacts = {},
|
||||
)
|
||||
|
||||
def package_minimal_cc_project(
|
||||
name,
|
||||
maven_group_id,
|
||||
maven_artifact_name):
|
||||
wpilib_maven_export(
|
||||
name = "{}-cpp_publish".format(name),
|
||||
classifier_artifacts = {
|
||||
"headers": ":{}-hdrs-zip".format(name),
|
||||
"sources": ":{}-srcs-zip".format(name),
|
||||
},
|
||||
linux_artifacts = {},
|
||||
maven_coordinates = "{}:{}:$(WPILIB_VERSION)".format(maven_group_id, maven_artifact_name),
|
||||
osx_artifacts = {},
|
||||
visibility = ["//visibility:public"],
|
||||
windows_artifacts = {},
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user