@@ -237,58 +237,67 @@ public final class ManifestLoader: ManifestLoaderProtocol {
237
237
}
238
238
239
239
Task {
240
- let parsedManifest = try await self . loadAndCacheManifest (
241
- at: manifestPath,
242
- toolsVersion: manifestToolsVersion,
243
- packageIdentity: packageIdentity,
244
- packageKind: packageKind,
245
- packageVersion: packageVersion? . version,
246
- identityResolver: identityResolver,
247
- fileSystem: fileSystem,
248
- observabilityScope: observabilityScope,
249
- delegateQueue: delegateQueue
250
- )
251
-
252
- // Convert legacy system packages to the current target‐based model.
253
- var products = parsedManifest. products
254
- var targets = parsedManifest. targets
255
- if products. isEmpty, targets. isEmpty,
256
- fileSystem. isFile ( manifestPath. parentDirectory. appending ( component: moduleMapFilename) ) {
257
- try products. append ( ProductDescription (
258
- name: parsedManifest. name,
259
- type: . library( . automatic) ,
260
- targets: [ parsedManifest. name] )
240
+ do {
241
+ let parsedManifest = try await self . loadAndCacheManifest (
242
+ at: manifestPath,
243
+ toolsVersion: manifestToolsVersion,
244
+ packageIdentity: packageIdentity,
245
+ packageKind: packageKind,
246
+ packageVersion: packageVersion? . version,
247
+ identityResolver: identityResolver,
248
+ fileSystem: fileSystem,
249
+ observabilityScope: observabilityScope,
250
+ delegateQueue: delegateQueue
261
251
)
262
- targets. append ( try TargetDescription (
263
- name: parsedManifest. name,
264
- path: " " ,
265
- type: . system,
266
- packageAccess: false ,
252
+
253
+ // Convert legacy system packages to the current target‐based model.
254
+ var products = parsedManifest. products
255
+ var targets = parsedManifest. targets
256
+ if products. isEmpty, targets. isEmpty,
257
+ fileSystem. isFile ( manifestPath. parentDirectory. appending ( component: moduleMapFilename) ) {
258
+ try products. append ( ProductDescription (
259
+ name: parsedManifest. name,
260
+ type: . library( . automatic) ,
261
+ targets: [ parsedManifest. name] )
262
+ )
263
+ targets. append ( try TargetDescription (
264
+ name: parsedManifest. name,
265
+ path: " " ,
266
+ type: . system,
267
+ packageAccess: false ,
268
+ pkgConfig: parsedManifest. pkgConfig,
269
+ providers: parsedManifest. providers
270
+ ) )
271
+ }
272
+
273
+ let manifest = Manifest (
274
+ displayName: parsedManifest. name,
275
+ path: manifestPath,
276
+ packageKind: packageKind,
277
+ packageLocation: packageLocation,
278
+ defaultLocalization: parsedManifest. defaultLocalization,
279
+ platforms: parsedManifest. platforms,
280
+ version: packageVersion? . version,
281
+ revision: packageVersion? . revision,
282
+ toolsVersion: manifestToolsVersion,
267
283
pkgConfig: parsedManifest. pkgConfig,
268
- providers: parsedManifest. providers
269
- ) )
270
- }
284
+ providers: parsedManifest. providers,
285
+ cLanguageStandard: parsedManifest. cLanguageStandard,
286
+ cxxLanguageStandard: parsedManifest. cxxLanguageStandard,
287
+ swiftLanguageVersions: parsedManifest. swiftLanguageVersions,
288
+ dependencies: parsedManifest. dependencies,
289
+ products: products,
290
+ targets: targets
291
+ )
271
292
272
- let manifest = Manifest (
273
- displayName: parsedManifest. name,
274
- path: manifestPath,
275
- packageKind: packageKind,
276
- packageLocation: packageLocation,
277
- defaultLocalization: parsedManifest. defaultLocalization,
278
- platforms: parsedManifest. platforms,
279
- version: packageVersion? . version,
280
- revision: packageVersion? . revision,
281
- toolsVersion: manifestToolsVersion,
282
- pkgConfig: parsedManifest. pkgConfig,
283
- providers: parsedManifest. providers,
284
- cLanguageStandard: parsedManifest. cLanguageStandard,
285
- cxxLanguageStandard: parsedManifest. cxxLanguageStandard,
286
- swiftLanguageVersions: parsedManifest. swiftLanguageVersions,
287
- dependencies: parsedManifest. dependencies,
288
- products: products,
289
- targets: targets
290
- )
291
- completion ( . success( manifest) )
293
+ return callbackQueue. async {
294
+ completion ( . success( manifest) )
295
+ }
296
+ } catch {
297
+ return callbackQueue. async {
298
+ completion ( . failure( error) )
299
+ }
300
+ }
292
301
}
293
302
}
294
303
0 commit comments