blob: 74612e544fc6aa86da6ab6c4a4fdc51472c14660 [file] [log] [blame]
licenses(["notice"])
# Names of WPILib "devices" I don't want to deal with making trivial updates to
# chop out various ugliness or have to vet for sanity.
_excluded_devices = [
"AnalogGyro",
"SerialPort",
"SerialHelper",
"visa",
]
# Header files we don't want to have.
_bad_hdrs = ([
"hal/include/HAL/LabVIEW/HAL.h",
] + ["**/%s.*" % d for d in _excluded_devices])
_hal_header_dirs = [
"hal/src/main/native/athena",
"hal/src/main/native/include",
]
_hal_h_hdrs = glob(
[d + "/**/*.h" for d in _hal_header_dirs],
exclude = _bad_hdrs,
)
_hal_hpp_hdrs = glob(
[d + "/**/*.hpp" for d in _hal_header_dirs],
exclude = _bad_hdrs,
)
py_binary(
name = "generate_FRCUsageReporting",
srcs = [
"generate_FRCUsageReporting.py",
],
)
genrule(
name = "do_generate_FRCUsageReporting",
srcs = [
"hal/src/generate/FRCUsageReporting.h.in",
"hal/src/generate/Instances.txt",
"hal/src/generate/ResourceType.txt",
],
outs = [
"hal/src/main/native/include/hal/FRCUsageReporting.h",
],
cmd = " ".join([
"$(location :generate_FRCUsageReporting)",
"$(location hal/src/generate/FRCUsageReporting.h.in)",
"$(location hal/src/generate/Instances.txt)",
"$(location hal/src/generate/ResourceType.txt)",
"$(location hal/src/main/native/include/hal/FRCUsageReporting.h)",
]),
tools = [
":generate_FRCUsageReporting",
],
)
cc_library(
name = "hal",
srcs = glob(
include = [
"hal/src/main/native/athena/*.cpp",
"hal/src/main/native/cpp/cpp/*.cpp",
"hal/src/main/native/cpp/*.cpp",
"hal/src/main/native/athena/ctre/*.cpp",
"hal/src/main/native/shared/handles/*.cpp",
"hal/src/main/native/cpp/handles/*.cpp",
],
exclude = ["**/%s.*" % d for d in _excluded_devices],
),
hdrs = _hal_h_hdrs + _hal_hpp_hdrs + [
"hal/src/main/native/include/hal/FRCUsageReporting.h",
],
copts = [
"-Wno-unused-parameter",
"-Wno-cast-align",
],
defines = ["WPILIB2019=1"],
includes = _hal_header_dirs,
restricted_to = ["//tools:roborio"],
visibility = ["//third_party:__pkg__"],
deps = [
"//aos/logging",
"//third_party/allwpilib/wpiutil",
"@allwpilib_ni_libraries//:ni-libraries",
],
)