diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-11-20 23:28:07 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-11-20 23:28:07 +0000 |
commit | 1bed0c3a555d9e32de9dead55658b4a28a4d6e03 (patch) | |
tree | 8615fb2bcb4d3a4737877ab4acbde70fc2608337 | |
parent | 20be8c4551d49fe66835baf1200be85ac2fd0c86 (diff) |
Driver: Add clang -cc1 dependency output options parsing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89508 91177308-0d34-0410-b5e6-96231b3b80d8
-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); } |