aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-04-10 21:00:07 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-04-10 21:00:07 +0000
commitf36a06a9584cf351e1bb7c5ebf2f707ed416daba (patch)
tree7daf403b54d12bda4697a061bd3746081daee2c7
parent0a0428e96c6f1e8bef7a481a9eb69a6f6df38951 (diff)
Honor MACOSX_DEPLOYMENT_TARGET environment variable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68822 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Driver/ToolChains.cpp10
-rw-r--r--test/Driver/darwin-version.c6
2 files changed, 15 insertions, 1 deletions
diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
index 975a6c1fda..87927f8fb6 100644
--- a/lib/Driver/ToolChains.cpp
+++ b/lib/Driver/ToolChains.cpp
@@ -20,6 +20,8 @@
#include "llvm/Support/raw_ostream.h"
#include "llvm/System/Path.h"
+#include <cstdlib> // ::getenv
+
using namespace clang::driver;
using namespace clang::driver::toolchains;
@@ -152,8 +154,14 @@ DerivedArgList *Darwin_X86::TranslateArgs(InputArgList &Args) const {
// Chose the default version based on the arch.
//
// FIXME: This will need to be fixed when we merge in arm support.
+
+ // Look for MACOSX_DEPLOYMENT_TARGET, otherwise use the version
+ // from the host.
+ const char *Version = ::getenv("MACOSX_DEPLOYMENT_TARGET");
+ if (!Version)
+ Version = MacosxVersionMin.c_str();
const Option *O = Opts.getOption(options::OPT_mmacosx_version_min_EQ);
- DAL->append(DAL->MakeJoinedArg(0, O, MacosxVersionMin.c_str()));
+ DAL->append(DAL->MakeJoinedArg(0, O, Version));
}
for (ArgList::iterator it = Args.begin(), ie = Args.end(); it != ie; ++it) {
diff --git a/test/Driver/darwin-version.c b/test/Driver/darwin-version.c
new file mode 100644
index 0000000000..b0e86fa5fe
--- /dev/null
+++ b/test/Driver/darwin-version.c
@@ -0,0 +1,6 @@
+// RUN: env MACOSX_DEPLOYMENT_TARGET=10.1 clang -E %s
+
+#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ != 1010
+#error Invalid version
+#endif
+