| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | 
							- /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 
-    file Copyright.txt or https://cmake.org/licensing for details.  */
 
- /* This code was originally taken from part of the Clang-Tidy LLVM project and
 
-  * modified for use with CMake under the following original license: */
 
- //===--- HeaderGuard.h - clang-tidy -----------------------------*- C++
 
- //-*-===//
 
- //
 
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM
 
- // Exceptions. See https://llvm.org/LICENSE.txt for license information.
 
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
- //
 
- //===----------------------------------------------------------------------===//
 
- #pragma once
 
- #include <clang-tidy/ClangTidyCheck.h>
 
- #include <clang-tidy/utils/FileExtensionsUtils.h>
 
- namespace clang {
 
- namespace tidy {
 
- namespace cmake {
 
- /// Finds and replaces header guards with pragma once.
 
- /// The check supports these options:
 
- ///   - `HeaderFileExtensions`: a semicolon-separated list of filename
 
- ///     extensions of header files (The filename extension should not contain
 
- ///     "." prefix). ";h;hh;hpp;hxx" by default.
 
- ///
 
- ///     For extension-less header files, using an empty string or leaving an
 
- ///     empty string between ";" if there are other filename extensions.
 
- class UsePragmaOnceCheck : public ClangTidyCheck
 
- {
 
- public:
 
-   UsePragmaOnceCheck(StringRef Name, ClangTidyContext* Context)
 
-     : ClangTidyCheck(Name, Context)
 
-     , RawStringHeaderFileExtensions(Options.getLocalOrGlobal(
 
-         "HeaderFileExtensions", utils::defaultHeaderFileExtensions()))
 
-   {
 
-     utils::parseFileExtensions(RawStringHeaderFileExtensions,
 
-                                HeaderFileExtensions,
 
-                                utils::defaultFileExtensionDelimiters());
 
-   }
 
-   void storeOptions(ClangTidyOptions::OptionMap& Opts) override;
 
-   void registerPPCallbacks(const SourceManager& SM, Preprocessor* PP,
 
-                            Preprocessor* ModuleExpanderPP) override;
 
-   /// Returns ``true`` if the check should add pragma once to the file
 
-   /// if it has none.
 
-   virtual bool shouldSuggestToAddPragmaOnce(StringRef Filename);
 
- private:
 
-   std::string RawStringHeaderFileExtensions;
 
-   utils::FileExtensionsSet HeaderFileExtensions;
 
- };
 
- } // namespace cmake
 
- } // namespace tidy
 
- } // namespace clang
 
 
  |