@@ -33,6 +33,7 @@ extension ModulesGraph {
33
33
customXCTestMinimumDeploymentTargets: [ PackageModel . Platform : PlatformVersion ] ? = . none,
34
34
testEntryPointPath: AbsolutePath ? = nil ,
35
35
availableLibraries: [ LibraryMetadata ] ,
36
+ isExperimentalMacrosCrossCompilationEnabled: Bool ,
36
37
fileSystem: FileSystem ,
37
38
observabilityScope: ObservabilityScope
38
39
) throws -> ModulesGraph {
@@ -146,9 +147,13 @@ extension ModulesGraph {
146
147
147
148
let platformVersionProvider : PlatformVersionProvider
148
149
if let customXCTestMinimumDeploymentTargets {
149
- platformVersionProvider = . init( implementation: . customXCTestMinimumDeploymentTargets( customXCTestMinimumDeploymentTargets) )
150
+ platformVersionProvider = . init(
151
+ implementation: . customXCTestMinimumDeploymentTargets( customXCTestMinimumDeploymentTargets)
152
+ )
150
153
} else {
151
- platformVersionProvider = . init( implementation: . minimumDeploymentTargetDefault)
154
+ platformVersionProvider = . init(
155
+ implementation: . minimumDeploymentTargetDefault
156
+ )
152
157
}
153
158
154
159
// Resolve dependencies and create resolved packages.
@@ -161,6 +166,7 @@ extension ModulesGraph {
161
166
platformRegistry: customPlatformsRegistry ?? . default,
162
167
platformVersionProvider: platformVersionProvider,
163
168
availableLibraries: availableLibraries,
169
+ isExperimentalMacrosCrossCompilationEnabled: isExperimentalMacrosCrossCompilationEnabled,
164
170
fileSystem: fileSystem,
165
171
observabilityScope: observabilityScope
166
172
)
@@ -251,12 +257,13 @@ private func createResolvedPackages(
251
257
platformRegistry: PlatformRegistry ,
252
258
platformVersionProvider: PlatformVersionProvider ,
253
259
availableLibraries: [ LibraryMetadata ] ,
260
+ isExperimentalMacrosCrossCompilationEnabled: Bool ,
254
261
fileSystem: FileSystem ,
255
262
observabilityScope: ObservabilityScope
256
263
) throws -> [ ResolvedPackage ] {
257
264
258
265
// Create package builder objects from the input manifests.
259
- let packageBuilders : [ ResolvedPackageBuilder ] = nodes. compactMap { node in
266
+ let packageBuilders : [ ResolvedPackageBuilder ] = nodes. compactMap { node in
260
267
guard let package = manifestToPackage [ node. manifest] else {
261
268
return nil
262
269
}
@@ -268,7 +275,8 @@ private func createResolvedPackages(
268
275
productFilter: node. productFilter,
269
276
isAllowedToVendUnsafeProducts: isAllowedToVendUnsafeProducts,
270
277
allowedToOverride: allowedToOverride,
271
- platformVersionProvider: platformVersionProvider
278
+ platformVersionProvider: platformVersionProvider,
279
+ isExperimentalMacrosCrossCompilationEnabled: isExperimentalMacrosCrossCompilationEnabled
272
280
)
273
281
}
274
282
@@ -386,7 +394,8 @@ private func createResolvedPackages(
386
394
packageIdentity: package . identity,
387
395
target: $0,
388
396
observabilityScope: packageObservabilityScope,
389
- platformVersionProvider: platformVersionProvider
397
+ platformVersionProvider: platformVersionProvider,
398
+ isExperimentalMacrosCrossCompilationEnabled: isExperimentalMacrosCrossCompilationEnabled
390
399
)
391
400
}
392
401
packageBuilder. targets = targetBuilders
@@ -417,7 +426,7 @@ private func createResolvedPackages(
417
426
throw InternalError ( " unknown target \( $0) " )
418
427
}
419
428
return target
420
- } )
429
+ } , isExperimentalMacrosCrossCompilationEnabled : isExperimentalMacrosCrossCompilationEnabled )
421
430
}
422
431
423
432
// add registry metadata if available
@@ -870,17 +879,26 @@ private final class ResolvedProductBuilder: ResolvedBuilder<ResolvedProduct> {
870
879
/// The target builders in the product.
871
880
let targets : [ ResolvedTargetBuilder ]
872
881
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
+ ) {
874
890
self . product = product
875
891
self . packageBuilder = packageBuilder
876
892
self . targets = targets
893
+ self . isExperimentalMacrosCrossCompilationEnabled = isExperimentalMacrosCrossCompilationEnabled
877
894
}
878
895
879
896
override func constructImpl( ) throws -> ResolvedProduct {
880
897
return ResolvedProduct (
881
898
packageIdentity: packageBuilder. package . identity,
882
899
product: product,
883
- targets: IdentifiableSet ( try targets. map { try $0. construct ( ) } )
900
+ targets: IdentifiableSet ( try targets. map { try $0. construct ( ) } ) ,
901
+ isExperimentalMacrosCrossCompilationEnabled: self . isExperimentalMacrosCrossCompilationEnabled
884
902
)
885
903
}
886
904
}
@@ -914,17 +932,20 @@ private final class ResolvedTargetBuilder: ResolvedBuilder<ResolvedTarget> {
914
932
915
933
let observabilityScope : ObservabilityScope
916
934
let platformVersionProvider : PlatformVersionProvider
935
+ let isExperimentalMacrosCrossCompilationEnabled : Bool
917
936
918
937
init (
919
938
packageIdentity: PackageIdentity ,
920
939
target: Target ,
921
940
observabilityScope: ObservabilityScope ,
922
- platformVersionProvider: PlatformVersionProvider
941
+ platformVersionProvider: PlatformVersionProvider ,
942
+ isExperimentalMacrosCrossCompilationEnabled: Bool
923
943
) {
924
944
self . packageIdentity = packageIdentity
925
945
self . target = target
926
946
self . observabilityScope = observabilityScope
927
947
self . platformVersionProvider = platformVersionProvider
948
+ self . isExperimentalMacrosCrossCompilationEnabled = isExperimentalMacrosCrossCompilationEnabled
928
949
}
929
950
930
951
override func constructImpl( ) throws -> ResolvedTarget {
@@ -957,7 +978,8 @@ private final class ResolvedTargetBuilder: ResolvedBuilder<ResolvedTarget> {
957
978
dependencies: dependencies,
958
979
defaultLocalization: self . defaultLocalization,
959
980
supportedPlatforms: self . supportedPlatforms,
960
- platformVersionProvider: self . platformVersionProvider
981
+ platformVersionProvider: self . platformVersionProvider,
982
+ isExperimentalMacrosCrossCompilationEnabled: self . isExperimentalMacrosCrossCompilationEnabled
961
983
)
962
984
}
963
985
}
@@ -1021,19 +1043,22 @@ private final class ResolvedPackageBuilder: ResolvedBuilder<ResolvedPackage> {
1021
1043
var registryMetadata : RegistryReleaseMetadata ?
1022
1044
1023
1045
let platformVersionProvider : PlatformVersionProvider
1046
+ let isExperimentalMacrosCrossCompilationEnabled : Bool
1024
1047
1025
1048
init (
1026
1049
_ package : Package ,
1027
1050
productFilter: ProductFilter ,
1028
1051
isAllowedToVendUnsafeProducts: Bool ,
1029
1052
allowedToOverride: Bool ,
1030
- platformVersionProvider: PlatformVersionProvider
1053
+ platformVersionProvider: PlatformVersionProvider ,
1054
+ isExperimentalMacrosCrossCompilationEnabled: Bool
1031
1055
) {
1032
1056
self . package = package
1033
1057
self . productFilter = productFilter
1034
1058
self . isAllowedToVendUnsafeProducts = isAllowedToVendUnsafeProducts
1035
1059
self . allowedToOverride = allowedToOverride
1036
1060
self . platformVersionProvider = platformVersionProvider
1061
+ self . isExperimentalMacrosCrossCompilationEnabled = isExperimentalMacrosCrossCompilationEnabled
1037
1062
}
1038
1063
1039
1064
override func constructImpl( ) throws -> ResolvedPackage {
@@ -1045,7 +1070,8 @@ private final class ResolvedPackageBuilder: ResolvedBuilder<ResolvedPackage> {
1045
1070
targets: try self . targets. map { try $0. construct ( ) } ,
1046
1071
products: try self . products. map { try $0. construct ( ) } ,
1047
1072
registryMetadata: self . registryMetadata,
1048
- platformVersionProvider: self . platformVersionProvider
1073
+ platformVersionProvider: self . platformVersionProvider,
1074
+ isExperimentalMacrosCrossCompilationEnabled: self . isExperimentalMacrosCrossCompilationEnabled
1049
1075
)
1050
1076
}
1051
1077
}
0 commit comments