Skip to content

Commit cb6dfa2

Browse files
authored
compatibleConfiguredTarget should consider toolchains (#439)
1 parent 39041d4 commit cb6dfa2

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

Sources/SWBCore/DependencyResolution.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)