| //===- tools/clang-check/ClangCheck.cpp - Clang check tool ----------------===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This file implements a clang-check tool that runs the |
| // clang::SyntaxOnlyAction over a number of translation units. |
| // |
| // This tool uses the Clang Tooling infrastructure, see |
| // http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html |
| // for details on setting it up with LLVM source tree. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "llvm/Support/CommandLine.h" |
| #include "clang/Frontend/FrontendActions.h" |
| #include "clang/Tooling/CommandLineClangTool.h" |
| #include "clang/Tooling/Tooling.h" |
| |
| using namespace clang::tooling; |
| using namespace llvm; |
| |
| static const char *MoreHelpText = |
| "\tFor example, to run clang-check on all files in a subtree of the\n" |
| "\tsource tree, use:\n" |
| "\n" |
| "\t find path/in/subtree -name '*.cpp'|xargs clang-check\n" |
| "\n" |
| "\tor using a specific build path:\n" |
| "\n" |
| "\t find path/in/subtree -name '*.cpp'|xargs clang-check -p build/path\n" |
| "\n" |
| "\tNote, that path/in/subtree and current directory should follow the\n" |
| "\trules described above.\n" |
| "\n"; |
| |
| int main(int argc, const char **argv) { |
| CommandLineClangTool Tool; |
| cl::extrahelp MoreHelp(MoreHelpText); |
| Tool.initialize(argc, argv); |
| return Tool.run(newFrontendActionFactory<clang::SyntaxOnlyAction>()); |
| } |