Add -foc-intrinsic-path to let the use specify a custom location for

clang's intrinsic headers. This path is relative to clang's binary dir
(which can be set with -foc-compiler-path)
This commit is contained in:
Pedro Navarro 2017-05-17 14:24:45 -07:00
parent 773af0e75c
commit 1ef9def644
3 changed files with 17 additions and 1 deletions

View File

@ -172,6 +172,11 @@ bool compilerpath(Target &target, const char *, const char *path, char **) {
return true;
}
bool intrinsicpath(Target &target, const char *, const char *path, char **) {
target.intrinsicpath = path;
return true;
}
bool runprog(Target &target, const char *, const char *progname, char **cargs) {
auto *prog = program::getprog(progname);
@ -263,7 +268,13 @@ constexpr struct Opt {
{"-icxx-isystem", checkincludepath, true, true},
{"-cxx-isystem", checkincludepath, true, true},
{"-I", checkincludepath, true, true},
{"-foc-compiler-path", compilerpath, true, false, "="} // sets a custom path for the compiler
// sets a custom path for the compiler
{"-foc-compiler-path", compilerpath, true, false, "="},
// specifies an additional directory to search when looking for clang's
// intrinsic paths
{"-foc-intrinsic-path", intrinsicpath, true, false, "="}
};
bool parse(int argc, char **argv, Target &target) {

View File

@ -409,6 +409,10 @@ do { \
TRYDIR2("/../include/clang");
TRYDIR2("/usr/include/clang");
if (!intrinsicpath.empty()) {
TRYDIR2(intrinsicpath);
}
return false;
#undef TRYDIR
#undef TRYDIR2

View File

@ -149,6 +149,7 @@ struct Target {
string_vector args;
const char *language;
char execpath[PATH_MAX + 1];
std::string intrinsicpath;
};
} // namespace target