@@ -694,10 +694,11 @@ extension SpecializationParameters {
694694 let dependencySettings = buildRequestContext. getCachedSettings ( ct. parameters, target: ct. target)
695695 let dependencyPlatform = dependencySettings. platform
696696 let dependencySdkVariant = dependencySettings. sdkVariant? . name
697+ let dependencyToolchains = dependencySettings. toolchains
697698 guard Ref ( dependencyPlatform) == platform && dependencySdkVariant == sdkVariant else { return false }
698699 // For dependencies with 'auto' SDKROOT, they get their SDK 'imposed', including if it is internal vs public SDK, not just what platform it is.
699700 // 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 {
701702 return false
702703 }
703704 return true
@@ -742,8 +743,9 @@ extension SpecializationParameters {
742743 continue
743744 }
744745
746+ let behavior : Diagnostic . Behavior = buildRequest. enableIndexBuildArena ? . warning : . error
745747 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) )
747749 hasMultipleTargets = true
748750 }
749751 }
0 commit comments