From f26d801940a073990d161c1f02fc2e60f58b2ec1 Mon Sep 17 00:00:00 2001 From: Zach Harel Date: Sun, 16 Nov 2025 18:22:10 -0500 Subject: [PATCH 1/2] Do glob Signed-off-by: Zach Harel --- apriltag/BUILD.bazel | 6 ++++-- cameraserver/BUILD.bazel | 6 ++++-- commandsv2/BUILD.bazel | 6 ++++-- cscore/BUILD.bazel | 20 ++++++++++++++------ datalog/BUILD.bazel | 7 +++++-- fields/BUILD.bazel | 6 ++++-- glass/BUILD.bazel | 4 +++- hal/BUILD.bazel | 8 +++++--- ntcore/BUILD.bazel | 8 ++++++-- ntcoreffi/BUILD.bazel | 8 +++++--- romiVendordep/BUILD.bazel | 6 ++++-- simulation/halsim_ds_socket/BUILD.bazel | 2 +- simulation/halsim_gui/BUILD.bazel | 8 +++++--- simulation/halsim_ws_server/BUILD.bazel | 2 +- simulation/halsim_xrp/BUILD.bazel | 2 +- thirdparty/googletest/BUILD.bazel | 12 ++++++++++-- wpilibc/BUILD.bazel | 9 ++++++--- wpimath/BUILD.bazel | 6 ++++-- wpinet/BUILD.bazel | 7 +++++-- wpiutil/BUILD.bazel | 9 +++++++-- xrpVendordep/BUILD.bazel | 6 ++++-- 21 files changed, 102 insertions(+), 46 deletions(-) diff --git a/apriltag/BUILD.bazel b/apriltag/BUILD.bazel index 9fc0ed5d78b..94aa2ff20f2 100644 --- a/apriltag/BUILD.bazel +++ b/apriltag/BUILD.bazel @@ -68,10 +68,12 @@ generate_resources( wpilib_cc_library( name = "apriltag", srcs = [":generate-resources"] + glob( - ["src/main/native/cpp/**"], + ["src/main/native/cpp/**/*.cpp"], exclude = ["src/main/native/cpp/jni/**"], ), - hdrs = glob(["src/main/native/include/**/*"]), + hdrs = glob([ + "src/main/native/include/**/*.hpp", + ]), extra_hdr_pkg_files = [":thirdparty-apriltag-src-pkg"], extra_src_pkg_files = [":apriltag-java-jni-hdrs-pkg"], local_defines = ["WPILIB_EXPORTS"], diff --git a/cameraserver/BUILD.bazel b/cameraserver/BUILD.bazel index ffaee307df3..ea7813e3534 100644 --- a/cameraserver/BUILD.bazel +++ b/cameraserver/BUILD.bazel @@ -15,8 +15,10 @@ filegroup( wpilib_cc_library( name = "cameraserver", - srcs = glob(["src/main/native/cpp/**"]), - hdrs = glob(["src/main/native/include/**/*"]), + srcs = glob(["src/main/native/cpp/**/*.cpp"]), + hdrs = glob([ + "src/main/native/include/**/*.hpp", + ]), includes = [ "cpp", "src/main/native/include", diff --git a/commandsv2/BUILD.bazel b/commandsv2/BUILD.bazel index f643290b454..5f231b65cfc 100644 --- a/commandsv2/BUILD.bazel +++ b/commandsv2/BUILD.bazel @@ -61,8 +61,10 @@ filegroup( wpilib_cc_library( name = "commandsv2", - srcs = glob(["src/main/native/cpp/**"]), - hdrs = glob(["src/main/native/include/**"]), + srcs = glob(["src/main/native/cpp/**/*.cpp"]), + hdrs = glob([ + "src/main/native/include/**/*.hpp", + ]), includes = ["src/main/native/include"], strip_include_prefix = "src/main/native/include", third_party_libraries = [ diff --git a/cscore/BUILD.bazel b/cscore/BUILD.bazel index eef0ce6899c..0ba763ab15b 100644 --- a/cscore/BUILD.bazel +++ b/cscore/BUILD.bazel @@ -69,11 +69,16 @@ wpilib_objc_library( wpilib_cc_library( name = "cscore", - srcs = [":native-srcs"] + glob( - ["src/main/native/cpp/**"], + srcs = [":native-srcs"] + glob([ + "src/main/native/cpp/**/*.cpp", + "src/main/native/cpp/**/*.hpp", + ], exclude = ["src/main/native/cpp/jni/**"], ), - hdrs = glob(["src/main/native/include/**/*"]), + hdrs = glob([ + "src/main/native/include/**/*.hpp", + "src/main/native/include/**/*.h", + ]), extra_src_pkg_files = [ ":cscore-java-jni-hdrs-pkg", ], @@ -259,9 +264,12 @@ java_binary( [wpilib_cc_library( name = example + "-examples", - srcs = glob([ - "examples/" + example + "/*.cpp", - ]), + srcs = glob( + [ + "examples/" + example + "/*.cpp", + ], + allow_empty = True, + ), tags = [ "wpi-example", ], diff --git a/datalog/BUILD.bazel b/datalog/BUILD.bazel index 54eac8debfb..87f1e56ce42 100644 --- a/datalog/BUILD.bazel +++ b/datalog/BUILD.bazel @@ -14,10 +14,13 @@ load("//shared/bazel/rules/robotpy:pytest_util.bzl", "robotpy_py_test") wpilib_cc_library( name = "datalog", srcs = glob( - ["src/main/native/cpp/**"], + ["src/main/native/cpp/**/*.cpp"], exclude = ["src/main/native/cpp/jni/**"], ), - hdrs = glob(["src/main/native/include/**"]), + hdrs = glob([ + "src/main/native/include/**/*.h", + "src/main/native/include/**/*.hpp", + ]), extra_src_pkg_files = [":datalog-java-jni-hdrs-pkg"], includes = [ "src/main/native/cpp", diff --git a/fields/BUILD.bazel b/fields/BUILD.bazel index b349ba481a6..a6b635ae35e 100644 --- a/fields/BUILD.bazel +++ b/fields/BUILD.bazel @@ -13,8 +13,10 @@ generate_resources( wpilib_cc_library( name = "fields", - srcs = [":generate-resources"] + glob(["src/main/native/cpp/**"]), - hdrs = glob(["src/main/native/include/**/*"]), + srcs = [":generate-resources"] + glob(["src/main/native/cpp/**/*.cpp"]), + hdrs = glob([ + "src/main/native/include/**/*.hpp", + ]), include_license_files = True, strip_include_prefix = "src/main/native/include", visibility = ["//visibility:public"], diff --git a/glass/BUILD.bazel b/glass/BUILD.bazel index 4c61ed3eb47..48caf584ed1 100644 --- a/glass/BUILD.bazel +++ b/glass/BUILD.bazel @@ -8,7 +8,9 @@ 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 = glob([ + "src/lib/native/include/**/*.hpp", + ]), hdrs_pkg_root = "src/lib/native/include", include_license_files = True, srcs_pkg_root = "src/lib/native/cpp", diff --git a/hal/BUILD.bazel b/hal/BUILD.bazel index f80892a31dc..f7b90e1ed37 100644 --- a/hal/BUILD.bazel +++ b/hal/BUILD.bazel @@ -95,12 +95,14 @@ wpilib_cc_library( name = "wpiHal", srcs = [":platform-srcs"] + glob( [ - "src/main/native/cpp/**", - "src/generated/main/native/cpp/**", + "src/main/native/cpp/**/*.cpp", + "src/generated/main/native/cpp/**/*.cpp", ], exclude = ["src/main/native/cpp/jni/**"], ), - hdrs = glob(["src/main/native/include/**/*"]), + hdrs = glob([ + "src/main/native/include/**/*.h", + ]), extra_src_pkg_files = [ ":hal-sim-pkg", ":hal-systemcore-pkg", diff --git a/ntcore/BUILD.bazel b/ntcore/BUILD.bazel index af07a45114e..151eb8ec0b8 100644 --- a/ntcore/BUILD.bazel +++ b/ntcore/BUILD.bazel @@ -91,10 +91,14 @@ cc_library( wpilib_cc_library( name = "ntcore", srcs = glob( - ["src/main/native/cpp/**"], + ["src/main/native/cpp/**/*.cpp", + "src/main/native/cpp/**/*.hpp"], exclude = ["src/main/native/cpp/jni/**"], ), - hdrs = glob(["src/main/native/include/**/*"]), + hdrs = glob([ + "src/main/native/include/**/*.h", + "src/main/native/include/**/*.hpp", + ]), extra_src_pkg_files = [ ":ntcore-java-jni-hdrs-pkg", ], diff --git a/ntcoreffi/BUILD.bazel b/ntcoreffi/BUILD.bazel index a019ccaa7c2..449dd6234c1 100644 --- a/ntcoreffi/BUILD.bazel +++ b/ntcoreffi/BUILD.bazel @@ -29,10 +29,12 @@ cc_library( wpilib_cc_library( name = "ntcoreffi", srcs = glob([ - "src/main/native/c/**", - "src/main/native/cpp/**", + "src/main/native/c/**/*.c", + "src/main/native/cpp/**/*.cpp", + ]), + hdrs = glob([ + "src/main/native/include/**/*.h", ]), - hdrs = glob(["src/main/native/include/**"]), extra_hdr_pkg_files = [ "//wpiutil:fmtlib-hdrs-pkg", "//wpiutil:llvm-hdrs-pkg", diff --git a/romiVendordep/BUILD.bazel b/romiVendordep/BUILD.bazel index 9c65bd98d0f..ee2693d584a 100644 --- a/romiVendordep/BUILD.bazel +++ b/romiVendordep/BUILD.bazel @@ -20,9 +20,11 @@ filegroup( wpilib_cc_library( name = "romiVendordep", srcs = glob([ - "src/main/native/cpp/**", + "src/main/native/cpp/**/*.cpp", + ]), + hdrs = glob([ + "src/main/native/include/**/*.hpp", ]), - hdrs = glob(["src/main/native/include/**"]), strip_include_prefix = "src/main/native/include", visibility = ["//visibility:public"], deps = [ diff --git a/simulation/halsim_ds_socket/BUILD.bazel b/simulation/halsim_ds_socket/BUILD.bazel index 407e4d19ed0..5494878ee97 100644 --- a/simulation/halsim_ds_socket/BUILD.bazel +++ b/simulation/halsim_ds_socket/BUILD.bazel @@ -28,7 +28,7 @@ wpilib_cc_library( wpilib_cc_library( name = "halsim_ds_socket_static", - srcs = glob(["src/main/native/cpp/**"]), + srcs = glob(["src/main/native/cpp/**/*.cpp"]), copts = [ "-DHALSIM_InitExtension=HALSIM_InitExtension_DS_SOCKET", ], diff --git a/simulation/halsim_gui/BUILD.bazel b/simulation/halsim_gui/BUILD.bazel index 19668c43171..7812487c361 100644 --- a/simulation/halsim_gui/BUILD.bazel +++ b/simulation/halsim_gui/BUILD.bazel @@ -6,8 +6,9 @@ load("//shared/bazel/rules:publishing.bzl", "host_architectures") wpilib_cc_library( name = "halsim_gui", srcs = glob([ - "src/main/native/cpp/*", - "src/main/native/include/**/*.hpp", + "src/main/native/cpp/*.cpp", + "src/main/native/cpp/*.hpp", + "src/main/native/include/**/*.hpp" ]), include_license_files = True, includes = ["src/main/native/include"], @@ -32,7 +33,8 @@ wpilib_cc_library( wpilib_cc_library( name = "halsim_gui_static", srcs = glob([ - "src/main/native/cpp/*", + "src/main/native/cpp/*.cpp", + "src/main/native/cpp/*.hpp", "src/main/native/include/**/*.hpp", ]), copts = [ diff --git a/simulation/halsim_ws_server/BUILD.bazel b/simulation/halsim_ws_server/BUILD.bazel index a25fcce1de1..d30752da9ae 100644 --- a/simulation/halsim_ws_server/BUILD.bazel +++ b/simulation/halsim_ws_server/BUILD.bazel @@ -27,7 +27,7 @@ wpilib_cc_library( wpilib_cc_library( name = "halsim_ws_server_static", - srcs = glob(["src/main/native/cpp/**"]), + srcs = glob(["src/main/native/cpp/**/*.cpp"]), copts = [ "-DHALSIM_InitExtension=HALSIM_InitExtension_WS_SERVER", ], diff --git a/simulation/halsim_xrp/BUILD.bazel b/simulation/halsim_xrp/BUILD.bazel index 4abfe3bf287..0985aa2c2ea 100644 --- a/simulation/halsim_xrp/BUILD.bazel +++ b/simulation/halsim_xrp/BUILD.bazel @@ -26,7 +26,7 @@ wpilib_cc_library( wpilib_cc_library( name = "halsim_xrp_static", srcs = glob([ - "src/main/native/cpp/*", + "src/main/native/cpp/*.cpp", "src/main/native/include/**/*.hpp", ]), copts = [ diff --git a/thirdparty/googletest/BUILD.bazel b/thirdparty/googletest/BUILD.bazel index 6de1512ccd6..d4c3bed098c 100644 --- a/thirdparty/googletest/BUILD.bazel +++ b/thirdparty/googletest/BUILD.bazel @@ -3,8 +3,16 @@ load("//shared/bazel/rules:packaging.bzl", "package_static_cc_project") wpilib_cc_library( name = "googletest", - srcs = glob(["src/**"]), - hdrs = glob(["include/**"]), + srcs = glob([ + "src/**/*.cc", + "src/**/*.cpp", + "src/**/*.h", + "src/**/*.hpp", + ], allow_empty = True), + hdrs = glob([ + "include/**/*.h", + "include/**/*.hpp", + ], allow_empty = True), hdrs_pkg_root = "include", include_license_files = True, includes = ["src/googletest"], diff --git a/wpilibc/BUILD.bazel b/wpilibc/BUILD.bazel index 0419e8803fc..0d6944c74fd 100644 --- a/wpilibc/BUILD.bazel +++ b/wpilibc/BUILD.bazel @@ -102,10 +102,13 @@ wpilib_cc_library( srcs = [ ":generate-version", ] + glob([ - "src/main/native/cppcs/**", - "src/main/native/cpp/**", + "src/main/native/cppcs/**/*.cpp", + "src/main/native/cpp/**/*.cpp", + ]), + hdrs = glob([ + "src/main/native/include/**/*.hpp", + "src/main/native/include/**/*.mac" ]), - hdrs = glob(["src/main/native/include/**"]), copts = [ # TODO(austin): this needs to be different for shared vs dynamic. "-DDYNAMIC_CAMERA_SERVER", diff --git a/wpimath/BUILD.bazel b/wpimath/BUILD.bazel index b03ae4f9201..fb79e13ecd4 100644 --- a/wpimath/BUILD.bazel +++ b/wpimath/BUILD.bazel @@ -143,12 +143,14 @@ wpilib_cc_library( name = "wpimath", srcs = glob( [ - "src/main/native/cpp/**", + "src/main/native/cpp/**/*.cpp", "src/generated/main/native/cpp/**/*.cpp", ], exclude = ["src/main/native/cpp/jni/**"], ), - hdrs = glob(["src/main/native/include/**"]), + hdrs = glob([ + "src/main/native/include/**/*.hpp", + ]), extra_hdr_pkg_files = [":protobuf_hdr_pkg"], extra_src_pkg_files = [ ":wpimath-java-jni-hdrs-pkg", diff --git a/wpinet/BUILD.bazel b/wpinet/BUILD.bazel index b457124e528..bd22b20ccaa 100644 --- a/wpinet/BUILD.bazel +++ b/wpinet/BUILD.bazel @@ -126,12 +126,15 @@ cc_library( wpilib_cc_library( name = "wpinet", srcs = glob( - ["src/main/native/cpp/**"], + ["src/main/native/cpp/**/*.cpp"], exclude = ["src/main/native/cpp/jni/**"], ) + [ ":libuv-srcs", ] + ["native-srcs"], - hdrs = glob(["src/main/native/include/**/*"]), + hdrs = glob([ + "src/main/native/include/**/*.h", + "src/main/native/include/**/*.hpp", + ]), extra_hdr_pkg_files = [":thirdparty-libuv-hdr-pkg"], extra_src_pkg_files = [ ":wpinet-java-jni-hdrs-pkg", diff --git a/wpiutil/BUILD.bazel b/wpiutil/BUILD.bazel index d20ed0c6ece..88eee010585 100644 --- a/wpiutil/BUILD.bazel +++ b/wpiutil/BUILD.bazel @@ -165,13 +165,18 @@ filegroup( wpilib_cc_library( name = "wpiutil", srcs = glob( - ["src/main/native/cpp/**"], + ["src/main/native/cpp/**/*.cpp"], exclude = ["src/main/native/cpp/jni/**"], ) + [ ":generate-resources", ":native-srcs", ], - hdrs = glob(["src/main/native/include/**/*"]), + hdrs = glob([ + "src/main/native/include/**/*.h", + "src/main/native/include/**/*.hpp", + ]) + [ + "src/main/native/include/wpi/util/scope", + ], extra_src_pkg_files = [":wpiutil-java-jni-hdrs-pkg"], includes = ["src/main/native/include"], strip_include_prefix = "src/main/native/include", diff --git a/xrpVendordep/BUILD.bazel b/xrpVendordep/BUILD.bazel index 02aee050aaf..58417bb1859 100644 --- a/xrpVendordep/BUILD.bazel +++ b/xrpVendordep/BUILD.bazel @@ -20,9 +20,11 @@ filegroup( wpilib_cc_library( name = "xrpVendordep", srcs = glob([ - "src/main/native/cpp/**", + "src/main/native/cpp/**/*.cpp", + ]), + hdrs = glob([ + "src/main/native/include/**/*.hpp", ]), - hdrs = glob(["src/main/native/include/**"]), strip_include_prefix = "src/main/native/include", visibility = ["//visibility:public"], deps = [ From d7eae1b2f69c370d1d7f47217da2115ef799ebc5 Mon Sep 17 00:00:00 2001 From: Zach Harel Date: Sun, 16 Nov 2025 18:56:30 -0500 Subject: [PATCH 2/2] Add an argument for file extensions in third_party_cc_lib_helper Signed-off-by: Zach Harel --- shared/bazel/rules/cc_rules.bzl | 8 +++++--- wpiutil/BUILD.bazel | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/shared/bazel/rules/cc_rules.bzl b/shared/bazel/rules/cc_rules.bzl index 47ede9ace1e..c348041de5c 100644 --- a/shared/bazel/rules/cc_rules.bzl +++ b/shared/bazel/rules/cc_rules.bzl @@ -190,7 +190,9 @@ def third_party_cc_lib_helper( src_root = None, src_excludes = [], defines = [], - visibility = None): + visibility = None, + hdr_exts = ['.h', '.hpp'] + ): """ Helper for src / headers pairs that aren't directly compiled, but rather pulled into a bigger library. @@ -210,8 +212,8 @@ def third_party_cc_lib_helper( cc_library( name = name + "-headers", hdrs = native.glob([ - include_root + "/**", - ]), + include_root + "/**/*" + ext for ext in hdr_exts + ], allow_empty = True), includes = [include_root], defines = defines, strip_include_prefix = include_root, diff --git a/wpiutil/BUILD.bazel b/wpiutil/BUILD.bazel index 88eee010585..b447227ef5c 100644 --- a/wpiutil/BUILD.bazel +++ b/wpiutil/BUILD.bazel @@ -99,6 +99,7 @@ third_party_cc_lib_helper( name = "expected", include_root = "src/main/native/thirdparty/expected/include", visibility = ["//visibility:public"], + hdr_exts = [""] ) third_party_cc_lib_helper( @@ -145,6 +146,7 @@ third_party_cc_lib_helper( name = "upb", include_root = "src/main/native/thirdparty/upb/include", src_root = "src/main/native/thirdparty/upb/src", + hdr_exts = [".h", ".inc"], ) generate_resources(