================
@@ -2651,6 +2639,21 @@ void Darwin::AddDeploymentTarget(DerivedArgList &Args) 
const {
   const std::string OSVersionStr = OSVersion.getAsString();
   // Set the tool chain target information.
   if (Platform == MacOS) {
+#ifdef CLANG_USE_XCSELECT
+    // If we don't have an SDK yet and are on macOS, try to inject one using
+    // xcselect, except when passed --no-xcselect.
+    if (!Args.hasArg(options::OPT_no_xcselect) &&
+        !Args.getLastArg(options::OPT_isysroot) && !::getenv("SDKROOT") &&
+        !SDKInfo) {
+      char *p;
+      if (!::xcselect_host_sdk_path(CLANG_XCSELECT_HOST_SDK_POLICY, &p)) {
+        Args.append(Args.MakeSeparateArg(
+            nullptr, Opts.getOption(options::OPT_isysroot), p));
+        ::free(p);
+        SDKInfo = parseSDKSettings(getVFS(), Args, getDriver());
+      }
+    }
----------------
carlocab wrote:

That does seem like a better name, but I wonder if it will lead users into 
thinking it does more than `--no-xcselect` did.

I also wonder what the correct behaviour is if the user passes `--no-sysroot` 
but also `--sysroot`/`-isysroot`. Should we just silently ignore it? Issue a 
warning?

https://github.com/llvm/llvm-project/pull/186683
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to