diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2009-01-12 03:33:58 +0000 |
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2009-01-12 03:33:58 +0000 |
| commit | 02cd7e40709ddb6e7f470fc669200e4401c6a66c (patch) | |
| tree | c938526edb67e66bddb4459d7ff080d06d4cd8b1 /clang/tools/ccc/ccclib/Tools.py | |
| parent | b2c42c648d5a9116bac5a2602a14d9d5c1b1aa7e (diff) | |
| download | bcm5719-llvm-02cd7e40709ddb6e7f470fc669200e4401c6a66c.tar.gz bcm5719-llvm-02cd7e40709ddb6e7f470fc669200e4401c6a66c.zip | |
ccc: Support arguments which behave like linker inputs.
- Support comma joined options which magically turn into multiple
value arguments (e.g., -Wl,)
- Split out separate Arg::render routine for when an argument is
being rendered as an input (as opposed to in its original form).
- Add option flag for options which should be rendered without the
option when they are used as an input (e.g., -Xlinker or -o).
- Support -weak-l..., -weak_framework, and -weak_library.
llvm-svn: 62075
Diffstat (limited to 'clang/tools/ccc/ccclib/Tools.py')
| -rw-r--r-- | clang/tools/ccc/ccclib/Tools.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/clang/tools/ccc/ccclib/Tools.py b/clang/tools/ccc/ccclib/Tools.py index 17a9ce822a9..100344131fb 100644 --- a/clang/tools/ccc/ccclib/Tools.py +++ b/clang/tools/ccc/ccclib/Tools.py @@ -52,7 +52,13 @@ class GCC_Common_Tool(Tool): if isinstance(input.source, Jobs.PipedJob): cmd_args.append('-') else: - cmd_args.append(arglist.getValue(input.source)) + assert isinstance(input.source, Arguments.Arg) + # If this is a linker input then assume we can forward + # just by rendering. + if input.source.opt.isLinkerInput: + cmd_args.extend(arglist.render(input.source)) + else: + cmd_args.extend(arglist.renderAsInput(input.source)) jobs.addJob(Jobs.Command('gcc', cmd_args)) @@ -113,7 +119,7 @@ class DarwinAssembleTool(Tool): if isinstance(input.source, Jobs.PipedJob): cmd_args.append('-') else: - cmd_args.append(arglist.getValue(input.source)) + cmd_args.extend(arglist.renderAsInput(input.source)) jobs.addJob(Jobs.Command('as', cmd_args)) class GCC_AssembleTool(GCC_Common_Tool): @@ -471,7 +477,7 @@ class Darwin10_X86_LinkTool(Tool): "-L/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../.."]) for input in inputs: - cmd_args.append(arglist.getValue(input.source)) + cmd_args.extend(arglist.renderAsInput(input.source)) if (arglist.getLastArg(arglist.parser.f_profileArcsOption) or arglist.getLastArg(arglist.parser.f_profileGenerateOption) or @@ -548,5 +554,5 @@ class LipoTool(Tool): cmd_args = ['-create'] cmd_args.extend(arglist.render(output)) for input in inputs: - cmd_args.append(arglist.getValue(input.source)) + cmd_args.extend(arglist.renderAsInput(input.source)) jobs.addJob(Jobs.Command('lipo', cmd_args)) |

