Updated -help message in clang-check.

Summary: Provide more information on usage in -help

Test Plan: ran once

Reviewers: klimek, chandlerc, djasper

Reviewed By: klimek

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D5

llvm-svn: 160132
This commit is contained in:
Alexander Kornienko 2012-07-12 14:34:23 +00:00
parent 3f7e9d2b45
commit 8480d420d3
1 changed files with 33 additions and 22 deletions

View File

@ -10,28 +10,6 @@
// This file implements a clang-check tool that runs the
// clang::SyntaxOnlyAction over a number of translation units.
//
// Usage:
// clang-check [-p <cmake-output-dir>] <file1> <file2> ...
//
// Where <cmake-output-dir> is a CMake build directory in which a file named
// compile_commands.json exists (enable -DCMAKE_EXPORT_COMPILE_COMMANDS in
// CMake to get this output). If not provided, clang-check will search for this
// file in all of <file1>'s parent directories.
//
// <file1> ... specify the paths of files in the CMake source tree. This path
// is looked up in the compile command database. If the path of a file is
// absolute, it needs to point into CMake's source tree. If the path is
// relative, the current working directory needs to be in the CMake source
// tree and the file must be in a subdirectory of the current working
// directory. "./" prefixes in the relative files will be automatically
// removed, but the rest of a relative path must be a suffix of a path in
// the compile command line database.
//
// For example, to use clang-check on all files in a subtree of the source
// tree, use:
//
// /path/in/subtree $ find . -name '*.cpp'| xargs clang-check
//
//===----------------------------------------------------------------------===//
#include "llvm/Support/CommandLine.h"
@ -52,6 +30,39 @@ cl::list<std::string> SourcePaths(
cl::desc("<source0> [... <sourceN>]"),
cl::OneOrMore);
static cl::extrahelp MoreHelp(
"\n"
"<build-path> is used to read a compile command database.\n"
"\n"
"For example, it can be a CMake build directory in which a file named\n"
"compile_commands.json exists (use -DCMAKE_EXPORT_COMPILE_COMMANDS=ON\n"
"CMake option to get this output). When no build path is specified,\n"
"clang-check will attempt to locate it automatically using all parent\n"
"paths of the first input file.\n"
"\n"
"<source0> ... specify the paths of source files. These paths are looked\n"
"up in the compile command database. If the path of a file is absolute,\n"
"it needs to point into CMake's source tree. If the path is relative,\n"
"the current working directory needs to be in the CMake source tree and\n"
"the file must be in a subdirectory of the current working directory.\n"
"\"./\" prefixes in the relative files will be automatically removed,\n"
"but the rest of a relative path must be a suffix of a path in the\n"
"compile command database.\n"
"\n"
"For example, to use clang-check on all files in a subtree of the source\n"
"tree, use:\n"
"\n"
" find path/in/subtree -name '*.cpp'|xargs clang-check\n"
"\n"
"or using a specific build path:\n"
"\n"
" find path/in/subtree -name '*.cpp'|xargs clang-check -p build/path\n"
"\n"
"Note, that path/in/subtree and current directory should follow the\n"
"rules described above.\n"
"\n"
);
int main(int argc, const char **argv) {
llvm::OwningPtr<CompilationDatabase> Compilations(
FixedCompilationDatabase::loadFromCommandLine(argc, argv));