diff options
author | Alexander Kornienko <alexfh@google.com> | 2014-06-05 13:31:45 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2014-06-05 13:31:45 +0000 |
commit | a46952221e44cb53b707bca433b5177191de779d (patch) | |
tree | 37dc2ed74d55a6923b224b86f55027fdf7e9991d /clang-tools-extra/clang-tidy/ClangTidyOptions.cpp | |
parent | 57eba53a015e1541e6d8a89382a23d9adc7ebf3b (diff) | |
download | bcm5719-llvm-a46952221e44cb53b707bca433b5177191de779d.tar.gz bcm5719-llvm-a46952221e44cb53b707bca433b5177191de779d.zip |
Allow per-file clang-tidy options.
Summary:
This patch makes it possible for clang-tidy clients to provide
different options for different translation units. The option, which doesn't
make sense to be file-dependent, was moved to a separate ClangTidyGlobalOptions
struct. Added parsing of ClangTidyOptions.
Reviewers: klimek
Reviewed By: klimek
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D3979
llvm-svn: 210260
Diffstat (limited to 'clang-tools-extra/clang-tidy/ClangTidyOptions.cpp')
-rw-r--r-- | clang-tools-extra/clang-tidy/ClangTidyOptions.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp b/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp index fcf66ee8a61..93e12ca0870 100644 --- a/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp +++ b/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp @@ -10,6 +10,7 @@ #include "ClangTidyOptions.h" #include "llvm/Support/YAMLTraits.h" +using clang::tidy::ClangTidyOptions; using clang::tidy::FileFilter; LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR(FileFilter) @@ -46,6 +47,14 @@ template <> struct MappingTraits<FileFilter> { } }; +template <> struct MappingTraits<ClangTidyOptions> { + static void mapping(IO &IO, ClangTidyOptions &Options) { + IO.mapOptional("Checks", Options.Checks); + IO.mapOptional("HeaderFilterRegex", Options.HeaderFilterRegex); + IO.mapOptional("AnalyzeTemporaryDtors", Options.AnalyzeTemporaryDtors); + } +}; + } // namespace yaml } // namespace llvm @@ -54,11 +63,18 @@ namespace tidy { /// \brief Parses -line-filter option and stores it to the \c Options. llvm::error_code parseLineFilter(const std::string &LineFilter, - clang::tidy::ClangTidyOptions &Options) { + clang::tidy::ClangTidyGlobalOptions &Options) { llvm::yaml::Input Input(LineFilter); Input >> Options.LineFilter; return Input.error(); } +llvm::error_code parseConfiguration(const std::string &Config, + clang::tidy::ClangTidyOptions &Options) { + llvm::yaml::Input Input(Config); + Input >> Options; + return Input.error(); +} + } // namespace tidy } // namespace clang |