mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-03-04 00:20:14 +00:00
darwin/driver: Support using SDKROOT to define the default for -isysroot.
- The SDKROOT environment variable is the de facto way to set the default SDK for a number of tools, join forces with them. llvm-svn: 162116
This commit is contained in:
parent
d394c8a83e
commit
455a0496b2
@ -442,6 +442,20 @@ static bool GetVersionFromSimulatorDefine(StringRef define,
|
||||
void Darwin::AddDeploymentTarget(DerivedArgList &Args) const {
|
||||
const OptTable &Opts = getDriver().getOpts();
|
||||
|
||||
// Support allowing the SDKROOT environment variable used by xcrun and other
|
||||
// Xcode tools to define the default sysroot, by making it the default for
|
||||
// isysroot.
|
||||
if (!Args.hasArg(options::OPT_isysroot)) {
|
||||
if (char *env = ::getenv("SDKROOT")) {
|
||||
// We only use this value as the default if it is an absolute path and
|
||||
// exists.
|
||||
if (llvm::sys::path::is_absolute(env) && llvm::sys::fs::exists(env)) {
|
||||
Args.append(Args.MakeSeparateArg(
|
||||
0, Opts.getOption(options::OPT_isysroot), env));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Arg *OSXVersion = Args.getLastArg(options::OPT_mmacosx_version_min_EQ);
|
||||
Arg *iOSVersion = Args.getLastArg(options::OPT_miphoneos_version_min_EQ);
|
||||
Arg *iOSSimVersion = Args.getLastArg(
|
||||
|
22
clang/test/Driver/darwin-sdkroot.c
Normal file
22
clang/test/Driver/darwin-sdkroot.c
Normal file
@ -0,0 +1,22 @@
|
||||
// Check that SDKROOT is used to define the default for -isysroot on Darwin.
|
||||
//
|
||||
// RUN: rm -rf %t.tmpdir
|
||||
// RUN: mkdir -p %t.tmpdir
|
||||
// RUN: env SDKROOT=%t.tmpdir %clang -target x86_64-apple-darwin10 \
|
||||
// RUN: -c %s -### 2> %t.log
|
||||
// RUN: FileCheck --check-prefix=CHECK-BASIC < %t.log %s
|
||||
//
|
||||
// CHECK-BASIC: clang
|
||||
// CHECK-BASIC: "-cc1"
|
||||
// CHECK-BASIC: "-isysroot" "{{.*tmpdir}}"
|
||||
|
||||
// Check that we don't use SDKROOT as the default if it is not a valid path.
|
||||
|
||||
// RUN: rm -rf %t.nonpath
|
||||
// RUN: env SDKROOT=%t.nonpath %clang -target x86_64-apple-darwin10 \
|
||||
// RUN: -c %s -### 2> %t.log
|
||||
// RUN: FileCheck --check-prefix=CHECK-NONPATH < %t.log %s
|
||||
//
|
||||
// CHECK-NONPATH: clang
|
||||
// CHECK-NONPATH: "-cc1"
|
||||
// CHECK-NONPATH-NOT: "-isysroot"
|
Loading…
x
Reference in New Issue
Block a user