summaryrefslogtreecommitdiffstats
path: root/clang/tools/clang-cc/Options.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/tools/clang-cc/Options.cpp')
-rw-r--r--clang/tools/clang-cc/Options.cpp36
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;
OpenPOWER on IntegriCloud