@@ -91,7 +91,12 @@ private extension SwiftPackageFileAnalyzer {
9191
9292 changes += try analyzePlatforms ( old: old. platforms, new: new. platforms)
9393 changes += try analyzeProducts ( old: old. products, new: new. products)
94- changes += try analyzeTargets ( old: old. targets, new: new. targets)
94+ changes += try analyzeTargets (
95+ old: old. targets,
96+ new: new. targets,
97+ oldProjectBasePath: old. projectBasePath,
98+ newProjectBasePath: new. projectBasePath
99+ )
95100 changes += try analyzeDependencies ( old: old. dependencies, new: new. dependencies)
96101
97102 return . init( changes: changes, warnings: new. warnings)
@@ -279,7 +284,9 @@ private extension SwiftPackageFileAnalyzer {
279284
280285 private func analyzeTargets(
281286 old: [ SwiftPackageDescription . Target ] ,
282- new: [ SwiftPackageDescription . Target ]
287+ new: [ SwiftPackageDescription . Target ] ,
288+ oldProjectBasePath: String ,
289+ newProjectBasePath: String
283290 ) throws -> [ Change ] {
284291 guard old != new else { return [ ] }
285292
@@ -308,7 +315,9 @@ private extension SwiftPackageFileAnalyzer {
308315
309316 changes += try analyzeTarget (
310317 oldTarget: oldTarget,
311- newTarget: newTarget
318+ newTarget: newTarget,
319+ oldProjectBasePath: oldProjectBasePath,
320+ newProjectBasePath: newProjectBasePath
312321 )
313322 }
314323
@@ -325,14 +334,16 @@ private extension SwiftPackageFileAnalyzer {
325334
326335 private func analyzeTarget(
327336 oldTarget: SwiftPackageDescription . Target ,
328- newTarget: SwiftPackageDescription . Target
337+ newTarget: SwiftPackageDescription . Target ,
338+ oldProjectBasePath: String ,
339+ newProjectBasePath: String
329340 ) throws -> [ Change ] {
330341 guard oldTarget != newTarget else { return [ ] }
331-
342+
332343 // MARK: Target Resources
333344
334- let oldResourcePaths = Set ( oldTarget. resources? . map ( \. path) ?? [ ] )
335- let newResourcePaths = Set ( newTarget. resources? . map ( \. path) ?? [ ] )
345+ let oldResourcePaths = Set ( ( oldTarget. resources? . map ( \. path) ?? [ ] ) . map { $0 . trimmingPrefix ( oldProjectBasePath ) } )
346+ let newResourcePaths = Set ( ( newTarget. resources? . map ( \. path) ?? [ ] ) . map { $0 . trimmingPrefix ( newProjectBasePath ) } )
336347
337348 let addedResourcePaths = newResourcePaths. subtracting ( oldResourcePaths)
338349 let consistentResourcePaths = oldResourcePaths. intersection ( newResourcePaths)
@@ -391,6 +402,9 @@ private extension SwiftPackageFileAnalyzer {
391402 listOfChanges += removedTargetDependencies. map { " Removed dependency .target(name: \" \( $0) \" ) " }
392403 listOfChanges += removedProductDependencies. map { " Removed dependency .product(name: \" \( $0) \" , ...) " }
393404
405+
406+ guard oldTarget. description != newTarget. description || !listOfChanges. isEmpty else { return [ ] }
407+
394408 return [ . init(
395409 changeType: . modification(
396410 oldDescription: oldTarget. description,
@@ -483,3 +497,11 @@ private extension SwiftPackageFileAnalyzer {
483497 ) ]
484498 }
485499}
500+
501+ private extension String {
502+ func trimmingPrefix( _ prefix: String ) -> String {
503+ var trimmed = self
504+ trimmed. trimPrefix ( prefix)
505+ return trimmed
506+ }
507+ }
0 commit comments