Index: clang-check/ClangCheck.cpp =================================================================== --- clang-check/ClangCheck.cpp +++ clang-check/ClangCheck.cpp @@ -10,27 +10,6 @@ // This file implements a clang-check tool that runs the // clang::SyntaxOnlyAction over a number of translation units. // -// Usage: -// clang-check ... -// -// Where 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). -// -// ... 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 /path/to/source -// //===----------------------------------------------------------------------===// #include "llvm/Support/CommandLine.h" @@ -43,7 +22,7 @@ cl::opt BuildPath( "p", - cl::desc(""), + cl::desc(""), cl::Optional); cl::list SourcePaths( @@ -51,6 +30,34 @@ cl::desc(" [... ]"), cl::OneOrMore); +static cl::extrahelp MoreHelp( + "\n" + " is a CMake build directory in which a file named\n" + "compile_commands.json exists (enable -DCMAKE_EXPORT_COMPILE_COMMANDS in\n" + "CMake to get this output). When a CMake output directory is not\n" + "specified, clang-check will attempt to locate compile_commands.json\n" + "automatically in all parent paths of the first input file.\n" + "\n" + " ... specify the paths of files in the CMake source tree. This\n" + "path is looked up in the compile command database. If the path of a file\n" + "is absolute, it needs to point into CMake's source tree. If the path is\n" + "relative, the current working directory needs to be in the CMake source\n" + "tree and the file must be in a subdirectory of the current working\n" + "directory. \"./\" prefixes in the relative files will be automatically\n" + "removed, but the rest of a relative path must be a suffix of a path in\n" + "the compile command line 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 -p path/to/source\n" + "\n" + "or using auto-location of compile_commands.json:\n" + "\n" + " find path/in/subtree -name '*.cpp'|xargs clang-check\n" + "\n" +); + int main(int argc, const char **argv) { llvm::OwningPtr Compilations( FixedCompilationDatabase::loadFromCommandLine(argc, argv));