]> granicus.if.org Git - clang/commitdiff
Honor MACOSX_DEPLOYMENT_TARGET environment variable.
authorDaniel Dunbar <daniel@zuster.org>
Fri, 10 Apr 2009 21:00:07 +0000 (21:00 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Fri, 10 Apr 2009 21:00:07 +0000 (21:00 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68822 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/ToolChains.cpp
test/Driver/darwin-version.c [new file with mode: 0644]

index 975a6c1fda7a5d7f39966acff48454d3d086f04b..87927f8fb65add5bf0fc15083fc2213c3f3476e2 100644 (file)
@@ -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 (file)
index 0000000..b0e86fa
--- /dev/null
@@ -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
+