diff options
Diffstat (limited to 'clang/tools/clang-cc/Options.cpp')
-rw-r--r-- | clang/tools/clang-cc/Options.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/clang/tools/clang-cc/Options.cpp b/clang/tools/clang-cc/Options.cpp index 211f1412a1b..2428d3ab8fa 100644 --- a/clang/tools/clang-cc/Options.cpp +++ b/clang/tools/clang-cc/Options.cpp @@ -16,6 +16,7 @@ #include "clang/Basic/TargetInfo.h" #include "clang/Frontend/AnalysisConsumer.h" #include "clang/Frontend/CompileOptions.h" +#include "clang/Frontend/DependencyOutputOptions.h" #include "clang/Frontend/DiagnosticOptions.h" #include "clang/Frontend/HeaderSearchOptions.h" #include "clang/Frontend/PCHReader.h" @@ -190,6 +191,31 @@ TargetFeatures("target-feature", llvm::cl::desc("Target specific attributes")); } //===----------------------------------------------------------------------===// +// Dependency Output Options +//===----------------------------------------------------------------------===// + +namespace dependencyoutputoptions { + +static llvm::cl::opt<std::string> +DependencyFile("dependency-file", + llvm::cl::desc("Filename (or -) to write dependency output to")); + +static llvm::cl::opt<bool> +DependenciesIncludeSystemHeaders("sys-header-deps", + llvm::cl::desc("Include system headers in dependency output")); + +static llvm::cl::list<std::string> +DependencyTargets("MT", + llvm::cl::desc("Specify target for dependency")); + +static llvm::cl::opt<bool> +PhonyDependencyTarget("MP", + llvm::cl::desc("Create phony target for each dependency " + "(other than main file)")); + +} + +//===----------------------------------------------------------------------===// // Diagnostic Options //===----------------------------------------------------------------------===// @@ -616,6 +642,16 @@ void clang::InitializeCompileOptions(CompileOptions &Opts, #endif } +void clang::InitializeDependencyOutputOptions(DependencyOutputOptions &Opts) { + using namespace dependencyoutputoptions; + + Opts.OutputFile = DependencyFile; + Opts.Targets.insert(Opts.Targets.begin(), DependencyTargets.begin(), + DependencyTargets.end()); + Opts.IncludeSystemHeaders = DependenciesIncludeSystemHeaders; + Opts.UsePhonyTargets = PhonyDependencyTarget; +} + void clang::InitializeDiagnosticOptions(DiagnosticOptions &Opts) { using namespace diagnosticoptions; |