diff options
author | Alex Lorenz <arphaman@gmail.com> | 2017-03-13 11:17:41 +0000 |
---|---|---|
committer | Alex Lorenz <arphaman@gmail.com> | 2017-03-13 11:17:41 +0000 |
commit | e39fa57d358ccc44090d1d6d8613a57c375712fc (patch) | |
tree | b4b705add0af5e78936c925bccb7194c263df141 | |
parent | c630f349b805ccc6b1ae4044a615541c08cd84ac (diff) | |
download | bcm5719-llvm-e39fa57d358ccc44090d1d6d8613a57c375712fc.tar.gz bcm5719-llvm-e39fa57d358ccc44090d1d6d8613a57c375712fc.zip |
Add -iframeworkwithsysroot compiler option
This commit adds support for a new -iframeworkwithsysroot compiler option which
allows the user to specify a framework path that can be prefixed with the
sysroot. This option is similar to the -iwithsysroot option that exists to
supplement -isystem.
rdar://21316352
Differential Revision: https://reviews.llvm.org/D30183
llvm-svn: 297614
-rw-r--r-- | clang/include/clang/Driver/Options.td | 5 | ||||
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 3 | ||||
-rw-r--r-- | clang/test/Frontend/iframework.c | 1 |
3 files changed, 9 insertions, 0 deletions
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 9dd80c09184..7952b33fd5e 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -1524,6 +1524,11 @@ def idirafter : JoinedOrSeparate<["-"], "idirafter">, Group<clang_i_Group>, Flag HelpText<"Add directory to AFTER include search path">; def iframework : JoinedOrSeparate<["-"], "iframework">, Group<clang_i_Group>, Flags<[CC1Option]>, HelpText<"Add directory to SYSTEM framework search path">; +def iframeworkwithsysroot : JoinedOrSeparate<["-"], "iframeworkwithsysroot">, + Group<clang_i_Group>, + HelpText<"Add directory to SYSTEM framework search path, " + "absolute paths are relative to -isysroot">, + MetaVarName<"<directory>">, Flags<[CC1Option]>; def imacros : JoinedOrSeparate<["-", "--"], "imacros">, Group<clang_i_Group>, Flags<[CC1Option]>, HelpText<"Include macros from file before parsing">, MetaVarName<"<file>">; def image__base : Separate<["-"], "image_base">; diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 4d828f58056..598af20864b 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -1507,6 +1507,9 @@ static void ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args) { !A->getOption().matches(OPT_iwithsysroot)); for (const Arg *A : Args.filtered(OPT_iframework)) Opts.AddPath(A->getValue(), frontend::System, true, true); + for (const Arg *A : Args.filtered(OPT_iframeworkwithsysroot)) + Opts.AddPath(A->getValue(), frontend::System, /*IsFramework=*/true, + /*IgnoreSysRoot=*/false); // Add the paths for the various language specific isystem flags. for (const Arg *A : Args.filtered(OPT_c_isystem)) diff --git a/clang/test/Frontend/iframework.c b/clang/test/Frontend/iframework.c index 6f801f2437a..2354553fa09 100644 --- a/clang/test/Frontend/iframework.c +++ b/clang/test/Frontend/iframework.c @@ -1,4 +1,5 @@ // RUN: %clang -fsyntax-only -iframework %S/Inputs %s -Xclang -verify +// RUN: %clang -fsyntax-only -isysroot %S -iframeworkwithsysroot /Inputs %s -Xclang -verify // expected-no-diagnostics #include <TestFramework/TestFramework.h> |