1199482Srdivacky//===--- DependencyOutputOptions.h ------------------------------*- C++ -*-===// 2199482Srdivacky// 3199482Srdivacky// The LLVM Compiler Infrastructure 4199482Srdivacky// 5199482Srdivacky// This file is distributed under the University of Illinois Open Source 6199482Srdivacky// License. See LICENSE.TXT for details. 7199482Srdivacky// 8199482Srdivacky//===----------------------------------------------------------------------===// 9199482Srdivacky 10199482Srdivacky#ifndef LLVM_CLANG_FRONTEND_DEPENDENCYOUTPUTOPTIONS_H 11199482Srdivacky#define LLVM_CLANG_FRONTEND_DEPENDENCYOUTPUTOPTIONS_H 12199482Srdivacky 13199482Srdivacky#include <string> 14199482Srdivacky#include <vector> 15199482Srdivacky 16199482Srdivackynamespace clang { 17199482Srdivacky 18199482Srdivacky/// DependencyOutputOptions - Options for controlling the compiler dependency 19199482Srdivacky/// file generation. 20199482Srdivackyclass DependencyOutputOptions { 21199482Srdivackypublic: 22199482Srdivacky unsigned IncludeSystemHeaders : 1; ///< Include system header dependencies. 23218893Sdim unsigned ShowHeaderIncludes : 1; ///< Show header inclusions (-H). 24199482Srdivacky unsigned UsePhonyTargets : 1; ///< Include phony targets for each 25199482Srdivacky /// dependency, which can avoid some 'make' 26199482Srdivacky /// problems. 27224145Sdim unsigned AddMissingHeaderDeps : 1; ///< Add missing headers to dependency list 28263508Sdim unsigned PrintShowIncludes : 1; ///< Print cl.exe style /showIncludes info. 29234353Sdim 30218893Sdim /// The file to write dependency output to. 31199482Srdivacky std::string OutputFile; 32199482Srdivacky 33218893Sdim /// The file to write header include output to. This is orthogonal to 34218893Sdim /// ShowHeaderIncludes (-H) and will include headers mentioned in the 35218893Sdim /// predefines buffer. If the output file is "-", output will be sent to 36218893Sdim /// stderr. 37218893Sdim std::string HeaderIncludeOutputFile; 38218893Sdim 39199482Srdivacky /// A list of names to use as the targets in the dependency file; this list 40199482Srdivacky /// must contain at least one entry. 41199482Srdivacky std::vector<std::string> Targets; 42199482Srdivacky 43234353Sdim /// \brief The file to write GraphViz-formatted header dependencies to. 44234353Sdim std::string DOTOutputFile; 45234353Sdim 46199482Srdivackypublic: 47199482Srdivacky DependencyOutputOptions() { 48199482Srdivacky IncludeSystemHeaders = 0; 49218893Sdim ShowHeaderIncludes = 0; 50199482Srdivacky UsePhonyTargets = 0; 51224145Sdim AddMissingHeaderDeps = 0; 52263508Sdim PrintShowIncludes = 0; 53199482Srdivacky } 54199482Srdivacky}; 55199482Srdivacky 56199482Srdivacky} // end namespace clang 57199482Srdivacky 58199482Srdivacky#endif 59