From 8d40af68bd275b5a96d19be54caecb97077a8b4d Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Wed, 24 Sep 2025 23:50:38 +0800 Subject: [PATCH] [clang-tidy][bazel][NFC] enable custom checks in bazel build --- .../clang-tools-extra/clang-query/BUILD.bazel | 28 +++++++++++++++ .../clang-tools-extra/clang-tidy/BUILD.bazel | 35 +++++++++++++++++-- 2 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 utils/bazel/llvm-project-overlay/clang-tools-extra/clang-query/BUILD.bazel diff --git a/utils/bazel/llvm-project-overlay/clang-tools-extra/clang-query/BUILD.bazel b/utils/bazel/llvm-project-overlay/clang-tools-extra/clang-query/BUILD.bazel new file mode 100644 index 0000000000000..05fcbf7beb99f --- /dev/null +++ b/utils/bazel/llvm-project-overlay/clang-tools-extra/clang-query/BUILD.bazel @@ -0,0 +1,28 @@ +# This file is licensed under the Apache License v2.0 with LLVM Exceptions. +# See https://llvm.org/LICENSE.txt for license information. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +load("@rules_cc//cc:defs.bzl", "cc_library") + +package( + default_visibility = ["//visibility:public"], + features = ["layering_check"], +) + +licenses(["notice"]) + +cc_library( + name = "lib", + srcs = glob(["*.cpp"]), + hdrs = glob(["*.h"]), + deps = [ + "//clang:ast", + "//clang:ast_matchers", + "//clang:ast_matchers_dynamic", + "//clang:basic", + "//clang:frontend", + "//clang:serialization", + "//llvm:LineEditor", + "//llvm:Support", + ], +) diff --git a/utils/bazel/llvm-project-overlay/clang-tools-extra/clang-tidy/BUILD.bazel b/utils/bazel/llvm-project-overlay/clang-tools-extra/clang-tidy/BUILD.bazel index e944270896c0d..8fdd29d2410a5 100644 --- a/utils/bazel/llvm-project-overlay/clang-tools-extra/clang-tidy/BUILD.bazel +++ b/utils/bazel/llvm-project-overlay/clang-tools-extra/clang-tidy/BUILD.bazel @@ -23,6 +23,11 @@ bool_flag( build_setting_default = True, ) +bool_flag( + name = "enable_custom_checks", + build_setting_default = True, +) + config_setting( name = "static_analyzer_enabled", flag_values = { @@ -30,13 +35,25 @@ config_setting( }, ) +config_setting( + name = "custom_checks_enabled", + flag_values = { + ":enable_custom_checks": "true", + }, +) + expand_template( name = "config", out = "clang-tidy-config.h", substitutions = - { - "#cmakedefine01 CLANG_TIDY_ENABLE_QUERY_BASED_CUSTOM_CHECKS": "#define CLANG_TIDY_ENABLE_QUERY_BASED_CUSTOM_CHECKS 0", - } | select({ + select({ + ":custom_checks_enabled": { + "#cmakedefine01 CLANG_TIDY_ENABLE_QUERY_BASED_CUSTOM_CHECKS": "#define CLANG_TIDY_ENABLE_QUERY_BASED_CUSTOM_CHECKS 1", + }, + "//conditions:default": { + "#cmakedefine01 CLANG_TIDY_ENABLE_QUERY_BASED_CUSTOM_CHECKS": "#define CLANG_TIDY_ENABLE_QUERY_BASED_CUSTOM_CHECKS 0", + }, + }) | select({ ":static_analyzer_enabled": { "#cmakedefine01 CLANG_TIDY_ENABLE_STATIC_ANALYZER": "#define CLANG_TIDY_ENABLE_STATIC_ANALYZER 1", }, @@ -207,6 +224,15 @@ clang_tidy_library( ], ) +clang_tidy_library( + name = "custom", + deps = [ + ":lib", + "//clang:ast_matchers_dynamic", + "//clang-tools-extra/clang-query:lib", + ], +) + clang_tidy_library( name = "concurrency", deps = [":lib"], @@ -363,6 +389,9 @@ CHECKS = [ ] + select({ ":static_analyzer_enabled": [":mpi"], "//conditions:default": [], +}) + select({ + ":custom_checks_enabled": [":custom"], + "//conditions:default": [], }) cc_library(