@@ -694,10 +694,11 @@ extension SpecializationParameters {
694
694
let dependencySettings = buildRequestContext. getCachedSettings ( ct. parameters, target: ct. target)
695
695
let dependencyPlatform = dependencySettings. platform
696
696
let dependencySdkVariant = dependencySettings. sdkVariant? . name
697
+ let dependencyToolchains = dependencySettings. toolchains
697
698
guard Ref ( dependencyPlatform) == platform && dependencySdkVariant == sdkVariant else { return false }
698
699
// For dependencies with 'auto' SDKROOT, they get their SDK 'imposed', including if it is internal vs public SDK, not just what platform it is.
699
700
// For such dependencies also confirm that the existing configured dependency matches 'internal vs public' for the SDK.
700
- if dependencyHasAutoSDKRoot, let dependencySDK = dependencySettings. sdk, let dependentSDK = sdk, dependencySDK !== dependentSDK {
701
+ if dependencyHasAutoSDKRoot, let dependencySDK = dependencySettings. sdk, let dependentSDK = sdk, dependencySDK !== dependentSDK || settings . toolchains != dependencyToolchains {
701
702
return false
702
703
}
703
704
return true
@@ -742,8 +743,9 @@ extension SpecializationParameters {
742
743
continue
743
744
}
744
745
746
+ let behavior : Diagnostic . Behavior = buildRequest. enableIndexBuildArena ? . warning : . error
745
747
let data = DiagnosticData ( " multiple configured targets of ' \( target. name) ' are being created for \( currentSettings. platform? . displayName ?? " " ) " )
746
- delegate. emit ( Diagnostic ( behavior: . error , location: . unknown, data: data) )
748
+ delegate. emit ( Diagnostic ( behavior: behavior , location: . unknown, data: data) )
747
749
hasMultipleTargets = true
748
750
}
749
751
}
0 commit comments