clang API Documentation

DependencyOutputOptions.h
Go to the documentation of this file.
00001 //===--- DependencyOutputOptions.h ------------------------------*- C++ -*-===//
00002 //
00003 //                     The LLVM Compiler Infrastructure
00004 //
00005 // This file is distributed under the University of Illinois Open Source
00006 // License. See LICENSE.TXT for details.
00007 //
00008 //===----------------------------------------------------------------------===//
00009 
00010 #ifndef LLVM_CLANG_FRONTEND_DEPENDENCYOUTPUTOPTIONS_H
00011 #define LLVM_CLANG_FRONTEND_DEPENDENCYOUTPUTOPTIONS_H
00012 
00013 #include <string>
00014 #include <vector>
00015 
00016 namespace clang {
00017 
00018 /// DependencyOutputOptions - Options for controlling the compiler dependency
00019 /// file generation.
00020 class DependencyOutputOptions {
00021 public:
00022   unsigned IncludeSystemHeaders : 1; ///< Include system header dependencies.
00023   unsigned ShowHeaderIncludes : 1;   ///< Show header inclusions (-H).
00024   unsigned UsePhonyTargets : 1;      ///< Include phony targets for each
00025                                      /// dependency, which can avoid some 'make'
00026                                      /// problems.
00027   unsigned AddMissingHeaderDeps : 1; ///< Add missing headers to dependency list
00028   unsigned PrintShowIncludes : 1; ///< Print cl.exe style /showIncludes info.
00029   unsigned IncludeModuleFiles : 1; ///< Include module file dependencies.
00030   
00031   /// The file to write dependency output to.
00032   std::string OutputFile;
00033 
00034   /// The file to write header include output to. This is orthogonal to
00035   /// ShowHeaderIncludes (-H) and will include headers mentioned in the
00036   /// predefines buffer. If the output file is "-", output will be sent to
00037   /// stderr.
00038   std::string HeaderIncludeOutputFile;
00039 
00040   /// A list of names to use as the targets in the dependency file; this list
00041   /// must contain at least one entry.
00042   std::vector<std::string> Targets;
00043 
00044   /// \brief The file to write GraphViz-formatted header dependencies to.
00045   std::string DOTOutputFile;
00046 
00047   /// \brief The directory to copy module dependencies to when collecting them.
00048   std::string ModuleDependencyOutputDir;
00049 
00050 public:
00051   DependencyOutputOptions() {
00052     IncludeSystemHeaders = 0;
00053     ShowHeaderIncludes = 0;
00054     UsePhonyTargets = 0;
00055     AddMissingHeaderDeps = 0;
00056     PrintShowIncludes = 0;
00057     IncludeModuleFiles = 0;
00058   }
00059 };
00060 
00061 }  // end namespace clang
00062 
00063 #endif