diff options
-rw-r--r-- | include/clang/Driver/CC1Options.td | 9 | ||||
-rw-r--r-- | lib/Driver/CC1Options.cpp | 13 |
2 files changed, 19 insertions, 3 deletions
diff --git a/include/clang/Driver/CC1Options.td b/include/clang/Driver/CC1Options.td index e2042261ca..cec31e1993 100644 --- a/include/clang/Driver/CC1Options.td +++ b/include/clang/Driver/CC1Options.td @@ -40,3 +40,12 @@ def fno_merge_all_constants : Flag<"-fno-merge-all-constants">, HelpText<"Disallow merging of constants.">; def O : Joined<"-O">, HelpText<"Optimization level">; def Os : Flag<"-Os">, HelpText<"Optimize for size">; + +// Dependency Output Options +def dependency_file : Separate<"-dependency-file">, + HelpText<"Filename (or -) to write dependency output to">; +def sys_header_deps : Flag<"-sys-header-deps">, + HelpText<"Include system headers in dependency output">; +def MT : Separate<"-MT">, HelpText<"Specify target for dependency">; +def MP : Flag<"-MP">, + HelpText<"Create phony target for each dependency (other than main file)">; diff --git a/lib/Driver/CC1Options.cpp b/lib/Driver/CC1Options.cpp index afa01434f3..f92ada77fa 100644 --- a/lib/Driver/CC1Options.cpp +++ b/lib/Driver/CC1Options.cpp @@ -121,6 +121,14 @@ static void ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args) { #endif } +static void ParseDependencyOutputArgs(DependencyOutputOptions &Opts, + ArgList &Args) { + Opts.OutputFile = getLastArgValue(Args, cc1options::OPT_dependency_file); + Opts.Targets = getAllArgValues(Args, cc1options::OPT_MT); + Opts.IncludeSystemHeaders = Args.hasArg(cc1options::OPT_sys_header_deps); + Opts.UsePhonyTargets = Args.hasArg(cc1options::OPT_MP); +} + static void ParseTargetArgs(TargetOptions &Opts, ArgList &Args) { Opts.ABI = getLastArgValue(Args, cc1options::OPT_target_abi); Opts.CPU = getLastArgValue(Args, cc1options::OPT_mcpu); @@ -152,8 +160,7 @@ void CompilerInvocation::CreateFromArgs(CompilerInvocation &Res, << " value )\n"; } - // FIXME: Disabled until the FIXMEs are resolved. - if (0) - ParseCodeGenArgs(Res.getCodeGenOpts(), *InputArgs); + ParseCodeGenArgs(Res.getCodeGenOpts(), *InputArgs); + ParseDependencyOutputArgs(Res.getDependencyOutputOpts(), *InputArgs); ParseTargetArgs(Res.getTargetOpts(), *InputArgs); } |