Driver: Add clang -cc1 dependency output options parsing.

llvm-svn: 89508
This commit is contained in:
Daniel Dunbar 2009-11-20 23:28:07 +00:00
parent e14b347176
commit a764eef0e9
2 changed files with 19 additions and 3 deletions

View File

@ -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)">;

View File

@ -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);
}