From f30281e08a99e12b0b6348b256ccdce496ab59ed Mon Sep 17 00:00:00 2001 From: Mikhail Glushenkov Date: Tue, 1 Dec 2009 05:59:55 +0000 Subject: [PATCH] Support -[weak_]framework and -F in llvmc. llvm-svn: 90210 --- docs/CommandGuide/llvmc.pod | 25 ++++++++++++++++++------- tools/llvmc/plugins/Base/Base.td.in | 10 ++++++++++ 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/docs/CommandGuide/llvmc.pod b/docs/CommandGuide/llvmc.pod index e3031e123d3..e5e06511613 100644 --- a/docs/CommandGuide/llvmc.pod +++ b/docs/CommandGuide/llvmc.pod @@ -126,24 +126,31 @@ use the B<-Wo,> option. =item B<-I> I -Add a directory to the header file search path. This option can be -repeated. +Add a directory to the header file search path. =item B<-L> I -Add I to the library search path. This option can be -repeated. +Add I to the library search path. + +=item B<-F> I + +Add I to the framework search path. =item B<-l>I Link in the library libI.[bc | a | so]. This library should be a bitcode library. +=item B<-framework> I + +Link in the library libI.[bc | a | so]. This library should +be a bitcode library. + =item B<-emit-llvm> -Make the output be LLVM bitcode (with B<-c>) or assembly (with B<-S>) instead -of native object (or assembly). If B<-emit-llvm> is given without either B<-c> -or B<-S> it has no effect. +Output LLVM bitcode (with B<-c>) or assembly (with B<-S>) instead of native +object (or assembly). If B<-emit-llvm> is given without either B<-c> or B<-S> +it has no effect. =item B<-Wa> @@ -157,6 +164,10 @@ Pass options to linker. Pass options to opt. +=item B<-Wllc> + +Pass options to llc (code generator). + =back =head1 EXIT STATUS diff --git a/tools/llvmc/plugins/Base/Base.td.in b/tools/llvmc/plugins/Base/Base.td.in index c26a567ba54..0f481e270d7 100644 --- a/tools/llvmc/plugins/Base/Base.td.in +++ b/tools/llvmc/plugins/Base/Base.td.in @@ -47,6 +47,12 @@ def OptList : OptionList<[ (hidden)), (parameter_list_option "include", (help "Include the named file prior to preprocessing")), + (parameter_list_option "framework", + (help "Specifies a framework to link against")), + (parameter_list_option "weak_framework", + (help "Specifies a framework to weakly link against"), (hidden)), + (prefix_list_option "F", + (help "Add a directory to framework search path")), (prefix_list_option "I", (help "Add a directory to include path")), (prefix_list_option "D", @@ -106,6 +112,7 @@ class llvm_gcc_based : Tool< (switch_on "fsyntax-only"), (stop_compilation), (not_empty "include"), (forward "include"), (not_empty "I"), (forward "I"), + (not_empty "F"), (forward "F"), (not_empty "D"), (forward "D"), (switch_on "O1"), (forward "O1"), (switch_on "O2"), (forward "O2"), @@ -175,6 +182,9 @@ class llvm_gcc_based_linker : Tool< (actions (case (switch_on "pthread"), (append_cmd "-lpthread"), (not_empty "L"), (forward "L"), + (not_empty "F"), (forward "F"), + (not_empty "framework"), (forward "framework"), + (not_empty "weak_framework"), (forward "weak_framework"), (not_empty "l"), (forward "l"), (not_empty "Wl,"), (forward "Wl,"))) ]>;