You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Read hardcoded deployment targets list from features.json instead
Eliminate the maintenance burden of having to manually maintain this list. Also, it wasn't correct for Android and QNX anyways, since those don't actually have deployment target environment variables recognized by clang.
rdar://91377944
// We explicitly pass an empty set for `allDeploymentTargetMacroNames` because in this context we are exporting the list of known macros and not applying the special case to only exported a single deployment target like we do in shell scripts.
@@ -353,46 +350,6 @@ public final class PlatformRegistry {
353
350
}
354
351
}
355
352
356
-
privatefunc loadDeploymentTargetMacroNames(){
357
-
// We must have loaded the extended platform info before doing this,
358
-
// since deploymentTargetMacro is set on the Platform objects through there.
359
-
precondition(hasLoadedExtendedInfo)
360
-
361
-
// Set up allDeploymentTargetMacroNames in stages to detect issues.
362
-
// First we add all deployment targets from installed platforms, and emit a warning if multiple platforms declare that they use the same deployment target.
// Now add in all deployment targets we know about. This is because clang also knows about these deployment targets intrinsically when they are passed as environment variables, so we sometimes need to work with them even if the platform which defines them is not installed.
// For any macros left in the dictionary, emit a warning that it's a deployment target macro we didn't know about so we can add them to the list above in the future.
// FIXME: Note that we merged this function for shell scripts with the very similar code that was used to build the environment for external build commands. Currently in order to retain perfect compatibility we do various things conditionally based on the mode, but really this code should just be a single function that is used for both contexts at some point.
0 commit comments