mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
Use all our fancy new linking code to link cscore properly. nm reports that the symbols look quite good. Signed-off-by: Austin Schuh <austin.linux@gmail.com> Co-authored-by: PJ Reiniger <pj.reiniger@gmail.com> Co-authored-by: David Vo <auscompgeek@users.noreply.github.com>
91 lines
2.3 KiB
Python
91 lines
2.3 KiB
Python
load("@rules_cc//cc:defs.bzl", "cc_library")
|
|
load("@rules_pkg//:mappings.bzl", "pkg_files")
|
|
load("//shared/bazel/rules:cc_rules.bzl", "wpilib_cc_library", "wpilib_cc_static_library")
|
|
load("//shared/bazel/rules:objectivec_rules.bzl", "wpilib_objc_library")
|
|
load("//shared/bazel/rules:packaging.bzl", "package_minimal_cc_project")
|
|
|
|
WIN_SRCS = glob(["src/main/native/directx11/**/*.cpp"])
|
|
|
|
LINUX_SRCS = glob(["src/main/native/opengl3/**/*.cpp"])
|
|
|
|
MAC_SRCS = glob(["src/main/native/metal/**/*.mm"])
|
|
|
|
cc_library(
|
|
name = "headers",
|
|
hdrs = glob(["src/main/native/include/**/*"]),
|
|
strip_include_prefix = "src/main/native/include",
|
|
)
|
|
|
|
wpilib_objc_library(
|
|
name = "wpigui-mac",
|
|
srcs = MAC_SRCS,
|
|
sdk_frameworks = [
|
|
"Metal",
|
|
"MetalKit",
|
|
"Cocoa",
|
|
"IOKit",
|
|
"CoreFoundation",
|
|
"CoreVideo",
|
|
"QuartzCore",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
":headers",
|
|
"//thirdparty/imgui_suite",
|
|
],
|
|
)
|
|
|
|
pkg_files(
|
|
name = "native-pkg",
|
|
srcs = glob([
|
|
"src/main/native/directx11/**",
|
|
"src/main/native/opengl3/**",
|
|
"src/main/native/metal/**",
|
|
]),
|
|
)
|
|
|
|
wpilib_cc_library(
|
|
name = "wpigui",
|
|
srcs = glob(["src/main/native/cpp/**/*.cpp"]) +
|
|
select({
|
|
"@platforms//os:osx": [],
|
|
"@platforms//os:windows": WIN_SRCS,
|
|
"@rules_bzlmodrio_toolchains//constraints/combined:is_linux": LINUX_SRCS,
|
|
}),
|
|
extra_src_pkg_files = [":native-pkg"],
|
|
include_license_files = True,
|
|
strip_include_prefix = "include",
|
|
tags = [
|
|
"wpi-cpp-gui",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
":headers",
|
|
"//thirdparty/imgui_suite",
|
|
] + select({
|
|
"@platforms//os:osx": [":wpigui-mac"],
|
|
"//conditions:default": [],
|
|
}),
|
|
)
|
|
|
|
wpilib_cc_static_library(
|
|
name = "static/wpigui",
|
|
static_deps = [
|
|
"//thirdparty/imgui_suite:static/imguiSuite",
|
|
],
|
|
static_lib_name = select({
|
|
"@platforms//os:windows": "static/wpigui.lib",
|
|
"//conditions:default": "static/libwpigui.a",
|
|
}),
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
":wpigui",
|
|
],
|
|
)
|
|
|
|
package_minimal_cc_project(
|
|
name = "wpigui",
|
|
maven_artifact_name = "wpigui-cpp",
|
|
maven_group_id = "edu.wpi.first.wpigui",
|
|
)
|