summaryrefslogtreecommitdiff
path: root/clang-tools-extra/clang-doc
diff options
context:
space:
mode:
authorPetr Hosek <phosek@google.com>2022-07-21 08:12:08 +0000
committerPetr Hosek <phosek@google.com>2022-08-04 17:43:16 +0000
commitea50901aa9e58fe3750df3e38471e65b027317fc (patch)
treefc8f732e885bb7d1d67a5eb57cd941c261bde759 /clang-tools-extra/clang-doc
parent0eaecbbc231883b43d3ac761b276d9f505c89c27 (diff)
downloadllvm-ea50901aa9e58fe3750df3e38471e65b027317fc.tar.gz
[clang-doc] Default to Standalone executor and improve documentation
This should provide a more intuitive usage consistent with other tools. Differential Revision: https://reviews.llvm.org/D130226
Diffstat (limited to 'clang-tools-extra/clang-doc')
-rw-r--r--clang-tools-extra/clang-doc/tool/ClangDocMain.cpp27
1 files changed, 19 insertions, 8 deletions
diff --git a/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp b/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
index 218e36d9d91e..fc22e55edfb1 100644
--- a/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
+++ b/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
@@ -182,12 +182,23 @@ int main(int argc, const char **argv) {
llvm::sys::PrintStackTraceOnErrorSignal(argv[0]);
std::error_code OK;
- ExecutorName.setInitialValue("all-TUs");
- auto Exec = clang::tooling::createExecutorFromCommandLineArgs(
- argc, argv, ClangDocCategory);
+ const char *Overview =
+ R"(Generates documentation from source code and comments.
- if (!Exec) {
- llvm::errs() << toString(Exec.takeError()) << "\n";
+Example usage for files without flags (default):
+
+ $ clang-doc File1.cpp File2.cpp ... FileN.cpp
+
+Example usage for a project using a compile commands database:
+
+ $ clang-doc --executor=all-TUs compile_commands.json
+)";
+
+ auto Executor = clang::tooling::createExecutorFromCommandLineArgs(
+ argc, argv, ClangDocCategory, Overview);
+
+ if (!Executor) {
+ llvm::errs() << toString(Executor.takeError()) << "\n";
return 1;
}
@@ -208,7 +219,7 @@ int main(int argc, const char **argv) {
ArgAdjuster);
clang::doc::ClangDocContext CDCtx = {
- Exec->get()->getExecutionContext(),
+ Executor->get()->getExecutionContext(),
ProjectName,
PublicOnly,
OutDirectory,
@@ -239,7 +250,7 @@ int main(int argc, const char **argv) {
// Mapping phase
llvm::outs() << "Mapping decls...\n";
auto Err =
- Exec->get()->execute(doc::newMapperActionFactory(CDCtx), ArgAdjuster);
+ Executor->get()->execute(doc::newMapperActionFactory(CDCtx), ArgAdjuster);
if (Err) {
if (IgnoreMappingFailures)
llvm::errs() << "Error mapping decls in files. Clang-doc will ignore "
@@ -256,7 +267,7 @@ int main(int argc, const char **argv) {
// bitcode-encoded representation of the Info object.
llvm::outs() << "Collecting infos...\n";
llvm::StringMap<std::vector<StringRef>> USRToBitcode;
- Exec->get()->getToolResults()->forEachResult(
+ Executor->get()->getToolResults()->forEachResult(
[&](StringRef Key, StringRef Value) {
auto R = USRToBitcode.try_emplace(Key, std::vector<StringRef>());
R.first->second.emplace_back(Value);