aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Svoboda <jan_svoboda@apple.com>2020-12-15 13:08:04 +0100
committerJan Svoboda <jan_svoboda@apple.com>2020-12-16 10:28:37 +0100
commit0da240c2d050303c99564f1901b0d1548ffe2323 (patch)
tree9d0b3619295ec9691f1f952057067a731457ab59
parentc7afb698caf00f0ad0b479f7d2869c119aa3482e (diff)
downloadllvm-0da240c2d050303c99564f1901b0d1548ffe2323.zip
llvm-0da240c2d050303c99564f1901b0d1548ffe2323.tar.gz
llvm-0da240c2d050303c99564f1901b0d1548ffe2323.tar.bz2
[clang][cli] Port DependencyOutput string based options to new option parsing system
Depends on D84186 Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D84187
-rw-r--r--clang/include/clang/Driver/Options.td12
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp6
2 files changed, 8 insertions, 10 deletions
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index 76deb9d..dd23d81 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -960,11 +960,14 @@ def dM : Flag<["-"], "dM">, Group<d_Group>, Flags<[CC1Option]>,
HelpText<"Print macro definitions in -E mode instead of normal output">;
def dead__strip : Flag<["-"], "dead_strip">;
def dependency_file : Separate<["-"], "dependency-file">, Flags<[CC1Option]>,
- HelpText<"Filename (or -) to write dependency output to">;
+ HelpText<"Filename (or -) to write dependency output to">,
+ MarshallingInfoString<"DependencyOutputOpts.OutputFile">;
def dependency_dot : Separate<["-"], "dependency-dot">, Flags<[CC1Option]>,
- HelpText<"Filename to write DOT-formatted header dependencies to">;
+ HelpText<"Filename to write DOT-formatted header dependencies to">,
+ MarshallingInfoString<"DependencyOutputOpts.DOTOutputFile">;
def module_dependency_dir : Separate<["-"], "module-dependency-dir">,
- Flags<[CC1Option]>, HelpText<"Directory to dump module dependencies to">;
+ Flags<[CC1Option]>, HelpText<"Directory to dump module dependencies to">,
+ MarshallingInfoString<"DependencyOutputOpts.ModuleDependencyOutputDir">;
def dsym_dir : JoinedOrSeparate<["-"], "dsym-dir">,
Flags<[NoXarchOption, RenderAsInput]>,
HelpText<"Directory to output dSYM's (if any) to">, MetaVarName<"<dir>">;
@@ -4514,7 +4517,8 @@ def module_file_deps : Flag<["-"], "module-file-deps">,
HelpText<"Include module files in dependency output">,
MarshallingInfoFlag<"DependencyOutputOpts.IncludeModuleFiles">;
def header_include_file : Separate<["-"], "header-include-file">,
- HelpText<"Filename (or -) to write header include output to">;
+ HelpText<"Filename (or -) to write header include output to">,
+ MarshallingInfoString<"DependencyOutputOpts.HeaderIncludeOutputFile">;
def show_includes : Flag<["--"], "show-includes">,
HelpText<"Print cl.exe style /showIncludes to stdout">;
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index 2d6cb3b..5fbafa3 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -1447,10 +1447,7 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK,
static void ParseDependencyOutputArgs(DependencyOutputOptions &Opts,
ArgList &Args) {
- Opts.OutputFile = std::string(Args.getLastArgValue(OPT_dependency_file));
Opts.Targets = Args.getAllArgValues(OPT_MT);
- Opts.HeaderIncludeOutputFile =
- std::string(Args.getLastArgValue(OPT_header_include_file));
if (Args.hasArg(OPT_show_includes)) {
// Writing both /showIncludes and preprocessor output to stdout
// would produce interleaved output, so use stderr for /showIncludes.
@@ -1462,9 +1459,6 @@ static void ParseDependencyOutputArgs(DependencyOutputOptions &Opts,
} else {
Opts.ShowIncludesDest = ShowIncludesDestination::None;
}
- Opts.DOTOutputFile = std::string(Args.getLastArgValue(OPT_dependency_dot));
- Opts.ModuleDependencyOutputDir =
- std::string(Args.getLastArgValue(OPT_module_dependency_dir));
// Add sanitizer blacklists as extra dependencies.
// They won't be discovered by the regular preprocessor, so
// we let make / ninja to know about this implicit dependency.