Files
allwpilib/glass/BUILD.bazel
2025-11-07 23:09:21 -08:00

122 lines
3.0 KiB
Python

load("@rules_cc//cc:defs.bzl", "cc_binary")
load("//shared/bazel/rules:cc_rules.bzl", "wpilib_cc_library", "wpilib_cc_static_library")
load("//shared/bazel/rules:packaging.bzl", "package_binary_cc_project", "package_minimal_cc_project")
load("//shared/bazel/rules/gen:gen-resources.bzl", "generate_resources")
load("//shared/bazel/rules/gen:gen-version-file.bzl", "generate_version_file")
wpilib_cc_library(
name = "glass",
srcs = glob(["src/lib/native/cpp/**/*.cpp"]),
hdrs = glob(["src/lib/native/include/**"]),
hdrs_pkg_root = "src/lib/native/include",
include_license_files = True,
srcs_pkg_root = "src/lib/native/cpp",
strip_include_prefix = "src/lib/native/include",
tags = [
"wpi-cpp-gui",
],
visibility = ["//visibility:public"],
deps = [
"//fields",
"//wpigui",
"//wpimath",
"//wpiutil",
],
)
wpilib_cc_static_library(
name = "static/glass",
static_deps = [
"//wpigui:static/wpigui",
"//wpimath:static/wpimath",
"//wpiutil:static/wpiutil",
"//fields:static/fields",
],
visibility = ["//visibility:public"],
deps = [
":glass",
],
)
wpilib_cc_library(
name = "glassnt",
srcs = glob(["src/libnt/native/cpp/*.cpp"]),
hdrs = glob(["src/libnt/native/include/**/*.hpp"]),
hdrs_pkg_root = "src/libnt/native/include",
include_license_files = True,
srcs_pkg_root = "src/libnt/native/cpp",
strip_include_prefix = "src/libnt/native/include",
tags = [
"wpi-cpp-gui",
],
visibility = ["//visibility:public"],
deps = [
":glass",
"//ntcore",
],
)
wpilib_cc_static_library(
name = "static/glassnt",
static_deps = [
":static/glass",
"//ntcore:static/ntcore",
],
visibility = ["//visibility:public"],
deps = [
":glassnt",
],
)
generate_version_file(
name = "generate-version",
output_file = "WPILibVersion.cpp",
template = "src/app/generate/WPILibVersion.cpp.in",
)
generate_resources(
name = "generate-resources",
namespace = "glass",
prefix = "GLASS",
resource_files = glob(["src/app/native/resources/*"]),
)
cc_binary(
name = "glassapp",
srcs = [
":generate-resources",
":generate-version",
] + glob(["src/app/native/cpp/**"]),
linkopts = select({
"@platforms//os:windows": ["-SUBSYSTEM:WINDOWS"],
"//conditions:default": [],
}),
tags = [
"wpi-cpp-gui",
],
deps = [
":glassnt",
],
)
package_minimal_cc_project(
name = "glass",
maven_artifact_name = "libglass",
maven_group_id = "edu.wpi.first.glass",
)
package_minimal_cc_project(
name = "glassnt",
maven_artifact_name = "libglassnt",
maven_group_id = "edu.wpi.first.glass",
)
package_binary_cc_project(
name = "glassapp",
maven_artifact_name = "Glass",
maven_group_id = "edu.wpi.first.tools",
renames = {
"glassapp": "glass",
},
)