100 lines · plain
1import("//clang/lib/StaticAnalyzer/Frontend/enable.gni")2import("//llvm/utils/gn/build/write_cmake_config.gni")3import("enable.gni")4 5config("clang-tidy-config_Config") {6 visibility = [ ":clang-tidy-config" ]7 include_dirs = [ "$target_gen_dir" ]8}9 10write_cmake_config("clang-tidy-config") {11 input = "clang-tidy-config.h.cmake"12 output = "$target_gen_dir/clang-tidy-config.h"13 values = []14 15 if (clang_tidy_enable_static_analyzer) {16 values += [ "CLANG_TIDY_ENABLE_STATIC_ANALYZER=1" ]17 } else {18 values += [ "CLANG_TIDY_ENABLE_STATIC_ANALYZER=" ]19 }20 21 # FIXME: Add option for this?22 values += [ "CLANG_TIDY_ENABLE_QUERY_BASED_CUSTOM_CHECKS=1" ]23 24 # Let targets depending on this find the generated file.25 public_configs = [ ":clang-tidy-config_Config" ]26}27 28static_library("clang-tidy") {29 output_name = "clangTidy"30 configs += [ "//llvm/utils/gn/build:clang_code" ]31 deps = [32 ":clang-tidy-config",33 "//clang/include/clang/StaticAnalyzer/Checkers",34 "//clang/lib/AST",35 "//clang/lib/ASTMatchers",36 "//clang/lib/Basic",37 "//clang/lib/Format",38 "//clang/lib/Frontend",39 "//clang/lib/Lex",40 "//clang/lib/Rewrite",41 "//clang/lib/Sema",42 "//clang/lib/Serialization",43 "//clang/lib/Tooling",44 "//clang/lib/Tooling/Core",45 "//llvm/lib/Support",46 ]47 48 if (clang_tidy_enable_static_analyzer) {49 deps += [50 "//clang/lib/StaticAnalyzer/Core",51 "//clang/lib/StaticAnalyzer/Frontend",52 ]53 }54 55 sources = [56 "ClangTidy.cpp",57 "ClangTidyCheck.cpp",58 "ClangTidyDiagnosticConsumer.cpp",59 "ClangTidyModule.cpp",60 "ClangTidyOptions.cpp",61 "ClangTidyProfiling.cpp",62 "ExpandModularHeadersPPCallbacks.cpp",63 "GlobList.cpp",64 "NoLintDirectiveHandler.cpp",65 ]66}67 68group("all-checks") {69 # If you add a check, also add it to ClangTidyForceLinker.h.70 deps = [71 "//clang-tools-extra/clang-tidy/abseil",72 "//clang-tools-extra/clang-tidy/altera",73 "//clang-tools-extra/clang-tidy/android",74 "//clang-tools-extra/clang-tidy/boost",75 "//clang-tools-extra/clang-tidy/bugprone",76 "//clang-tools-extra/clang-tidy/cert",77 "//clang-tools-extra/clang-tidy/concurrency",78 "//clang-tools-extra/clang-tidy/cppcoreguidelines",79 "//clang-tools-extra/clang-tidy/custom",80 "//clang-tools-extra/clang-tidy/darwin",81 "//clang-tools-extra/clang-tidy/fuchsia",82 "//clang-tools-extra/clang-tidy/google",83 "//clang-tools-extra/clang-tidy/hicpp",84 "//clang-tools-extra/clang-tidy/linuxkernel",85 "//clang-tools-extra/clang-tidy/llvm",86 "//clang-tools-extra/clang-tidy/llvmlibc",87 "//clang-tools-extra/clang-tidy/misc",88 "//clang-tools-extra/clang-tidy/modernize",89 "//clang-tools-extra/clang-tidy/objc",90 "//clang-tools-extra/clang-tidy/openmp",91 "//clang-tools-extra/clang-tidy/performance",92 "//clang-tools-extra/clang-tidy/portability",93 "//clang-tools-extra/clang-tidy/readability",94 "//clang-tools-extra/clang-tidy/zircon",95 ]96 if (clang_tidy_enable_static_analyzer) {97 deps += [ "//clang-tools-extra/clang-tidy/mpi" ]98 }99}100