================
@@ -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