mirror of
https://github.com/Relintai/osxcross.git
synced 2025-02-03 22:45:56 +01:00
Merge pull request #115 from pedronavf/master
Added functionality to have clang in a custom directory, and not in the PATH
This commit is contained in:
commit
a0c5314c2d
@ -167,6 +167,16 @@ bool usegcclibstdcxx(Target &target, const char *, const char *, char **) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool compilerpath(Target &target, const char *, const char *path, char **) {
|
||||
target.compilerpath = path;
|
||||
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);
|
||||
|
||||
@ -258,6 +268,13 @@ constexpr struct Opt {
|
||||
{"-icxx-isystem", checkincludepath, true, true},
|
||||
{"-cxx-isystem", checkincludepath, true, true},
|
||||
{"-I", checkincludepath, true, true},
|
||||
|
||||
// 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) {
|
||||
|
@ -289,10 +289,15 @@ void Target::setCompilerPath() {
|
||||
compilerexecname += "-";
|
||||
compilerexecname += compilername;
|
||||
} else {
|
||||
if (!realPath(compilername.c_str(), compilerpath, ignoreCCACHE))
|
||||
compilerpath = compilername;
|
||||
if (!compilerpath.empty()) {
|
||||
compilerpath += "/";
|
||||
compilerpath += compilername;
|
||||
} else {
|
||||
if (!realPath(compilername.c_str(), compilerpath, ignoreCCACHE))
|
||||
compilerpath = compilername;
|
||||
|
||||
compilerexecname += compilername;
|
||||
compilerexecname += compilername;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -404,6 +409,10 @@ do { \
|
||||
TRYDIR2("/../include/clang");
|
||||
TRYDIR2("/usr/include/clang");
|
||||
|
||||
if (!intrinsicpath.empty()) {
|
||||
TRYDIR2(intrinsicpath);
|
||||
}
|
||||
|
||||
return false;
|
||||
#undef TRYDIR
|
||||
#undef TRYDIR2
|
||||
|
@ -149,6 +149,7 @@ struct Target {
|
||||
string_vector args;
|
||||
const char *language;
|
||||
char execpath[PATH_MAX + 1];
|
||||
std::string intrinsicpath;
|
||||
};
|
||||
|
||||
} // namespace target
|
||||
|
Loading…
Reference in New Issue
Block a user