Files
allwpilib/simulation/halsim_gui/BUILD.bazel
PJ Reiniger 762d1e8b93 [copybara] mostrobotpy to allwpilib (#8545)
Project import generated by Copybara.
GitOrigin-RevId: f10284b37498bb6a088891ca41f160793ec7fd90
2026-01-12 19:11:02 -08:00

187 lines
5.2 KiB
Python

load("@allwpilib_pip_deps//:requirements.bzl", "requirement")
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_test")
load("//shared/bazel/rules:cc_rules.bzl", "wpilib_cc_library", "wpilib_cc_shared_library", "wpilib_cc_static_library")
load("//shared/bazel/rules:packaging.bzl", "package_default_cc_project")
load("//shared/bazel/rules:publishing.bzl", "host_architectures")
load("//shared/bazel/rules/robotpy:pytest_util.bzl", "robotpy_py_test")
load("//simulation/halsim_gui:robotpy_pybind_build_info.bzl", "define_pybind_library", "halsim_gui_ext_extension")
wpilib_cc_library(
name = "halsim_gui",
srcs = glob([
"src/main/native/cpp/*",
"src/main/native/include/**/*.hpp",
]),
include_license_files = True,
includes = ["src/main/native/include"],
linkopts = [
"-lm",
],
tags = [
"wpi-cpp-gui",
],
target_compatible_with = select({
"@rules_bzlmodrio_toolchains//constraints/is_roborio:roborio": ["@platforms//:incompatible"],
"@rules_bzlmodrio_toolchains//constraints/is_systemcore:systemcore": ["@platforms//:incompatible"],
"//conditions:default": [],
}),
visibility = ["//visibility:public"],
deps = [
"//glass:glassnt",
"//hal:wpiHal",
],
)
wpilib_cc_library(
name = "halsim_gui_static",
srcs = glob([
"src/main/native/cpp/*",
"src/main/native/include/**/*.hpp",
]),
copts = [
"-DHALSIM_InitExtension=HALSIM_InitExtension_GUI",
],
include_license_files = True,
includes = ["src/main/native/include"],
linkopts = [
"-lm",
],
tags = [
"wpi-cpp-gui",
],
target_compatible_with = select({
"@rules_bzlmodrio_toolchains//constraints/is_roborio:roborio": ["@platforms//:incompatible"],
"@rules_bzlmodrio_toolchains//constraints/is_systemcore:systemcore": ["@platforms//:incompatible"],
"//conditions:default": [],
}),
visibility = ["//visibility:public"],
deps = [
"//glass:glassnt",
"//hal:wpiHal",
],
)
wpilib_cc_shared_library(
name = "shared/halsim_gui",
additional_linker_inputs = select({
"@platforms//os:osx": [
"//thirdparty/imgui_suite:glfw_src_darwin",
"//thirdparty/imgui_suite:imgui_src_darwin",
"//wpigui:wpigui-mac",
],
"//conditions:default": [],
}),
dynamic_deps = [
"//hal:shared/wpiHal",
"//wpimath:shared/wpimath",
"//datalog:shared/datalog",
"//ntcore:shared/ntcore",
],
user_link_flags = select({
"@platforms//os:osx": [
"-Wl,-force_load,$(location //thirdparty/imgui_suite:glfw_src_darwin)",
"-Wl,-force_load,$(location //thirdparty/imgui_suite:imgui_src_darwin)",
"-Wl,-force_load,$(location //wpigui:wpigui-mac)",
"-framework",
"Metal",
"-framework",
"MetalKit",
"-framework",
"Cocoa",
"-framework",
"IOKit",
"-framework",
"CoreFoundation",
"-framework",
"CoreVideo",
"-framework",
"QuartzCore",
],
"//conditions:default": [],
}),
visibility = ["//visibility:public"],
deps = [
":halsim_gui",
],
)
wpilib_cc_static_library(
name = "static/halsim_gui",
static_deps = [
"//hal:static/wpiHal",
"//wpimath:static/wpimath",
"//datalog:static/datalog",
"//ntcore:static/ntcore",
"//glass:static/glassnt",
],
visibility = ["//visibility:public"],
deps = [
":halsim_gui_static",
],
)
cc_test(
name = "halsim_gui-test",
size = "small",
srcs = glob(["src/test/native/**/*.cpp"]),
tags = [
"no-asan",
"wpi-cpp-gui",
],
deps = [
":halsim_gui",
"//thirdparty/googletest",
],
)
cc_binary(
name = "DevMain-Cpp",
srcs = ["src/dev/native/cpp/main.cpp"],
tags = [
"wpi-cpp-gui",
],
deps = [
":halsim_gui",
],
)
package_default_cc_project(
name = "halsim_gui",
architectures = host_architectures,
maven_artifact_name = "halsim_gui",
maven_group_id = "org.wpilib.halsim",
)
PKG_CONFIG_DEPS = [
"//datalog:native/datalog/robotpy-native-datalog.pc",
"//datalog:robotpy-wpilog.generated_pkgcfg_files",
"//hal:native/wpihal/robotpy-native-wpihal.pc",
"//hal:robotpy-hal.generated_pkgcfg_files",
"//ntcore:native/ntcore/robotpy-native-ntcore.pc",
"//ntcore:pyntcore.generated_pkgcfg_files",
"//wpimath:native/wpimath/robotpy-native-wpimath.pc",
"//wpimath:robotpy-wpimath.generated_pkgcfg_files",
"//wpinet:native/wpinet/robotpy-native-wpinet.pc",
"//wpinet:robotpy-wpinet.generated_pkgcfg_files",
"//wpiutil:native/wpiutil/robotpy-native-wpiutil.pc",
"//wpiutil:robotpy-wpiutil.generated_pkgcfg_files",
]
halsim_gui_ext_extension(
srcs = glob(["src/main/python/halsim_gui/_ext/**/*.cpp"]),
)
define_pybind_library(
name = "robotpy-halsim-gui",
pkgcfgs = PKG_CONFIG_DEPS,
)
robotpy_py_test(
"python_tests",
srcs = glob(["src/test/python/**/*.py"]),
deps = [
":robotpy-halsim-gui",
requirement("pytest"),
],
)