Home | History | Annotate | Download | only in Frontend
      1 //===--- DependencyOutputOptions.h ------------------------------*- C++ -*-===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 #ifndef LLVM_CLANG_FRONTEND_DEPENDENCYOUTPUTOPTIONS_H
     11 #define LLVM_CLANG_FRONTEND_DEPENDENCYOUTPUTOPTIONS_H
     12 
     13 #include <string>
     14 #include <vector>
     15 
     16 namespace clang {
     17 
     18 /// DependencyOutputOptions - Options for controlling the compiler dependency
     19 /// file generation.
     20 class DependencyOutputOptions {
     21 public:
     22   unsigned IncludeSystemHeaders : 1; ///< Include system header dependencies.
     23   unsigned ShowHeaderIncludes : 1;   ///< Show header inclusions (-H).
     24   unsigned UsePhonyTargets : 1;      ///< Include phony targets for each
     25                                      /// dependency, which can avoid some 'make'
     26                                      /// problems.
     27   unsigned AddMissingHeaderDeps : 1; ///< Add missing headers to dependency list
     28 
     29   /// The file to write dependency output to.
     30   std::string OutputFile;
     31 
     32   /// The file to write header include output to. This is orthogonal to
     33   /// ShowHeaderIncludes (-H) and will include headers mentioned in the
     34   /// predefines buffer. If the output file is "-", output will be sent to
     35   /// stderr.
     36   std::string HeaderIncludeOutputFile;
     37 
     38   /// A list of names to use as the targets in the dependency file; this list
     39   /// must contain at least one entry.
     40   std::vector<std::string> Targets;
     41 
     42   /// \brief The file to write GraphViz-formatted header dependencies to.
     43   std::string DOTOutputFile;
     44 
     45 public:
     46   DependencyOutputOptions() {
     47     IncludeSystemHeaders = 0;
     48     ShowHeaderIncludes = 0;
     49     UsePhonyTargets = 0;
     50     AddMissingHeaderDeps = 0;
     51   }
     52 };
     53 
     54 }  // end namespace clang
     55 
     56 #endif
     57