summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clang-doc/tool/ClangDocMain.cpp')
-rw-r--r--clang-tools-extra/clang-doc/tool/ClangDocMain.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp b/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
index fb1ed5b9421..e569d89ed8f 100644
--- a/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
+++ b/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
@@ -76,6 +76,18 @@ static llvm::cl::list<std::string> UserStylesheets(
llvm::cl::desc("CSS stylesheets to extend the default styles."),
llvm::cl::cat(ClangDocCategory));
+static llvm::cl::opt<std::string> SourceRoot("source-root", llvm::cl::desc(R"(
+Directory where processed files are stored.
+Links to definition locations will only be
+generated if the file is in this dir.)"),
+ llvm::cl::cat(ClangDocCategory));
+
+static llvm::cl::opt<std::string>
+ RepositoryUrl("repository", llvm::cl::desc(R"(
+URL of repository that hosts code.
+Used for links to definition locations.)"),
+ llvm::cl::cat(ClangDocCategory));
+
enum OutputFormatTy {
md,
yaml,
@@ -142,7 +154,7 @@ bool CreateDirectory(const Twine &DirName, bool ClearDirectory = false) {
// <root>/A/B/C.<ext>
//
// namespace A {
-// namesapce B {
+// namespace B {
//
// class C {};
//
@@ -191,10 +203,18 @@ int main(int argc, const char **argv) {
tooling::ArgumentInsertPosition::END),
ArgAdjuster);
+ llvm::SmallString<128> SourceRootDir;
+ // Check if the --source-root flag has a value
+ if (SourceRoot.empty())
+ // If it's empty the current path is used as the default
+ llvm::sys::fs::current_path(SourceRootDir);
+
clang::doc::ClangDocContext CDCtx = {
Exec->get()->getExecutionContext(),
PublicOnly,
OutDirectory,
+ SourceRootDir.str(),
+ RepositoryUrl,
{UserStylesheets.begin(), UserStylesheets.end()},
{"index.js", "index_json.js"}};
OpenPOWER on IntegriCloud