Files
allwpilib/wpiutil/robotpy_native_build_info.bzl
PJ Reiniger 68d24bb29e [python] Improve robotpy generation (#8867)
The initial build file generation for robotpy projects was relatively
naive and purpose built to get `allwpilib` compiling, without supporting
all the available features.

This modifies the generation scripts to be able to support multiple
embedded libraries, which will be necessary for #8858, since `mrclib.so`
will need to be bundled along with the hal libraries. In addition some
cleanup was done to get the wheels looking more like what is in pypi.
2026-05-14 21:52:39 -07:00

83 lines
3.3 KiB
Python
Generated

# THIS FILE IS AUTO GENERATED
load("@aspect_bazel_lib//lib:copy_to_directory.bzl", "copy_to_directory")
load("//shared/bazel/rules/robotpy:robotpy_rules.bzl", "copy_native_file", "generate_native_files", "robotpy_library")
def define_native_wrapper(name, pyproject_toml = None):
pyproject_toml = pyproject_toml or "src/main/python/native-pyproject.toml"
copy_to_directory(
name = "{}.copy_headers".format(name),
srcs = native.glob(["src/main/native/include/**"]) + native.glob(["src/generated/main/native/include/**"], allow_empty = True) + native.glob([
"src/main/native/thirdparty/argparse/include/**",
"src/main/native/thirdparty/debugging/include/**",
"src/main/native/thirdparty/double-conversion/include/**",
"src/main/native/thirdparty/expected/include/**",
"src/main/native/thirdparty/fmtlib/include/**",
"src/main/native/thirdparty/json/include/**",
"src/main/native/thirdparty/llvm/include/**",
"src/main/native/thirdparty/mpack/include/**",
"src/main/native/thirdparty/nanopb/include/**",
"src/main/native/thirdparty/sigslot/include/**",
"src/main/native/thirdparty/upb/include/**",
]),
out = "native/wpiutil/include",
root_paths = ["src/main/native/include/"],
replace_prefixes = {
"wpiutil/src/generated/main/native/include": "",
"wpiutil/src/main/native/include": "",
"wpiutil/src/main/native/thirdparty/argparse/include": "",
"wpiutil/src/main/native/thirdparty/debugging/include": "",
"wpiutil/src/main/native/thirdparty/double-conversion/include": "",
"wpiutil/src/main/native/thirdparty/expected/include": "",
"wpiutil/src/main/native/thirdparty/fmtlib/include": "",
"wpiutil/src/main/native/thirdparty/json/include": "",
"wpiutil/src/main/native/thirdparty/llvm/include": "",
"wpiutil/src/main/native/thirdparty/mpack/include": "",
"wpiutil/src/main/native/thirdparty/nanopb/include": "",
"wpiutil/src/main/native/thirdparty/sigslot/include": "",
"wpiutil/src/main/native/thirdparty/upb/include": "",
},
verbose = False,
visibility = ["//visibility:public"],
)
libinit_files = ["native/wpiutil/_init_robotpy_native_wpiutil.py"]
generate_native_files(
name = name,
pyproject_toml = pyproject_toml,
pc_deps = [
],
libinit_files = libinit_files,
pc_files = ["native/wpiutil/robotpy-native-wpiutil.pc"],
)
copy_native_file(
name = "wpiutil",
library = "shared/wpiutil",
base_path = "native/wpiutil/",
)
robotpy_library(
name = name,
distribution = "robotpy-native-wpiutil",
srcs = libinit_files,
data = [
name + ".pc_wrapper",
":wpiutil.copy_lib",
"{}.copy_headers".format(name),
],
deps = [
],
summary = "WPILib Utility Library",
requires = ["msvc-runtime>=14.42.34433; platform_system == 'Windows'"],
python_requires = ">=3.11",
strip_path_prefixes = ["wpiutil"],
entry_points = {
"pkg_config": [
"wpiutil = native.wpiutil",
],
},
)