diff options
| author | Diego Astiazaran <diegoaat97@gmail.com> | 2019-07-25 22:46:40 +0000 |
|---|---|---|
| committer | Diego Astiazaran <diegoaat97@gmail.com> | 2019-07-25 22:46:40 +0000 |
| commit | acd35f6c5e33281a8c1d24638768dc7cba120fba (patch) | |
| tree | 01995591589545f17771ef345f8b20ca1c9877c0 /clang-tools-extra/clang-doc/tool/ClangDocMain.cpp | |
| parent | fc8c65b2e11d21b1c0ce070cc0a4ee031a542dae (diff) | |
| download | bcm5719-llvm-acd35f6c5e33281a8c1d24638768dc7cba120fba.tar.gz bcm5719-llvm-acd35f6c5e33281a8c1d24638768dc7cba120fba.zip | |
[clang-doc] Add option for user provided stylesheets
An option has been added to clang-doc to provide a list of css stylesheets that the user wants to use for the generated html docs.
Depends on D64539.
Differential Revision: https://reviews.llvm.org/D64938
llvm-svn: 367072
Diffstat (limited to 'clang-tools-extra/clang-doc/tool/ClangDocMain.cpp')
| -rw-r--r-- | clang-tools-extra/clang-doc/tool/ClangDocMain.cpp | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp b/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp index 89918701dc5..0e910f3506c 100644 --- a/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp +++ b/clang-tools-extra/clang-doc/tool/ClangDocMain.cpp @@ -62,6 +62,11 @@ static llvm::cl::opt<bool> DoxygenOnly( llvm::cl::desc("Use only doxygen-style comments to generate docs."), llvm::cl::init(false), llvm::cl::cat(ClangDocCategory)); +static llvm::cl::list<std::string> UserStylesheets( + "stylesheets", llvm::cl::CommaSeparated, + llvm::cl::desc("CSS stylesheets to extend the default styles."), + llvm::cl::cat(ClangDocCategory)); + enum OutputFormatTy { md, yaml, @@ -201,12 +206,26 @@ int main(int argc, const char **argv) { tooling::ArgumentInsertPosition::END), ArgAdjuster); + clang::doc::ClangDocContext CDCtx = { + Exec->get()->getExecutionContext(), + PublicOnly, + OutDirectory, + {UserStylesheets.begin(), UserStylesheets.end()}}; + + if (Format == "html") { + void *MainAddr = (void *)(intptr_t)GetExecutablePath; + std::string ClangDocPath = GetExecutablePath(argv[0], MainAddr); + llvm::SmallString<128> DefaultStylesheet; + llvm::sys::path::native(ClangDocPath, DefaultStylesheet); + DefaultStylesheet = llvm::sys::path::parent_path(DefaultStylesheet); + llvm::sys::path::append(DefaultStylesheet, + "../share/clang/clang-doc-default-stylesheet.css"); + CDCtx.UserStylesheets.insert(CDCtx.UserStylesheets.begin(), + DefaultStylesheet.str()); + } + // Mapping phase llvm::outs() << "Mapping decls...\n"; - void *MainAddr = (void *)(intptr_t)GetExecutablePath; - std::string ClangDocPath = GetExecutablePath(argv[0], MainAddr); - clang::doc::ClangDocContext CDCtx = {Exec->get()->getExecutionContext(), - PublicOnly, OutDirectory, ClangDocPath}; auto Err = Exec->get()->execute(doc::newMapperActionFactory(CDCtx), ArgAdjuster); if (Err) { @@ -245,7 +264,7 @@ int main(int argc, const char **argv) { continue; } - if (auto Err = G->get()->generateDocForInfo(I, InfoOS)) + if (auto Err = G->get()->generateDocForInfo(I, InfoOS, CDCtx)) llvm::errs() << toString(std::move(Err)) << "\n"; } |

