@@ -33,6 +33,7 @@ extension ModulesGraph {
3333 customXCTestMinimumDeploymentTargets: [ PackageModel . Platform : PlatformVersion ] ? = . none,
3434 testEntryPointPath: AbsolutePath ? = nil ,
3535 availableLibraries: [ LibraryMetadata ] ,
36+ isExperimentalMacrosCrossCompilationEnabled: Bool ,
3637 fileSystem: FileSystem ,
3738 observabilityScope: ObservabilityScope
3839 ) throws -> ModulesGraph {
@@ -146,9 +147,13 @@ extension ModulesGraph {
146147
147148 let platformVersionProvider : PlatformVersionProvider
148149 if let customXCTestMinimumDeploymentTargets {
149- platformVersionProvider = . init( implementation: . customXCTestMinimumDeploymentTargets( customXCTestMinimumDeploymentTargets) )
150+ platformVersionProvider = . init(
151+ implementation: . customXCTestMinimumDeploymentTargets( customXCTestMinimumDeploymentTargets)
152+ )
150153 } else {
151- platformVersionProvider = . init( implementation: . minimumDeploymentTargetDefault)
154+ platformVersionProvider = . init(
155+ implementation: . minimumDeploymentTargetDefault
156+ )
152157 }
153158
154159 // Resolve dependencies and create resolved packages.
@@ -161,6 +166,7 @@ extension ModulesGraph {
161166 platformRegistry: customPlatformsRegistry ?? . default,
162167 platformVersionProvider: platformVersionProvider,
163168 availableLibraries: availableLibraries,
169+ isExperimentalMacrosCrossCompilationEnabled: isExperimentalMacrosCrossCompilationEnabled,
164170 fileSystem: fileSystem,
165171 observabilityScope: observabilityScope
166172 )
@@ -251,12 +257,13 @@ private func createResolvedPackages(
251257 platformRegistry: PlatformRegistry ,
252258 platformVersionProvider: PlatformVersionProvider ,
253259 availableLibraries: [ LibraryMetadata ] ,
260+ isExperimentalMacrosCrossCompilationEnabled: Bool ,
254261 fileSystem: FileSystem ,
255262 observabilityScope: ObservabilityScope
256263) throws -> [ ResolvedPackage ] {
257264
258265 // Create package builder objects from the input manifests.
259- let packageBuilders : [ ResolvedPackageBuilder ] = nodes. compactMap { node in
266+ let packageBuilders : [ ResolvedPackageBuilder ] = nodes. compactMap { node in
260267 guard let package = manifestToPackage [ node. manifest] else {
261268 return nil
262269 }
@@ -268,7 +275,8 @@ private func createResolvedPackages(
268275 productFilter: node. productFilter,
269276 isAllowedToVendUnsafeProducts: isAllowedToVendUnsafeProducts,
270277 allowedToOverride: allowedToOverride,
271- platformVersionProvider: platformVersionProvider
278+ platformVersionProvider: platformVersionProvider,
279+ isExperimentalMacrosCrossCompilationEnabled: isExperimentalMacrosCrossCompilationEnabled
272280 )
273281 }
274282
@@ -386,7 +394,8 @@ private func createResolvedPackages(
386394 packageIdentity: package . identity,
387395 target: $0,
388396 observabilityScope: packageObservabilityScope,
389- platformVersionProvider: platformVersionProvider
397+ platformVersionProvider: platformVersionProvider,
398+ isExperimentalMacrosCrossCompilationEnabled: isExperimentalMacrosCrossCompilationEnabled
390399 )
391400 }
392401 packageBuilder. targets = targetBuilders
@@ -417,7 +426,7 @@ private func createResolvedPackages(
417426 throw InternalError ( " unknown target \( $0) " )
418427 }
419428 return target
420- } )
429+ } , isExperimentalMacrosCrossCompilationEnabled : isExperimentalMacrosCrossCompilationEnabled )
421430 }
422431
423432 // add registry metadata if available
@@ -870,17 +879,26 @@ private final class ResolvedProductBuilder: ResolvedBuilder<ResolvedProduct> {
870879 /// The target builders in the product.
871880 let targets : [ ResolvedTargetBuilder ]
872881
873- init ( product: Product , packageBuilder: ResolvedPackageBuilder , targets: [ ResolvedTargetBuilder ] ) {
882+ let isExperimentalMacrosCrossCompilationEnabled : Bool
883+
884+ init (
885+ product: Product ,
886+ packageBuilder: ResolvedPackageBuilder ,
887+ targets: [ ResolvedTargetBuilder ] ,
888+ isExperimentalMacrosCrossCompilationEnabled: Bool
889+ ) {
874890 self . product = product
875891 self . packageBuilder = packageBuilder
876892 self . targets = targets
893+ self . isExperimentalMacrosCrossCompilationEnabled = isExperimentalMacrosCrossCompilationEnabled
877894 }
878895
879896 override func constructImpl( ) throws -> ResolvedProduct {
880897 return ResolvedProduct (
881898 packageIdentity: packageBuilder. package . identity,
882899 product: product,
883- targets: IdentifiableSet ( try targets. map { try $0. construct ( ) } )
900+ targets: IdentifiableSet ( try targets. map { try $0. construct ( ) } ) ,
901+ isExperimentalMacrosCrossCompilationEnabled: self . isExperimentalMacrosCrossCompilationEnabled
884902 )
885903 }
886904}
@@ -914,17 +932,20 @@ private final class ResolvedTargetBuilder: ResolvedBuilder<ResolvedTarget> {
914932
915933 let observabilityScope : ObservabilityScope
916934 let platformVersionProvider : PlatformVersionProvider
935+ let isExperimentalMacrosCrossCompilationEnabled : Bool
917936
918937 init (
919938 packageIdentity: PackageIdentity ,
920939 target: Target ,
921940 observabilityScope: ObservabilityScope ,
922- platformVersionProvider: PlatformVersionProvider
941+ platformVersionProvider: PlatformVersionProvider ,
942+ isExperimentalMacrosCrossCompilationEnabled: Bool
923943 ) {
924944 self . packageIdentity = packageIdentity
925945 self . target = target
926946 self . observabilityScope = observabilityScope
927947 self . platformVersionProvider = platformVersionProvider
948+ self . isExperimentalMacrosCrossCompilationEnabled = isExperimentalMacrosCrossCompilationEnabled
928949 }
929950
930951 override func constructImpl( ) throws -> ResolvedTarget {
@@ -957,7 +978,8 @@ private final class ResolvedTargetBuilder: ResolvedBuilder<ResolvedTarget> {
957978 dependencies: dependencies,
958979 defaultLocalization: self . defaultLocalization,
959980 supportedPlatforms: self . supportedPlatforms,
960- platformVersionProvider: self . platformVersionProvider
981+ platformVersionProvider: self . platformVersionProvider,
982+ isExperimentalMacrosCrossCompilationEnabled: self . isExperimentalMacrosCrossCompilationEnabled
961983 )
962984 }
963985}
@@ -1021,19 +1043,22 @@ private final class ResolvedPackageBuilder: ResolvedBuilder<ResolvedPackage> {
10211043 var registryMetadata : RegistryReleaseMetadata ?
10221044
10231045 let platformVersionProvider : PlatformVersionProvider
1046+ let isExperimentalMacrosCrossCompilationEnabled : Bool
10241047
10251048 init (
10261049 _ package : Package ,
10271050 productFilter: ProductFilter ,
10281051 isAllowedToVendUnsafeProducts: Bool ,
10291052 allowedToOverride: Bool ,
1030- platformVersionProvider: PlatformVersionProvider
1053+ platformVersionProvider: PlatformVersionProvider ,
1054+ isExperimentalMacrosCrossCompilationEnabled: Bool
10311055 ) {
10321056 self . package = package
10331057 self . productFilter = productFilter
10341058 self . isAllowedToVendUnsafeProducts = isAllowedToVendUnsafeProducts
10351059 self . allowedToOverride = allowedToOverride
10361060 self . platformVersionProvider = platformVersionProvider
1061+ self . isExperimentalMacrosCrossCompilationEnabled = isExperimentalMacrosCrossCompilationEnabled
10371062 }
10381063
10391064 override func constructImpl( ) throws -> ResolvedPackage {
@@ -1045,7 +1070,8 @@ private final class ResolvedPackageBuilder: ResolvedBuilder<ResolvedPackage> {
10451070 targets: try self . targets. map { try $0. construct ( ) } ,
10461071 products: try self . products. map { try $0. construct ( ) } ,
10471072 registryMetadata: self . registryMetadata,
1048- platformVersionProvider: self . platformVersionProvider
1073+ platformVersionProvider: self . platformVersionProvider,
1074+ isExperimentalMacrosCrossCompilationEnabled: self . isExperimentalMacrosCrossCompilationEnabled
10491075 )
10501076 }
10511077}
0 commit comments