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_static_cc_project") load("//shared/bazel/rules:publishing.bzl", "host_architectures") 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 = "wpi::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_static_cc_project( name = "glass", architectures = host_architectures, maven_artifact_name = "libglass", maven_group_id = "org.wpilib.glass", ) package_static_cc_project( name = "glassnt", architectures = host_architectures, maven_artifact_name = "libglassnt", maven_group_id = "org.wpilib.glass", ) package_binary_cc_project( name = "glassapp", maven_artifact_name = "Glass", maven_group_id = "org.wpilib.tools", renames = { "glassapp": "glass", }, )