@@ -441,7 +441,6 @@ public final class SwiftCommandState {
441441 self . observabilityHandler. progress,
442442 self . observabilityHandler. prompt
443443 )
444- let isXcodeBuildSystemEnabled = self . options. build. buildSystem. usesXcodeBuildEngine
445444 let workspace = try Workspace (
446445 fileSystem: self . fileSystem,
447446 location: . init(
@@ -459,9 +458,9 @@ public final class SwiftCommandState {
459458 configuration: . init(
460459 skipDependenciesUpdates: options. resolver. skipDependencyUpdate,
461460 prefetchBasedOnResolvedFile: options. resolver. shouldEnableResolverPrefetching,
462- shouldCreateMultipleTestProducts: toolWorkspaceConfiguration. wantsMultipleTestProducts || options. build. buildSystem. usesXcodeBuildEngine ,
461+ shouldCreateMultipleTestProducts: toolWorkspaceConfiguration. wantsMultipleTestProducts || options. build. buildSystem. shouldCreateMultipleTestProducts ,
463462 createREPLProduct: toolWorkspaceConfiguration. wantsREPLProduct,
464- additionalFileRules: isXcodeBuildSystemEnabled ? FileRuleDescription . xcbuildFileTypes : FileRuleDescription . swiftpmFileTypes ,
463+ additionalFileRules: options . build . buildSystem . additionalFileRules ,
465464 sharedDependenciesCacheEnabled: self . options. caching. useDependenciesCache,
466465 fingerprintCheckingMode: self . options. security. fingerprintCheckingMode,
467466 signingEntityCheckingMode: self . options. security. signingEntityCheckingMode,
@@ -790,12 +789,12 @@ public final class SwiftCommandState {
790789 toolchain: toolchain,
791790 triple: triple,
792791 flags: options. build. buildFlags,
792+ buildSystemKind: options. build. buildSystem,
793793 pkgConfigDirectories: options. locations. pkgConfigDirectories,
794794 architectures: options. build. architectures,
795795 workers: options. build. jobs ?? UInt32 ( ProcessInfo . processInfo. activeProcessorCount) ,
796796 sanitizers: options. build. enabledSanitizers,
797797 indexStoreMode: options. build. indexStoreMode. buildParameter,
798- isXcodeBuildSystemEnabled: options. build. buildSystem. usesXcodeBuildEngine,
799798 prepareForIndexing: prepareForIndexingMode,
800799 debuggingParameters: . init(
801800 debugInfoFormat: options. build. debugInfoFormat. buildParameter,
@@ -1020,6 +1019,26 @@ public final class SwiftCommandState {
10201019 }
10211020}
10221021
1022+ extension BuildSystemProvider . Kind {
1023+ fileprivate var shouldCreateMultipleTestProducts : Bool {
1024+ switch self {
1025+ case . xcode, . swiftbuild:
1026+ return true
1027+ case . native:
1028+ return false
1029+ }
1030+ }
1031+
1032+ fileprivate var additionalFileRules : [ FileRuleDescription ] {
1033+ switch self {
1034+ case . xcode, . swiftbuild:
1035+ return FileRuleDescription . xcbuildFileTypes
1036+ case . native:
1037+ return FileRuleDescription . swiftpmFileTypes
1038+ }
1039+ }
1040+ }
1041+
10231042/// Returns path of the nearest directory containing the manifest file w.r.t
10241043/// current working directory.
10251044private func findPackageRoot( fileSystem: FileSystem ) -> AbsolutePath ? {
@@ -1187,3 +1206,4 @@ extension Basics.Diagnostic {
11871206 . error( arguments. map { " ' \( $0) ' " } . spm_localizedJoin ( type: . conjunction) + " are mutually exclusive " )
11881207 }
11891208}
1209+
0 commit comments