135 lines · plain
1set(LLVM_LINK_COMPONENTS2 FrontendOpenMP3 Support4 )5 6configure_file(7 ${CMAKE_CURRENT_SOURCE_DIR}/clang-tidy-config.h.cmake8 ${CMAKE_CURRENT_BINARY_DIR}/clang-tidy-config.h)9include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR})10 11add_clang_library(clangTidy STATIC12 ClangTidy.cpp13 ClangTidyCheck.cpp14 ClangTidyModule.cpp15 ClangTidyDiagnosticConsumer.cpp16 ClangTidyOptions.cpp17 ClangTidyProfiling.cpp18 ExpandModularHeadersPPCallbacks.cpp19 GlobList.cpp20 NoLintDirectiveHandler.cpp21 22 DEPENDS23 ClangSACheckers24 omp_gen25 ClangDriverOptions26 )27 28clang_target_link_libraries(clangTidy29 PRIVATE30 clangAST31 clangASTMatchers32 clangAnalysis33 clangBasic34 clangFormat35 clangFrontend36 clangLex37 clangRewrite38 clangSerialization39 clangTooling40 clangToolingCore41 )42 43if(CLANG_TIDY_ENABLE_STATIC_ANALYZER)44 clang_target_link_libraries(clangTidy45 PRIVATE46 clangStaticAnalyzerCore47 clangStaticAnalyzerFrontend48 )49endif()50 51# Checks.52# If you add a check, also add it to ClangTidyForceLinker.h in this directory.53add_subdirectory(android)54add_subdirectory(abseil)55add_subdirectory(altera)56add_subdirectory(boost)57add_subdirectory(bugprone)58add_subdirectory(cert)59add_subdirectory(concurrency)60add_subdirectory(cppcoreguidelines)61add_subdirectory(custom)62add_subdirectory(darwin)63add_subdirectory(fuchsia)64add_subdirectory(google)65add_subdirectory(hicpp)66add_subdirectory(linuxkernel)67add_subdirectory(llvm)68add_subdirectory(llvmlibc)69add_subdirectory(misc)70add_subdirectory(modernize)71if(CLANG_TIDY_ENABLE_STATIC_ANALYZER)72 add_subdirectory(mpi)73endif()74add_subdirectory(objc)75add_subdirectory(openmp)76add_subdirectory(performance)77add_subdirectory(portability)78add_subdirectory(readability)79add_subdirectory(zircon)80set(ALL_CLANG_TIDY_CHECKS81 clangTidyAndroidModule82 clangTidyAbseilModule83 clangTidyAlteraModule84 clangTidyBoostModule85 clangTidyBugproneModule86 clangTidyCERTModule87 clangTidyConcurrencyModule88 clangTidyCppCoreGuidelinesModule89 clangTidyDarwinModule90 clangTidyFuchsiaModule91 clangTidyGoogleModule92 clangTidyHICPPModule93 clangTidyLinuxKernelModule94 clangTidyLLVMModule95 clangTidyLLVMLibcModule96 clangTidyMiscModule97 clangTidyModernizeModule98 clangTidyObjCModule99 clangTidyOpenMPModule100 clangTidyPerformanceModule101 clangTidyPortabilityModule102 clangTidyReadabilityModule103 clangTidyZirconModule104 )105 106if(CLANG_TIDY_ENABLE_QUERY_BASED_CUSTOM_CHECKS)107 list(APPEND ALL_CLANG_TIDY_CHECKS clangTidyCustomModule)108endif()109if(CLANG_TIDY_ENABLE_STATIC_ANALYZER)110 list(APPEND ALL_CLANG_TIDY_CHECKS clangTidyMPIModule)111endif()112set(ALL_CLANG_TIDY_CHECKS ${ALL_CLANG_TIDY_CHECKS} PARENT_SCOPE)113 114# Other subtargets. These may reference ALL_CLANG_TIDY_CHECKS115# and must be below its definition.116add_subdirectory(plugin)117add_subdirectory(tool)118add_subdirectory(utils)119 120if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)121 install(DIRECTORY .122 DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/clang-tidy"123 COMPONENT clang-tidy-headers124 FILES_MATCHING125 PATTERN "*.h"126 )127 add_custom_target(clang-tidy-headers)128 set_target_properties(clang-tidy-headers PROPERTIES FOLDER "Clang Tools Extra/Resources")129 if(NOT LLVM_ENABLE_IDE)130 add_llvm_install_targets(install-clang-tidy-headers131 DEPENDS clang-tidy-headers132 COMPONENT clang-tidy-headers)133 endif()134endif()135