forked from OSchip/llvm-project
Add isysroot support, patch by Keith Bauer
llvm-svn: 41455
This commit is contained in:
parent
0c6aad373f
commit
dd9a319158
|
@ -456,7 +456,7 @@ static void InitializePredefinedMacros(Preprocessor &PP,
|
||||||
// object takes a very simple interface: a list of directories to search for
|
// object takes a very simple interface: a list of directories to search for
|
||||||
//
|
//
|
||||||
// FIXME: -nostdinc,-nostdinc++
|
// FIXME: -nostdinc,-nostdinc++
|
||||||
// FIXME: -isysroot,-imultilib
|
// FIXME: -imultilib
|
||||||
//
|
//
|
||||||
// FIXME: -include,-imacros
|
// FIXME: -include,-imacros
|
||||||
|
|
||||||
|
@ -492,6 +492,10 @@ iwithprefixbefore_vals("iwithprefixbefore", llvm::cl::value_desc("dir"),
|
||||||
llvm::cl::Prefix,
|
llvm::cl::Prefix,
|
||||||
llvm::cl::desc("Set directory to include search path with prefix"));
|
llvm::cl::desc("Set directory to include search path with prefix"));
|
||||||
|
|
||||||
|
static llvm::cl::opt<std::string>
|
||||||
|
isysroot("isysroot", llvm::cl::value_desc("dir"), llvm::cl::init("/"),
|
||||||
|
llvm::cl::desc("Set the system root directory (usually /)"));
|
||||||
|
|
||||||
// Finally, implement the code that groks the options above.
|
// Finally, implement the code that groks the options above.
|
||||||
enum IncludeDirGroup {
|
enum IncludeDirGroup {
|
||||||
Quoted = 0,
|
Quoted = 0,
|
||||||
|
@ -507,7 +511,12 @@ static std::vector<DirectoryLookup> IncludeGroup[4];
|
||||||
static void AddPath(const std::string &Path, IncludeDirGroup Group,
|
static void AddPath(const std::string &Path, IncludeDirGroup Group,
|
||||||
bool isCXXAware, bool isUserSupplied,
|
bool isCXXAware, bool isUserSupplied,
|
||||||
bool isFramework, FileManager &FM) {
|
bool isFramework, FileManager &FM) {
|
||||||
const DirectoryEntry *DE = FM.getDirectory(Path);
|
const DirectoryEntry *DE;
|
||||||
|
if (Group == System)
|
||||||
|
DE = FM.getDirectory(isysroot + "/" + Path);
|
||||||
|
else
|
||||||
|
DE = FM.getDirectory(Path);
|
||||||
|
|
||||||
if (DE == 0) {
|
if (DE == 0) {
|
||||||
if (Verbose)
|
if (Verbose)
|
||||||
fprintf(stderr, "ignoring nonexistent directory \"%s\"\n",
|
fprintf(stderr, "ignoring nonexistent directory \"%s\"\n",
|
||||||
|
|
Loading…
Reference in New Issue