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   unsigned PrintShowIncludes : 1; ///< Print cl.exe style /showIncludes info.
     29   unsigned IncludeModuleFiles : 1; ///< Include module file dependencies.
     30 
     31   /// The file to write dependency output to.
     32   std::string OutputFile;
     33 
     34   /// The file to write header include output to. This is orthogonal to
     35   /// ShowHeaderIncludes (-H) and will include headers mentioned in the
     36   /// predefines buffer. If the output file is "-", output will be sent to
     37   /// stderr.
     38   std::string HeaderIncludeOutputFile;
     39 
     40   /// A list of names to use as the targets in the dependency file; this list
     41   /// must contain at least one entry.
     42   std::vector<std::string> Targets;
     43 
     44   /// \brief The file to write GraphViz-formatted header dependencies to.
     45   std::string DOTOutputFile;
     46 
     47   /// \brief The directory to copy module dependencies to when collecting them.
     48   std::string ModuleDependencyOutputDir;
     49 
     50 public:
     51   DependencyOutputOptions() {
     52     IncludeSystemHeaders = 0;
     53     ShowHeaderIncludes = 0;
     54     UsePhonyTargets = 0;
     55     AddMissingHeaderDeps = 0;
     56     PrintShowIncludes = 0;
     57     IncludeModuleFiles = 0;
     58   }
     59 };
     60 
     61 }  // end namespace clang
     62 
     63 #endif
     64