aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Tooling/CommonOptionsParser.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/Tooling/CommonOptionsParser.h')
-rw-r--r--include/clang/Tooling/CommonOptionsParser.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/include/clang/Tooling/CommonOptionsParser.h b/include/clang/Tooling/CommonOptionsParser.h
index eaffe4363515..815ede80c233 100644
--- a/include/clang/Tooling/CommonOptionsParser.h
+++ b/include/clang/Tooling/CommonOptionsParser.h
@@ -28,6 +28,7 @@
#define LLVM_TOOLS_CLANG_INCLUDE_CLANG_TOOLING_COMMONOPTIONSPARSER_H
#include "clang/Tooling/CompilationDatabase.h"
+#include "llvm/Support/CommandLine.h"
namespace clang {
namespace tooling {
@@ -46,13 +47,14 @@ namespace tooling {
/// using namespace clang::tooling;
/// using namespace llvm;
///
+/// static cl::OptionCategory MyToolCategory("My tool options");
/// static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage);
/// static cl::extrahelp MoreHelp("\nMore help text...");
-/// static cl:opt<bool> YourOwnOption(...);
+/// static cl::opt<bool> YourOwnOption(...);
/// ...
///
/// int main(int argc, const char **argv) {
-/// CommonOptionsParser OptionsParser(argc, argv);
+/// CommonOptionsParser OptionsParser(argc, argv, MyToolCategory);
/// ClangTool Tool(OptionsParser.getCompilations(),
/// OptionsParser.getSourcePathListi());
/// return Tool.run(newFrontendActionFactory<clang::SyntaxOnlyAction>());
@@ -61,10 +63,16 @@ namespace tooling {
class CommonOptionsParser {
public:
/// \brief Parses command-line, initializes a compilation database.
+ ///
/// This constructor can change argc and argv contents, e.g. consume
/// command-line options used for creating FixedCompilationDatabase.
+ ///
+ /// All options not belonging to \p Category become hidden.
+ ///
/// This constructor exits program in case of error.
- CommonOptionsParser(int &argc, const char **argv, const char *Overview = 0);
+ CommonOptionsParser(int &argc, const char **argv,
+ llvm::cl::OptionCategory &Category,
+ const char *Overview = nullptr);
/// Returns a reference to the loaded compilations database.
CompilationDatabase &getCompilations() {
@@ -79,7 +87,7 @@ public:
static const char *const HelpMessage;
private:
- OwningPtr<CompilationDatabase> Compilations;
+ std::unique_ptr<CompilationDatabase> Compilations;
std::vector<std::string> SourcePathList;
};