From 99e567519f3f57b68140cb9516f0839e8803480b Mon Sep 17 00:00:00 2001 From: 3a4oT Date: Thu, 19 Aug 2021 15:21:17 -0700 Subject: [PATCH] SPM number10 (#1487) Summary: ## Changes in this pull request A better version of https://github.com/Instagram/IGListKit/issues/1465 =) - SPM support with script-based generations. - added macOS Catalyst support ### Generate SPM layout 1. From **project's root** run: `bash scripts/generate_spm_sources_layout.sh` 2. Commit Changes Repeat those steps each time you delete/add the project's files. **Make sure** to have this CI step which will check that `generate_spm_sources_layout.sh` is not broken. Issue fixed: https://github.com/Instagram/IGListKit/issues/1368 #1406 ### Checklist - [ ] All tests pass. Demo project builds and runs. - [ ] I added tests, an experiment, or detailed why my change isn't tested. - [ ] I added an entry to the `CHANGELOG.md` for any breaking changes, enhancements, or bug fixes. - [ ] I have reviewed the [contributing guide](https://github.com/Instagram/IGListKit/blob/master/.github/CONTRIBUTING.md) Pull Request resolved: https://github.com/Instagram/IGListKit/pull/1487 Differential Revision: D30428297 Pulled By: lorixx fbshipit-source-id: 7fe5e99f2c6faf695a74588743a17fcafd02de44 --- .github/workflows/CI.yml | 61 ++++- CHANGELOG.md | 4 + IGListKit.xcodeproj/project.pbxproj | 58 ++--- Package.swift | 34 ++- Podfile | 12 + Podfile.lock | 4 +- Pods/Manifest.lock | 4 +- ...OCMNonRetainingObjectReturnValueProvider.h | 28 +++ ...OCMNonRetainingObjectReturnValueProvider.m | 40 ++++ .../OCMock/OCMObjectReturnValueProvider.h | 21 ++ .../OCMock/OCMObjectReturnValueProvider.m | 36 +++ Pods/OCMock/Source/OCMock/OCMQuantifier.h | 46 ++++ Pods/OCMock/Source/OCMock/OCMQuantifier.m | 140 +++++++++++ Pods/OCMock/Source/OCMock/OCMockMacros.h | 156 ++++++++++++ Pods/Pods.xcodeproj/project.pbxproj | 12 +- .../OCMock-iOS/Info.plist | 26 -- .../OCMock-iOS/OCMock-iOS.debug.xcconfig | 16 ++ .../OCMock-iOS/OCMock-iOS.release.xcconfig | 16 ++ .../OCMock-tvOS/Info.plist | 26 -- ...OS.xcconfig => OCMock-tvOS.debug.xcconfig} | 4 + .../OCMock-tvOS.release.xcconfig} | 6 +- .../Pods-IGListKit-tvOSTests/Info.plist | 26 -- .../Pods-IGListKit-tvOSTests-resources.sh | 118 --------- .../Pods-IGListKitTests/Info.plist | 26 -- .../Pods-IGListKitTests-resources.sh | 118 --------- Source/IGListDiffKit/IGListBatchUpdateData.h | 6 +- Source/IGListDiffKit/IGListBatchUpdateData.mm | 8 +- Source/IGListDiffKit/IGListCompatibility.h | 2 +- Source/IGListDiffKit/IGListDiff.h | 6 +- Source/IGListDiffKit/IGListDiff.mm | 6 +- Source/IGListDiffKit/IGListDiffKit.h | 25 +- Source/IGListDiffKit/IGListExperiments.h | 2 +- Source/IGListDiffKit/IGListIndexPathResult.h | 2 +- Source/IGListDiffKit/IGListIndexSetResult.h | 2 +- .../Internal/IGListIndexPathResultInternal.h | 2 +- .../Internal/IGListIndexSetResultInternal.h | 2 +- .../Internal/IGListMoveIndexInternal.h | 2 +- .../IGListDiffKit/NSNumber+IGListDiffable.h | 3 +- .../IGListDiffKit/NSString+IGListDiffable.h | 2 +- Source/IGListKit/IGListAdapter.h | 18 +- Source/IGListKit/IGListAdapter.m | 6 +- Source/IGListKit/IGListAdapterDataSource.h | 2 +- Source/IGListKit/IGListAdapterUpdater.h | 9 +- Source/IGListKit/IGListAdapterUpdater.m | 4 + .../IGListAdapterUpdaterCompatible.h | 91 +++++++ .../IGListKit/IGListAdapterUpdaterDelegate.h | 4 + .../IGListBindingSectionController.h | 8 +- .../IGListBindingSectionController.m | 4 +- Source/IGListKit/IGListCollectionContext.h | 8 +- Source/IGListKit/IGListCollectionViewLayout.h | 4 + .../IGListKit/IGListCollectionViewLayout.mm | 4 +- .../IGListGenericSectionController.h | 2 +- Source/IGListKit/IGListKit.h | 79 +++--- Source/IGListKit/IGListReloadDataUpdater.h | 7 +- Source/IGListKit/IGListReloadDataUpdater.m | 2 +- Source/IGListKit/IGListSectionController.h | 12 +- Source/IGListKit/IGListSectionController.m | 5 + .../IGListKit/IGListSingleSectionController.h | 7 +- .../IGListKit/IGListSingleSectionController.m | 2 +- Source/IGListKit/IGListTransitionData.h | 4 + .../Internal/IGListAdapter+DebugDescription.h | 2 +- .../Internal/IGListAdapter+UICollectionView.h | 4 +- .../Internal/IGListAdapter+UICollectionView.m | 8 +- .../Internal/IGListAdapterInternal.h | 6 +- .../IGListKit/Internal/IGListAdapterProxy.h | 4 + .../IGListKit/Internal/IGListAdapterProxy.m | 2 +- .../IGListAdapterUpdater+DebugDescription.h | 2 +- .../Internal/IGListAdapterUpdaterHelpers.m | 7 + .../Internal/IGListArrayUtilsInternal.h | 6 +- .../IGListBatchUpdateData+DebugDescription.h | 4 + .../Internal/IGListBatchUpdateTransaction.h | 9 + .../Internal/IGListBatchUpdateTransaction.m | 9 +- .../IGListKit/Internal/IGListBatchUpdates.h | 4 + ...indingSectionController+DebugDescription.h | 2 +- .../IGListDataSourceChangeTransaction.h | 7 +- Source/IGListKit/Internal/IGListDebugger.h | 4 + .../IGListKit/Internal/IGListDisplayHandler.h | 4 + .../IGListKit/Internal/IGListDisplayHandler.m | 10 +- .../Internal/IGListItemUpdatesCollector.h | 4 + .../Internal/IGListReloadIndexPath.h | 4 + .../Internal/IGListReloadTransaction.h | 6 +- .../Internal/IGListReloadTransaction.m | 2 +- Source/IGListKit/Internal/IGListSectionMap.h | 4 + Source/IGListKit/Internal/IGListSectionMap.m | 2 +- .../Internal/IGListUpdateTransactable.h | 4 + .../Internal/IGListUpdateTransactionBuilder.h | 9 + .../Internal/IGListWorkingRangeHandler.mm | 6 +- .../UICollectionView+DebugDescription.m | 4 + .../UICollectionView+IGListBatchUpdateData.m | 4 + ...llectionViewLayout+InteractiveReordering.h | 2 +- ...llectionViewLayout+InteractiveReordering.m | 4 +- Tests/IGListDiffSwiftTests.swift | 2 +- scripts/generate_spm_sources_layout.sh | 224 ++++++++++++++++++ .../IGListDiffKit/IGListBatchUpdateData.mm | 1 + spm/Sources/IGListDiffKit/IGListDiff.mm | 1 + .../IGListDiffKit/IGListIndexPathResult.m | 1 + .../IGListIndexPathResultInternal.h | 1 + .../IGListDiffKit/IGListIndexSetResult.m | 1 + .../IGListIndexSetResultInternal.h | 1 + spm/Sources/IGListDiffKit/IGListMoveIndex.m | 1 + .../IGListDiffKit/IGListMoveIndexInternal.h | 1 + .../IGListDiffKit/IGListMoveIndexPath.m | 1 + .../IGListMoveIndexPathInternal.h | 1 + .../IGListDiffKit/NSNumber+IGListDiffable.m | 1 + .../IGListDiffKit/NSString+IGListDiffable.m | 1 + .../IGListDiffKit/include/IGListAssert.h | 1 + .../include/IGListBatchUpdateData.h | 1 + .../include/IGListCompatibility.h | 1 + .../IGListDiffKit/include/IGListDiff.h | 1 + .../IGListDiffKit/include/IGListDiffKit.h | 1 + .../IGListDiffKit/include/IGListDiffable.h | 1 + .../IGListDiffKit/include/IGListExperiments.h | 1 + .../include/IGListIndexPathResult.h | 1 + .../include/IGListIndexSetResult.h | 1 + .../IGListDiffKit/include/IGListMacros.h | 1 + .../IGListDiffKit/include/IGListMoveIndex.h | 1 + .../include/IGListMoveIndexPath.h | 1 + .../include/NSNumber+IGListDiffable.h | 1 + .../include/NSString+IGListDiffable.h | 1 + .../IGListAdapter+DebugDescription.h | 1 + .../IGListAdapter+DebugDescription.m | 1 + .../IGListAdapter+UICollectionView.h | 1 + .../IGListAdapter+UICollectionView.m | 1 + spm/Sources/IGListKit/IGListAdapter.m | 1 + spm/Sources/IGListKit/IGListAdapterInternal.h | 1 + spm/Sources/IGListKit/IGListAdapterProxy.h | 1 + spm/Sources/IGListKit/IGListAdapterProxy.m | 1 + .../IGListAdapterUpdater+DebugDescription.h | 1 + .../IGListAdapterUpdater+DebugDescription.m | 1 + spm/Sources/IGListKit/IGListAdapterUpdater.m | 1 + .../IGListKit/IGListAdapterUpdaterHelpers.h | 1 + .../IGListKit/IGListAdapterUpdaterHelpers.m | 1 + .../IGListKit/IGListAdapterUpdaterInternal.h | 1 + .../IGListKit/IGListArrayUtilsInternal.h | 1 + .../IGListBatchUpdateData+DebugDescription.h | 1 + .../IGListBatchUpdateData+DebugDescription.m | 1 + .../IGListKit/IGListBatchUpdateState.h | 1 + .../IGListKit/IGListBatchUpdateTransaction.h | 1 + .../IGListKit/IGListBatchUpdateTransaction.m | 1 + spm/Sources/IGListKit/IGListBatchUpdates.h | 1 + spm/Sources/IGListKit/IGListBatchUpdates.m | 1 + ...indingSectionController+DebugDescription.h | 1 + ...indingSectionController+DebugDescription.m | 1 + .../IGListBindingSectionController.m | 1 + spm/Sources/IGListKit/IGListCollectionView.m | 1 + .../IGListKit/IGListCollectionViewLayout.mm | 1 + .../IGListCollectionViewLayoutInternal.h | 1 + .../IGListDataSourceChangeTransaction.h | 1 + .../IGListDataSourceChangeTransaction.m | 1 + spm/Sources/IGListKit/IGListDebugger.h | 1 + spm/Sources/IGListKit/IGListDebugger.m | 1 + .../IGListKit/IGListDebuggingUtilities.h | 1 + .../IGListKit/IGListDebuggingUtilities.m | 1 + spm/Sources/IGListKit/IGListDisplayHandler.h | 1 + spm/Sources/IGListKit/IGListDisplayHandler.m | 1 + ...erimentalAdapterUpdater+DebugDescription.h | 1 + .../IGListGenericSectionController.m | 1 + .../IGListKit/IGListIndexPathResultInternal.h | 1 + .../IGListKit/IGListIndexSetResultInternal.h | 1 + .../IGListKit/IGListItemUpdatesCollector.h | 1 + .../IGListKit/IGListItemUpdatesCollector.m | 1 + .../IGListKit/IGListMoveIndexInternal.h | 1 + .../IGListKit/IGListMoveIndexPathInternal.h | 1 + .../IGListKit/IGListReloadDataUpdater.m | 1 + spm/Sources/IGListKit/IGListReloadIndexPath.h | 1 + spm/Sources/IGListKit/IGListReloadIndexPath.m | 1 + .../IGListKit/IGListReloadTransaction.h | 1 + .../IGListKit/IGListReloadTransaction.m | 1 + .../IGListKit/IGListSectionController.m | 1 + .../IGListSectionControllerInternal.h | 1 + .../IGListSectionMap+DebugDescription.h | 1 + .../IGListSectionMap+DebugDescription.m | 1 + spm/Sources/IGListKit/IGListSectionMap.h | 1 + spm/Sources/IGListKit/IGListSectionMap.m | 1 + .../IGListKit/IGListSingleSectionController.m | 1 + spm/Sources/IGListKit/IGListTransitionData.m | 1 + .../IGListKit/IGListUpdateTransactable.h | 1 + .../IGListUpdateTransactionBuilder.h | 1 + .../IGListUpdateTransactionBuilder.m | 1 + .../IGListKit/IGListWorkingRangeHandler.h | 1 + .../IGListKit/IGListWorkingRangeHandler.mm | 1 + .../UICollectionView+DebugDescription.h | 1 + .../UICollectionView+DebugDescription.m | 1 + .../UICollectionView+IGListBatchUpdateData.h | 1 + .../UICollectionView+IGListBatchUpdateData.m | 1 + ...llectionViewLayout+InteractiveReordering.h | 1 + ...llectionViewLayout+InteractiveReordering.m | 1 + .../IGListKit/UIScrollView+IGListKit.h | 1 + .../IGListKit/UIScrollView+IGListKit.m | 1 + spm/Sources/IGListKit/include/IGListAdapter.h | 1 + .../include/IGListAdapterDataSource.h | 1 + .../IGListKit/include/IGListAdapterDelegate.h | 1 + .../include/IGListAdapterMoveDelegate.h | 1 + .../IGListAdapterPerformanceDelegate.h | 1 + .../include/IGListAdapterUpdateListener.h | 1 + .../IGListKit/include/IGListAdapterUpdater.h | 1 + .../include/IGListAdapterUpdaterCompatible.h | 1 + .../include/IGListAdapterUpdaterDelegate.h | 1 + .../IGListKit/include/IGListBatchContext.h | 1 + .../IGListKit/include/IGListBindable.h | 1 + .../include/IGListBindingSectionController.h | 1 + ...IGListBindingSectionControllerDataSource.h | 1 + ...indingSectionControllerSelectionDelegate.h | 1 + .../include/IGListCollectionContext.h | 1 + .../include/IGListCollectionScrollingTraits.h | 1 + .../IGListKit/include/IGListCollectionView.h | 1 + .../IGListCollectionViewDelegateLayout.h | 1 + .../include/IGListCollectionViewLayout.h | 1 + .../IGListCollectionViewLayoutCompatible.h | 1 + .../IGListKit/include/IGListDisplayDelegate.h | 1 + .../include/IGListGenericSectionController.h | 1 + spm/Sources/IGListKit/include/IGListKit.h | 1 + .../include/IGListReloadDataUpdater.h | 1 + .../IGListKit/include/IGListScrollDelegate.h | 1 + .../include/IGListSectionController.h | 1 + .../include/IGListSingleSectionController.h | 1 + .../include/IGListSupplementaryViewSource.h | 1 + .../IGListKit/include/IGListTransitionData.h | 1 + .../include/IGListTransitionDelegate.h | 1 + .../include/IGListUpdatingDelegate.h | 1 + .../include/IGListWorkingRangeDelegate.h | 1 + 221 files changed, 1359 insertions(+), 534 deletions(-) create mode 100644 Pods/OCMock/Source/OCMock/OCMNonRetainingObjectReturnValueProvider.h create mode 100644 Pods/OCMock/Source/OCMock/OCMNonRetainingObjectReturnValueProvider.m create mode 100644 Pods/OCMock/Source/OCMock/OCMObjectReturnValueProvider.h create mode 100644 Pods/OCMock/Source/OCMock/OCMObjectReturnValueProvider.m create mode 100644 Pods/OCMock/Source/OCMock/OCMQuantifier.h create mode 100644 Pods/OCMock/Source/OCMock/OCMQuantifier.m create mode 100644 Pods/OCMock/Source/OCMock/OCMockMacros.h delete mode 100644 Pods/Target Support Files/OCMock-iOS/Info.plist create mode 100644 Pods/Target Support Files/OCMock-iOS/OCMock-iOS.debug.xcconfig create mode 100644 Pods/Target Support Files/OCMock-iOS/OCMock-iOS.release.xcconfig delete mode 100644 Pods/Target Support Files/OCMock-tvOS/Info.plist rename Pods/Target Support Files/OCMock-tvOS/{OCMock-tvOS.xcconfig => OCMock-tvOS.debug.xcconfig} (62%) rename Pods/Target Support Files/{OCMock-iOS/OCMock-iOS.xcconfig => OCMock-tvOS/OCMock-tvOS.release.xcconfig} (61%) delete mode 100644 Pods/Target Support Files/Pods-IGListKit-tvOSTests/Info.plist delete mode 100755 Pods/Target Support Files/Pods-IGListKit-tvOSTests/Pods-IGListKit-tvOSTests-resources.sh delete mode 100644 Pods/Target Support Files/Pods-IGListKitTests/Info.plist delete mode 100755 Pods/Target Support Files/Pods-IGListKitTests/Pods-IGListKitTests-resources.sh create mode 100644 Source/IGListKit/IGListAdapterUpdaterCompatible.h create mode 100755 scripts/generate_spm_sources_layout.sh create mode 120000 spm/Sources/IGListDiffKit/IGListBatchUpdateData.mm create mode 120000 spm/Sources/IGListDiffKit/IGListDiff.mm create mode 120000 spm/Sources/IGListDiffKit/IGListIndexPathResult.m create mode 120000 spm/Sources/IGListDiffKit/IGListIndexPathResultInternal.h create mode 120000 spm/Sources/IGListDiffKit/IGListIndexSetResult.m create mode 120000 spm/Sources/IGListDiffKit/IGListIndexSetResultInternal.h create mode 120000 spm/Sources/IGListDiffKit/IGListMoveIndex.m create mode 120000 spm/Sources/IGListDiffKit/IGListMoveIndexInternal.h create mode 120000 spm/Sources/IGListDiffKit/IGListMoveIndexPath.m create mode 120000 spm/Sources/IGListDiffKit/IGListMoveIndexPathInternal.h create mode 120000 spm/Sources/IGListDiffKit/NSNumber+IGListDiffable.m create mode 120000 spm/Sources/IGListDiffKit/NSString+IGListDiffable.m create mode 120000 spm/Sources/IGListDiffKit/include/IGListAssert.h create mode 120000 spm/Sources/IGListDiffKit/include/IGListBatchUpdateData.h create mode 120000 spm/Sources/IGListDiffKit/include/IGListCompatibility.h create mode 120000 spm/Sources/IGListDiffKit/include/IGListDiff.h create mode 120000 spm/Sources/IGListDiffKit/include/IGListDiffKit.h create mode 120000 spm/Sources/IGListDiffKit/include/IGListDiffable.h create mode 120000 spm/Sources/IGListDiffKit/include/IGListExperiments.h create mode 120000 spm/Sources/IGListDiffKit/include/IGListIndexPathResult.h create mode 120000 spm/Sources/IGListDiffKit/include/IGListIndexSetResult.h create mode 120000 spm/Sources/IGListDiffKit/include/IGListMacros.h create mode 120000 spm/Sources/IGListDiffKit/include/IGListMoveIndex.h create mode 120000 spm/Sources/IGListDiffKit/include/IGListMoveIndexPath.h create mode 120000 spm/Sources/IGListDiffKit/include/NSNumber+IGListDiffable.h create mode 120000 spm/Sources/IGListDiffKit/include/NSString+IGListDiffable.h create mode 120000 spm/Sources/IGListKit/IGListAdapter+DebugDescription.h create mode 120000 spm/Sources/IGListKit/IGListAdapter+DebugDescription.m create mode 120000 spm/Sources/IGListKit/IGListAdapter+UICollectionView.h create mode 120000 spm/Sources/IGListKit/IGListAdapter+UICollectionView.m create mode 120000 spm/Sources/IGListKit/IGListAdapter.m create mode 120000 spm/Sources/IGListKit/IGListAdapterInternal.h create mode 120000 spm/Sources/IGListKit/IGListAdapterProxy.h create mode 120000 spm/Sources/IGListKit/IGListAdapterProxy.m create mode 120000 spm/Sources/IGListKit/IGListAdapterUpdater+DebugDescription.h create mode 120000 spm/Sources/IGListKit/IGListAdapterUpdater+DebugDescription.m create mode 120000 spm/Sources/IGListKit/IGListAdapterUpdater.m create mode 120000 spm/Sources/IGListKit/IGListAdapterUpdaterHelpers.h create mode 120000 spm/Sources/IGListKit/IGListAdapterUpdaterHelpers.m create mode 120000 spm/Sources/IGListKit/IGListAdapterUpdaterInternal.h create mode 120000 spm/Sources/IGListKit/IGListArrayUtilsInternal.h create mode 120000 spm/Sources/IGListKit/IGListBatchUpdateData+DebugDescription.h create mode 120000 spm/Sources/IGListKit/IGListBatchUpdateData+DebugDescription.m create mode 120000 spm/Sources/IGListKit/IGListBatchUpdateState.h create mode 120000 spm/Sources/IGListKit/IGListBatchUpdateTransaction.h create mode 120000 spm/Sources/IGListKit/IGListBatchUpdateTransaction.m create mode 120000 spm/Sources/IGListKit/IGListBatchUpdates.h create mode 120000 spm/Sources/IGListKit/IGListBatchUpdates.m create mode 120000 spm/Sources/IGListKit/IGListBindingSectionController+DebugDescription.h create mode 120000 spm/Sources/IGListKit/IGListBindingSectionController+DebugDescription.m create mode 120000 spm/Sources/IGListKit/IGListBindingSectionController.m create mode 120000 spm/Sources/IGListKit/IGListCollectionView.m create mode 120000 spm/Sources/IGListKit/IGListCollectionViewLayout.mm create mode 120000 spm/Sources/IGListKit/IGListCollectionViewLayoutInternal.h create mode 120000 spm/Sources/IGListKit/IGListDataSourceChangeTransaction.h create mode 120000 spm/Sources/IGListKit/IGListDataSourceChangeTransaction.m create mode 120000 spm/Sources/IGListKit/IGListDebugger.h create mode 120000 spm/Sources/IGListKit/IGListDebugger.m create mode 120000 spm/Sources/IGListKit/IGListDebuggingUtilities.h create mode 120000 spm/Sources/IGListKit/IGListDebuggingUtilities.m create mode 120000 spm/Sources/IGListKit/IGListDisplayHandler.h create mode 120000 spm/Sources/IGListKit/IGListDisplayHandler.m create mode 120000 spm/Sources/IGListKit/IGListExperimentalAdapterUpdater+DebugDescription.h create mode 120000 spm/Sources/IGListKit/IGListGenericSectionController.m create mode 120000 spm/Sources/IGListKit/IGListIndexPathResultInternal.h create mode 120000 spm/Sources/IGListKit/IGListIndexSetResultInternal.h create mode 120000 spm/Sources/IGListKit/IGListItemUpdatesCollector.h create mode 120000 spm/Sources/IGListKit/IGListItemUpdatesCollector.m create mode 120000 spm/Sources/IGListKit/IGListMoveIndexInternal.h create mode 120000 spm/Sources/IGListKit/IGListMoveIndexPathInternal.h create mode 120000 spm/Sources/IGListKit/IGListReloadDataUpdater.m create mode 120000 spm/Sources/IGListKit/IGListReloadIndexPath.h create mode 120000 spm/Sources/IGListKit/IGListReloadIndexPath.m create mode 120000 spm/Sources/IGListKit/IGListReloadTransaction.h create mode 120000 spm/Sources/IGListKit/IGListReloadTransaction.m create mode 120000 spm/Sources/IGListKit/IGListSectionController.m create mode 120000 spm/Sources/IGListKit/IGListSectionControllerInternal.h create mode 120000 spm/Sources/IGListKit/IGListSectionMap+DebugDescription.h create mode 120000 spm/Sources/IGListKit/IGListSectionMap+DebugDescription.m create mode 120000 spm/Sources/IGListKit/IGListSectionMap.h create mode 120000 spm/Sources/IGListKit/IGListSectionMap.m create mode 120000 spm/Sources/IGListKit/IGListSingleSectionController.m create mode 120000 spm/Sources/IGListKit/IGListTransitionData.m create mode 120000 spm/Sources/IGListKit/IGListUpdateTransactable.h create mode 120000 spm/Sources/IGListKit/IGListUpdateTransactionBuilder.h create mode 120000 spm/Sources/IGListKit/IGListUpdateTransactionBuilder.m create mode 120000 spm/Sources/IGListKit/IGListWorkingRangeHandler.h create mode 120000 spm/Sources/IGListKit/IGListWorkingRangeHandler.mm create mode 120000 spm/Sources/IGListKit/UICollectionView+DebugDescription.h create mode 120000 spm/Sources/IGListKit/UICollectionView+DebugDescription.m create mode 120000 spm/Sources/IGListKit/UICollectionView+IGListBatchUpdateData.h create mode 120000 spm/Sources/IGListKit/UICollectionView+IGListBatchUpdateData.m create mode 120000 spm/Sources/IGListKit/UICollectionViewLayout+InteractiveReordering.h create mode 120000 spm/Sources/IGListKit/UICollectionViewLayout+InteractiveReordering.m create mode 120000 spm/Sources/IGListKit/UIScrollView+IGListKit.h create mode 120000 spm/Sources/IGListKit/UIScrollView+IGListKit.m create mode 120000 spm/Sources/IGListKit/include/IGListAdapter.h create mode 120000 spm/Sources/IGListKit/include/IGListAdapterDataSource.h create mode 120000 spm/Sources/IGListKit/include/IGListAdapterDelegate.h create mode 120000 spm/Sources/IGListKit/include/IGListAdapterMoveDelegate.h create mode 120000 spm/Sources/IGListKit/include/IGListAdapterPerformanceDelegate.h create mode 120000 spm/Sources/IGListKit/include/IGListAdapterUpdateListener.h create mode 120000 spm/Sources/IGListKit/include/IGListAdapterUpdater.h create mode 120000 spm/Sources/IGListKit/include/IGListAdapterUpdaterCompatible.h create mode 120000 spm/Sources/IGListKit/include/IGListAdapterUpdaterDelegate.h create mode 120000 spm/Sources/IGListKit/include/IGListBatchContext.h create mode 120000 spm/Sources/IGListKit/include/IGListBindable.h create mode 120000 spm/Sources/IGListKit/include/IGListBindingSectionController.h create mode 120000 spm/Sources/IGListKit/include/IGListBindingSectionControllerDataSource.h create mode 120000 spm/Sources/IGListKit/include/IGListBindingSectionControllerSelectionDelegate.h create mode 120000 spm/Sources/IGListKit/include/IGListCollectionContext.h create mode 120000 spm/Sources/IGListKit/include/IGListCollectionScrollingTraits.h create mode 120000 spm/Sources/IGListKit/include/IGListCollectionView.h create mode 120000 spm/Sources/IGListKit/include/IGListCollectionViewDelegateLayout.h create mode 120000 spm/Sources/IGListKit/include/IGListCollectionViewLayout.h create mode 120000 spm/Sources/IGListKit/include/IGListCollectionViewLayoutCompatible.h create mode 120000 spm/Sources/IGListKit/include/IGListDisplayDelegate.h create mode 120000 spm/Sources/IGListKit/include/IGListGenericSectionController.h create mode 120000 spm/Sources/IGListKit/include/IGListKit.h create mode 120000 spm/Sources/IGListKit/include/IGListReloadDataUpdater.h create mode 120000 spm/Sources/IGListKit/include/IGListScrollDelegate.h create mode 120000 spm/Sources/IGListKit/include/IGListSectionController.h create mode 120000 spm/Sources/IGListKit/include/IGListSingleSectionController.h create mode 120000 spm/Sources/IGListKit/include/IGListSupplementaryViewSource.h create mode 120000 spm/Sources/IGListKit/include/IGListTransitionData.h create mode 120000 spm/Sources/IGListKit/include/IGListTransitionDelegate.h create mode 120000 spm/Sources/IGListKit/include/IGListUpdatingDelegate.h create mode 120000 spm/Sources/IGListKit/include/IGListWorkingRangeDelegate.h diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 819291c09..8aea0a101 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -11,9 +11,9 @@ on: jobs: macOS: name: Unit Test macOS - runs-on: macOS-latest + runs-on: macos-11 env: - DEVELOPER_DIR: /Applications/Xcode_12.2.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_12.5.1.app WORKSPACE_NAME: IGListKit.xcworkspace SCHEME_NAME: IGListKit-macOS steps: @@ -39,9 +39,9 @@ jobs: iOS: name: Unit Test iOS - runs-on: macOS-latest + runs-on: macos-11 env: - DEVELOPER_DIR: /Applications/Xcode_12.2.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_12.5.1.app WORKSPACE_NAME: IGListKit.xcworkspace SCHEME_NAME: IGListKit strategy: @@ -70,9 +70,9 @@ jobs: Cocoapods: name: Cocoapods Lint - runs-on: macOS-latest + runs-on: macos-11 env: - DEVELOPER_DIR: /Applications/Xcode_12.2.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_12.5.1.app steps: - name: Checkout uses: actions/checkout@v2 @@ -96,12 +96,49 @@ jobs: - name: Run IGListSwiftKit podspec lint run: bundle exec pod lib lint IGListSwiftKit.podspec --allow-warnings "--include-podspecs=*.podspec" + + SPM-build-from-Package: + name: Verify SPM build by invoking `xcodebuild` on Package.swift + runs-on: macos-11 + env: + DEVELOPER_DIR: /Applications/Xcode_12.5.1.app + WORKSPACE_NAME: IGListKit.xcworkspace + PROJECT_NAME: IGListKit.xcodeproj + IOS_DESTINATION: "name=iPhone 12 Pro" + strategy: + matrix: + schemeName: ["IGListDiffKit", + "IGListKit", + "IGListSwiftKit"] + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Clean project's ${{ env.PROJECT_NAME }} and ${{ env.WORKSPACE_NAME }} + run: | + rm -rf "${{ env.WORKSPACE_NAME }}" + rm -rf "${{ env.PROJECT_NAME }}" + + - name: Run ${{ matrix.schemeName}} using Package.swift + run: xcodebuild -scheme "${{ matrix.schemeName}}" build -destination "${{ env.IOS_DESTINATION }}" | xcpretty + + Carthage-XCFramework: + name: Verify Carthage build XCFramework + runs-on: macos-11 + env: + DEVELOPER_DIR: /Applications/Xcode_12.5.1.app + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Carthage build framework + run: carthage build --no-skip-current --use-xcframeworks - Carthage: - name: Verify Carthage build - runs-on: macOS-latest + Carthage-Legacy-Lipo-Binaries: + name: Verify Carthage build lipo binaries + runs-on: macos-11 env: - DEVELOPER_DIR: /Applications/Xcode_11.7.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_11.7.app steps: - name: Checkout uses: actions/checkout@v2 @@ -111,9 +148,9 @@ jobs: Build-Examples: name: Build Examples and UI tests. - runs-on: macOS-latest + runs-on: macos-10.15 env: - DEVELOPER_DIR: /Applications/Xcode_12.2.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_12.4.app IOS_EXAMPLE_WORKSPACE: Examples/Examples-iOS/IGListKitExamples.xcworkspace TVOS_EXAMPLE_WORKSPACE: Examples/Examples-tvOS/IGListKitExamples.xcworkspace MACOS_EXAMPLE_WORKSPACE: Examples/Examples-macOS/IGListKitExamples.xcworkspace diff --git a/CHANGELOG.md b/CHANGELOG.md index dd1019eb7..31ae82420 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -63,6 +63,8 @@ The changelog for `IGListKit`. Also see the [releases](https://github.com/instag - Added `shouldSelectItemAtIndex:` to `IGListSectionController` . [dirtmelon](https://github.com/dirtmelon) +- Added [Mac Catalyst](https://developer.apple.com/mac-catalyst/) support. [Petro Rovenskyy](https://github.com/3a4oT/) + - Introduce `IGListSwiftKit`, with Swift refinements for `dequeueReusableCellOfClass` methods. [Koen Punt](https://github.com/koenpunt) [(#1388)](https://github.com/Instagram/IGListKit/pull/1388). - Added `APPLICATION_EXTENSION_API_ONLY` support for `IGListDiffKit` [Peter Meyers](https://github.com/pm-dev) [(#1422)](https://github.com/Instagram/IGListKit/pull/1422) @@ -87,6 +89,8 @@ The changelog for `IGListKit`. Also see the [releases](https://github.com/instag ### Fixes +- Repaired Swift Package Manager support. [Petro Rovenskyy](https://github.com/3a4oT/) + - `IGListCollectionViewLayout` should get the section/index counts via `UICollectionView` to stay in sync, instead of the `dataSource` [Maxime Ollivier](https://github.com/maxolls) (tbd) - Remove `[collectionView layoutIfNeeded]` before scrolling in `[IGListAdapter scrollToObject...]` to avoid creating off-screen cells. [Maxime Ollivier](https://github.com/maxolls) (tbd) diff --git a/IGListKit.xcodeproj/project.pbxproj b/IGListKit.xcodeproj/project.pbxproj index 1b4a77b0b..3e0e920f5 100644 --- a/IGListKit.xcodeproj/project.pbxproj +++ b/IGListKit.xcodeproj/project.pbxproj @@ -7,6 +7,16 @@ objects = { /* Begin PBXBuildFile section */ + 0A8928F926CDA521003FABD8 /* IGListUpdateTransactionBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B22E722502AAC30055DC2F /* IGListUpdateTransactionBuilder.m */; }; + 0A8928FA26CDA53B003FABD8 /* IGListUpdateTransactionBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B22E7D2502AAC40055DC2F /* IGListUpdateTransactionBuilder.h */; }; + 0A8928FB26CDA591003FABD8 /* IGListReloadTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B22E762502AAC30055DC2F /* IGListReloadTransaction.h */; }; + 0A8928FC26CDA5BD003FABD8 /* IGListReloadTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B22E7E2502AAC40055DC2F /* IGListReloadTransaction.m */; }; + 0A8928FD26CDA5E1003FABD8 /* IGListDataSourceChangeTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B22E792502AAC30055DC2F /* IGListDataSourceChangeTransaction.m */; }; + 0A8928FE26CDA5EA003FABD8 /* IGListDataSourceChangeTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B22E742502AAC30055DC2F /* IGListDataSourceChangeTransaction.h */; }; + 0A8928FF26CDA62C003FABD8 /* IGListBatchUpdateTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B22E712502AAC20055DC2F /* IGListBatchUpdateTransaction.m */; }; + 0A89290026CDA632003FABD8 /* IGListBatchUpdateTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B22E7B2502AAC40055DC2F /* IGListBatchUpdateTransaction.h */; }; + 0A89290126CDA666003FABD8 /* IGListItemUpdatesCollector.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B22E7C2502AAC40055DC2F /* IGListItemUpdatesCollector.h */; }; + 0A89290226CDA672003FABD8 /* IGListItemUpdatesCollector.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B22E752502AAC30055DC2F /* IGListItemUpdatesCollector.m */; }; 0B3B93611E08E38C008390ED /* IGListBatchUpdateDataTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 88144EE51D870EDC007C7F66 /* IGListBatchUpdateDataTests.m */; }; 0B40C5F31E01CB8200378109 /* IGReloadDataUpdaterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 2997D4961DF5FC0B005A5DD2 /* IGReloadDataUpdaterTests.m */; }; 13DF01731FA0FD400092A320 /* IGListTestAdapterReorderingDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 13DF01721FA0FD400092A320 /* IGListTestAdapterReorderingDataSource.m */; }; @@ -66,21 +76,6 @@ 401B5E63230111EC004099D5 /* IGTestNibCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 294369B01DB1B7AE0025F6E7 /* IGTestNibCell.xib */; }; 401B5E64230111F3004099D5 /* IGTestNibSupplementaryView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2904861C1DCD02140007F41D /* IGTestNibSupplementaryView.xib */; }; 401B5E65230111F7004099D5 /* IGTestStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 821BC4C21DB8CAE900172ED0 /* IGTestStoryboard.storyboard */; }; - 47F8D49D26CAF5B500D626FE /* IGListBatchUpdateTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B22E712502AAC20055DC2F /* IGListBatchUpdateTransaction.m */; }; - 47F8D49E26CAF5B500D626FE /* IGListDataSourceChangeTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B22E792502AAC30055DC2F /* IGListDataSourceChangeTransaction.m */; }; - 47F8D49F26CAF5B500D626FE /* IGListItemUpdatesCollector.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B22E752502AAC30055DC2F /* IGListItemUpdatesCollector.m */; }; - 47F8D4A026CAF5B500D626FE /* IGListReloadTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B22E7E2502AAC40055DC2F /* IGListReloadTransaction.m */; }; - 47F8D4A126CAF5B500D626FE /* IGListUpdateTransactionBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B22E722502AAC30055DC2F /* IGListUpdateTransactionBuilder.m */; }; - 47F8D4A226CAF5D900D626FE /* IGListBatchUpdateTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B22E7B2502AAC40055DC2F /* IGListBatchUpdateTransaction.h */; }; - 47F8D4A326CAF5DA00D626FE /* IGListDataSourceChangeTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B22E742502AAC30055DC2F /* IGListDataSourceChangeTransaction.h */; }; - 47F8D4A426CAF5DA00D626FE /* IGListItemUpdatesCollector.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B22E7C2502AAC40055DC2F /* IGListItemUpdatesCollector.h */; }; - 47F8D4A526CAF5DA00D626FE /* IGListReloadTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B22E762502AAC30055DC2F /* IGListReloadTransaction.h */; }; - 47F8D4A626CAF5DA00D626FE /* IGListUpdateTransactable.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B22E732502AAC30055DC2F /* IGListUpdateTransactable.h */; }; - 47F8D4A726CAF5DA00D626FE /* IGListUpdateTransactionBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B22E7D2502AAC40055DC2F /* IGListUpdateTransactionBuilder.h */; }; - 47F8D4AA26CAF73200D626FE /* ListValueSectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47F8D4A826CAF73200D626FE /* ListValueSectionController.swift */; }; - 47F8D4AB26CAF73200D626FE /* ListValueSectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47F8D4A826CAF73200D626FE /* ListValueSectionController.swift */; }; - 47F8D4AC26CAF73200D626FE /* ListIdentifiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47F8D4A926CAF73200D626FE /* ListIdentifiable.swift */; }; - 47F8D4AD26CAF73200D626FE /* ListIdentifiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47F8D4A926CAF73200D626FE /* ListIdentifiable.swift */; }; 57B22E6C2502AAB20055DC2F /* IGListTransitionData.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B22E662502AAB10055DC2F /* IGListTransitionData.m */; }; 57B22E6F2502AAB20055DC2F /* IGListTransitionData.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B22E692502AAB10055DC2F /* IGListTransitionData.h */; }; 57B22E7F2502AAC40055DC2F /* IGListBatchUpdateTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 57B22E712502AAC20055DC2F /* IGListBatchUpdateTransaction.m */; }; @@ -539,8 +534,6 @@ 29DA5CA61EA7D37000113926 /* IGListTestCase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IGListTestCase.m; sourceTree = ""; }; 29DA5CA91EA7D39B00113926 /* IGListTestCase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IGListTestCase.h; sourceTree = ""; }; 29DA5CAA1EA7D3FF00113926 /* IGListTestHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IGListTestHelpers.h; sourceTree = ""; }; - 47F8D4A826CAF73200D626FE /* ListValueSectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ListValueSectionController.swift; sourceTree = ""; }; - 47F8D4A926CAF73200D626FE /* ListIdentifiable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ListIdentifiable.swift; sourceTree = ""; }; 57B22E662502AAB10055DC2F /* IGListTransitionData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IGListTransitionData.m; sourceTree = ""; }; 57B22E692502AAB10055DC2F /* IGListTransitionData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IGListTransitionData.h; sourceTree = ""; }; 57B22E712502AAC20055DC2F /* IGListBatchUpdateTransaction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IGListBatchUpdateTransaction.m; sourceTree = ""; }; @@ -1027,8 +1020,6 @@ 7A92EA9823A8A42000E5A13D /* IGListSwiftKit */ = { isa = PBXGroup; children = ( - 47F8D4A926CAF73200D626FE /* ListIdentifiable.swift */, - 47F8D4A826CAF73200D626FE /* ListValueSectionController.swift */, 7A92EA9923A8A42000E5A13D /* IGListSwiftKit.h */, 7A92EA9F23A8A43D00E5A13D /* IGListCollectionContext+Refinements.swift */, 7AEA8E5C25BF715C00971591 /* IGListSingleSectionController+Refinements.swift */, @@ -1313,15 +1304,14 @@ 7A02CEFB2361511100B49FAE /* IGListDisplayDelegate.h in Headers */, 7A02CF4C2361511100B49FAE /* IGListSupplementaryViewSource.h in Headers */, 7A02CFA92361513600B49FAE /* UICollectionViewLayout+InteractiveReordering.h in Headers */, - 47F8D4A226CAF5D900D626FE /* IGListBatchUpdateTransaction.h in Headers */, - 47F8D4A326CAF5DA00D626FE /* IGListDataSourceChangeTransaction.h in Headers */, - 47F8D4A426CAF5DA00D626FE /* IGListItemUpdatesCollector.h in Headers */, - 47F8D4A526CAF5DA00D626FE /* IGListReloadTransaction.h in Headers */, - 47F8D4A626CAF5DA00D626FE /* IGListUpdateTransactable.h in Headers */, - 47F8D4A726CAF5DA00D626FE /* IGListUpdateTransactionBuilder.h in Headers */, + 0A89290026CDA632003FABD8 /* IGListBatchUpdateTransaction.h in Headers */, + 0A8928FB26CDA591003FABD8 /* IGListReloadTransaction.h in Headers */, + 0A8928FA26CDA53B003FABD8 /* IGListUpdateTransactionBuilder.h in Headers */, + 0A8928FE26CDA5EA003FABD8 /* IGListDataSourceChangeTransaction.h in Headers */, 7A02CF462361511100B49FAE /* IGListAdapterPerformanceDelegate.h in Headers */, 7A02CF0A2361511100B49FAE /* IGListBindingSectionControllerDataSource.h in Headers */, 7A02D0122361513600B49FAE /* UICollectionView+DebugDescription.h in Headers */, + 0A89290126CDA666003FABD8 /* IGListItemUpdatesCollector.h in Headers */, 7A92EAB423A8A5FA00E5A13D /* IGListAdapterUpdaterHelpers.h in Headers */, 7A02CF0D2361511100B49FAE /* IGListCollectionContext.h in Headers */, 7A02CF372361511100B49FAE /* IGListAdapterDataSource.h in Headers */, @@ -1590,6 +1580,8 @@ 887D0B421D870D7F009E01F7 /* PBXTargetDependency */, ); name = IGListKitTests; + packageProductDependencies = ( + ); productName = IGListKitTests; productReference = 887D0B3F1D870D7F009E01F7 /* IGListKitTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; @@ -1700,6 +1692,8 @@ en, ); mainGroup = 887D0B2C1D870D7E009E01F7; + packageReferences = ( + ); productRefGroup = 887D0B371D870D7E009E01F7 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -1888,8 +1882,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 47F8D4AA26CAF73200D626FE /* ListValueSectionController.swift in Sources */, - 47F8D4AC26CAF73200D626FE /* ListIdentifiable.swift in Sources */, 7AEA8E5D25BF715C00971591 /* IGListSingleSectionController+Refinements.swift in Sources */, 7A92EAA023A8A43D00E5A13D /* IGListCollectionContext+Refinements.swift in Sources */, ); @@ -1899,8 +1891,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 47F8D4AB26CAF73200D626FE /* ListValueSectionController.swift in Sources */, - 47F8D4AD26CAF73200D626FE /* ListIdentifiable.swift in Sources */, 7AEA8E5E25BF715C00971591 /* IGListSingleSectionController+Refinements.swift in Sources */, 7A92EAB123A8A50C00E5A13D /* IGListCollectionContext+Refinements.swift in Sources */, ); @@ -1910,16 +1900,16 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 47F8D49D26CAF5B500D626FE /* IGListBatchUpdateTransaction.m in Sources */, - 47F8D49E26CAF5B500D626FE /* IGListDataSourceChangeTransaction.m in Sources */, - 47F8D49F26CAF5B500D626FE /* IGListItemUpdatesCollector.m in Sources */, - 47F8D4A026CAF5B500D626FE /* IGListReloadTransaction.m in Sources */, - 47F8D4A126CAF5B500D626FE /* IGListUpdateTransactionBuilder.m in Sources */, + 0A8928F926CDA521003FABD8 /* IGListUpdateTransactionBuilder.m in Sources */, + 0A8928FF26CDA62C003FABD8 /* IGListBatchUpdateTransaction.m in Sources */, + 0A89290226CDA672003FABD8 /* IGListItemUpdatesCollector.m in Sources */, 7A02CF492361511100B49FAE /* IGListSingleSectionController.m in Sources */, 7A02CFEB2361513600B49FAE /* IGListBatchUpdates.m in Sources */, + 0A8928FC26CDA5BD003FABD8 /* IGListReloadTransaction.m in Sources */, 7A02CF132361511100B49FAE /* IGListGenericSectionController.m in Sources */, 7A02CFA62361513600B49FAE /* UICollectionView+IGListBatchUpdateData.m in Sources */, 7A02CFC42361513600B49FAE /* UICollectionView+DebugDescription.m in Sources */, + 0A8928FD26CDA5E1003FABD8 /* IGListDataSourceChangeTransaction.m in Sources */, 7A02CFBE2361513600B49FAE /* IGListAdapterUpdater+DebugDescription.m in Sources */, 7A02CFAC2361513600B49FAE /* IGListReloadIndexPath.m in Sources */, 7A02CF5E2361511100B49FAE /* IGListSectionController.m in Sources */, diff --git a/Package.swift b/Package.swift index 5ed46a2f9..ec9d20afb 100644 --- a/Package.swift +++ b/Package.swift @@ -1,15 +1,39 @@ -// swift-tools-version:4.2 +// swift-tools-version:5.3 import PackageDescription let package = Package( name: "IGListKit", + platforms: [ .iOS(.v9), + .tvOS(.v9), + .macOS(.v10_15), + ], products: [ - .library(name: "IGListKit", targets: ["IGListKit"]) + .library(name: "IGListDiffKit", + type: .static , + targets: ["IGListDiffKit"]), + .library(name: "IGListKit", + type: .static, + targets: ["IGListKit"]), + .library(name: "IGListSwiftKit", + type: .static, + targets: ["IGListSwiftKit"]), ], targets: [ + .target( + name: "IGListDiffKit", + path: "spm/Sources/IGListDiffKit" + ), .target( name: "IGListKit", - path: "Source" - ) - ] + dependencies: ["IGListDiffKit"], + path: "spm/Sources/IGListKit" + ), + .target( + name: "IGListSwiftKit", + dependencies: ["IGListKit"], + path: "Source/IGListSwiftKit" + ), + ], + cLanguageStandard: .c11, + cxxLanguageStandard: .cxx11 ) diff --git a/Podfile b/Podfile index 4f448a976..83440674b 100644 --- a/Podfile +++ b/Podfile @@ -13,3 +13,15 @@ target 'IGListKit-tvOSTests' do platform :tvos, '10.0' pod 'OCMock', '~> 3.8.1' end + +post_install do |installer| + puts "Running OCMock bitcode workaround. https://github.com/erikdoe/ocmock/issues/475" + installer.pods_project.targets.each do |target| + target.build_configurations.each do |config| + # Disable bitcode for OCMock. See: https://github.com/erikdoe/ocmock/issues/475 + if target.name.start_with?('OCMock') + config.build_settings['ENABLE_BITCODE'] = 'NO' + end + end + end +end \ No newline at end of file diff --git a/Podfile.lock b/Podfile.lock index e9fd22a28..cc150ec5b 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -11,6 +11,6 @@ SPEC REPOS: SPEC CHECKSUMS: OCMock: 29f6e52085b4e7d9b075cbf03ed7c3112f82f934 -PODFILE CHECKSUM: 08c2473d74942a9baab4869259cb6d56a9899952 +PODFILE CHECKSUM: 15138e08bb42a9341c06dca20fe03def7f155b40 -COCOAPODS: 1.10.2 +COCOAPODS: 1.10.1 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index e9fd22a28..cc150ec5b 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -11,6 +11,6 @@ SPEC REPOS: SPEC CHECKSUMS: OCMock: 29f6e52085b4e7d9b075cbf03ed7c3112f82f934 -PODFILE CHECKSUM: 08c2473d74942a9baab4869259cb6d56a9899952 +PODFILE CHECKSUM: 15138e08bb42a9341c06dca20fe03def7f155b40 -COCOAPODS: 1.10.2 +COCOAPODS: 1.10.1 diff --git a/Pods/OCMock/Source/OCMock/OCMNonRetainingObjectReturnValueProvider.h b/Pods/OCMock/Source/OCMock/OCMNonRetainingObjectReturnValueProvider.h new file mode 100644 index 000000000..1d9b8f705 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMNonRetainingObjectReturnValueProvider.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2019-2020 Erik Doernenburg and contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use these files except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +#import + +@interface OCMNonRetainingObjectReturnValueProvider : NSObject +{ + id returnValue; +} + +- (instancetype)initWithValue:(id)aValue; + +- (void)handleInvocation:(NSInvocation *)anInvocation; + +@end diff --git a/Pods/OCMock/Source/OCMock/OCMNonRetainingObjectReturnValueProvider.m b/Pods/OCMock/Source/OCMock/OCMNonRetainingObjectReturnValueProvider.m new file mode 100644 index 000000000..ee694f15f --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMNonRetainingObjectReturnValueProvider.m @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2019-2020 Erik Doernenburg and contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use these files except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +#import "OCMNonRetainingObjectReturnValueProvider.h" +#import "OCMFunctions.h" +#import "NSInvocation+OCMAdditions.h" + + +@implementation OCMNonRetainingObjectReturnValueProvider + +- (instancetype)initWithValue:(id)aValue +{ + if ((self = [super init])) + returnValue = aValue; + return self; +} + +- (void)handleInvocation:(NSInvocation *)anInvocation +{ + if(!OCMIsObjectType([[anInvocation methodSignature] methodReturnType])) + { + @throw [NSException exceptionWithName:NSInvalidArgumentException reason:@"Expected invocation with object return type. Did you mean to use andReturnValue: instead?" userInfo:nil]; + } + [anInvocation setReturnValue:&returnValue]; +} +@end + diff --git a/Pods/OCMock/Source/OCMock/OCMObjectReturnValueProvider.h b/Pods/OCMock/Source/OCMock/OCMObjectReturnValueProvider.h new file mode 100644 index 000000000..c16223975 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMObjectReturnValueProvider.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2009-2020 Erik Doernenburg and contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use these files except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +#import "OCMNonRetainingObjectReturnValueProvider.h" + +@interface OCMObjectReturnValueProvider : OCMNonRetainingObjectReturnValueProvider + +@end diff --git a/Pods/OCMock/Source/OCMock/OCMObjectReturnValueProvider.m b/Pods/OCMock/Source/OCMock/OCMObjectReturnValueProvider.m new file mode 100644 index 000000000..c0ac09b23 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMObjectReturnValueProvider.m @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2009-2020 Erik Doernenburg and contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use these files except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +#import "OCMObjectReturnValueProvider.h" + + +@implementation OCMObjectReturnValueProvider + +- (instancetype)initWithValue:(id)aValue +{ + if((self = [super initWithValue:aValue])) + [returnValue retain]; + return self; +} + +- (void)dealloc +{ + [returnValue release]; + [super dealloc]; +} + + +@end diff --git a/Pods/OCMock/Source/OCMock/OCMQuantifier.h b/Pods/OCMock/Source/OCMock/OCMQuantifier.h new file mode 100644 index 000000000..d85e8b1f4 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMQuantifier.h @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2016-2020 Erik Doernenburg and contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use these files except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +#import + +@interface OCMQuantifier : NSObject +{ + NSUInteger expectedCount; +} + ++ (instancetype)never; ++ (instancetype)exactly:(NSUInteger)count; ++ (instancetype)atLeast:(NSUInteger)count; ++ (instancetype)atMost:(NSUInteger)count; + +- (BOOL)isValidCount:(NSUInteger)count; + +- (NSString *)description; + +@end + + +#define OCMNever() ([OCMQuantifier never]) +#define OCMTimes(n) ([OCMQuantifier exactly:(n)]) +#define OCMAtLeast(n) ([OCMQuantifier atLeast:(n)]) +#define OCMAtMost(n) ([OCMQuantifier atMost:(n)]) + +#ifndef OCM_DISABLE_SHORT_QSYNTAX +#define never() OCMNever() +#define times(n) OCMTimes(n) +#define atLeast(n) OCMAtLeast(n) +#define atMost(n) OCMAtMost(n) +#endif diff --git a/Pods/OCMock/Source/OCMock/OCMQuantifier.m b/Pods/OCMock/Source/OCMock/OCMQuantifier.m new file mode 100644 index 000000000..f9980743a --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMQuantifier.m @@ -0,0 +1,140 @@ +/* + * Copyright (c) 2016-2020 Erik Doernenburg and contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use these files except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +#import "OCMQuantifier.h" +#import "OCMMacroState.h" +#import "OCMVerifier.h" + + +@interface OCMExactCountQuantifier : OCMQuantifier + +@end + +@interface OCMAtLeastQuantifier : OCMQuantifier + +@end + +@interface OCMAtMostQuantifier : OCMQuantifier + +@end + + + +@implementation OCMQuantifier + ++ (instancetype)exactly:(NSUInteger)count +{ + return [[[OCMExactCountQuantifier alloc] initWithCount:count] autorelease]; +} + ++ (instancetype)never +{ + return [self exactly:0]; +} + ++ (instancetype)atLeast:(NSUInteger)count +{ + return [[[OCMAtLeastQuantifier alloc] initWithCount:count] autorelease]; +} + ++ (instancetype)atMost:(NSUInteger)count +{ + return [[[OCMAtMostQuantifier alloc] initWithCount:count] autorelease]; +} + + +- (instancetype)initWithCount:(NSUInteger)count +{ + if((self = [super init]) != nil) + { + expectedCount = count; + [(OCMVerifier *)[[OCMMacroState globalState] recorder] setQuantifier:self]; + } + return self; +} + + +- (BOOL)isValidCount:(NSUInteger)count +{ + return NO; +} + +- (NSString *)description +{ + switch(expectedCount) + { + case 0: return @"never"; + case 1: return @"once"; + default: return [NSString stringWithFormat:@"%lu times", (unsigned long)expectedCount]; + } +} + +@end + + +@implementation OCMExactCountQuantifier + +- (BOOL)isValidCount:(NSUInteger)count +{ + return count == expectedCount; +} + +@end + + +@implementation OCMAtLeastQuantifier + +- (instancetype)initWithCount:(NSUInteger)count +{ + if(count == 0) + @throw [NSException exceptionWithName:NSInvalidArgumentException reason:@"Count for an at-least quantifier cannot be zero." userInfo:nil]; + return [super initWithCount:count]; +} + +- (BOOL)isValidCount:(NSUInteger)count +{ + return count >= expectedCount; +} + +- (NSString *)description +{ + return [@"at least " stringByAppendingString:[super description]]; +} + +@end + + +@implementation OCMAtMostQuantifier + +- (instancetype)initWithCount:(NSUInteger)count +{ + if(count == 0) + @throw [NSException exceptionWithName:NSInvalidArgumentException reason:@"Count for an at-most quantifier cannot be zero. Use never or exactly-zero quantifier instead." userInfo:nil]; + return [super initWithCount:count]; +} + +- (BOOL)isValidCount:(NSUInteger)count +{ + return count <= expectedCount; +} + +- (NSString *)description +{ + return [@"at most " stringByAppendingString:[super description]]; +} + +@end + diff --git a/Pods/OCMock/Source/OCMock/OCMockMacros.h b/Pods/OCMock/Source/OCMock/OCMockMacros.h new file mode 100644 index 000000000..1636d9bd5 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMockMacros.h @@ -0,0 +1,156 @@ +/* +* Copyright (c) 2014-2020 Erik Doernenburg and contributors +* +* Licensed under the Apache License, Version 2.0 (the "License"); you may +* not use these files except in compliance with the License. You may obtain +* a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +* License for the specific language governing permissions and limitations +* under the License. +*/ + + +#ifdef OCM_DISABLE_SHORT_SYNTAX +#define OCM_DISABLE_SHORT_QSYNTAX +#endif + + +#define OCMClassMock(cls) [OCMockObject niceMockForClass:cls] + +#define OCMStrictClassMock(cls) [OCMockObject mockForClass:cls] + +#define OCMProtocolMock(protocol) [OCMockObject niceMockForProtocol:protocol] + +#define OCMStrictProtocolMock(protocol) [OCMockObject mockForProtocol:protocol] + +#define OCMPartialMock(obj) [OCMockObject partialMockForObject:obj] + +#define OCMObserverMock() [OCMockObject observerMock] + + +#define OCMStub(invocation) \ +({ \ + _OCMSilenceWarnings( \ + [OCMMacroState beginStubMacro]; \ + OCMStubRecorder *recorder = nil; \ + @try{ \ + invocation; \ + }@catch(...){ \ + [[OCMMacroState globalState] setInvocationDidThrow:YES]; \ + /* NOLINTNEXTLINE(google-objc-avoid-throwing-exception) */ \ + @throw; \ + }@finally{ \ + recorder = [OCMMacroState endStubMacro]; \ + } \ + recorder; \ + ); \ +}) + +#define OCMExpect(invocation) \ +({ \ + _OCMSilenceWarnings( \ + [OCMMacroState beginExpectMacro]; \ + OCMStubRecorder *recorder = nil; \ + @try{ \ + invocation; \ + }@catch(...){ \ + [[OCMMacroState globalState] setInvocationDidThrow:YES]; \ + /* NOLINTNEXTLINE(google-objc-avoid-throwing-exception) */ \ + @throw; \ + }@finally{ \ + recorder = [OCMMacroState endExpectMacro]; \ + } \ + recorder; \ + ); \ +}) + +#define OCMReject(invocation) \ +({ \ + _OCMSilenceWarnings( \ + [OCMMacroState beginRejectMacro]; \ + OCMStubRecorder *recorder = nil; \ + @try{ \ + invocation; \ + }@catch(...){ \ + [[OCMMacroState globalState] setInvocationDidThrow:YES]; \ + /* NOLINTNEXTLINE(google-objc-avoid-throwing-exception) */ \ + @throw; \ + }@finally{ \ + recorder = [OCMMacroState endRejectMacro]; \ + } \ + recorder; \ + ); \ +}) + + + +#define OCMClassMethod(invocation) \ + _OCMSilenceWarnings( \ + [[OCMMacroState globalState] switchToClassMethod]; \ + invocation; \ + ); + + +#ifndef OCM_DISABLE_SHORT_SYNTAX +#define ClassMethod(invocation) OCMClassMethod(invocation) +#endif + + +#define OCMVerifyAll(mock) [(OCMockObject *)mock verifyAtLocation:OCMMakeLocation(self, __FILE__, __LINE__)] + +#define OCMVerifyAllWithDelay(mock, delay) [(OCMockObject *)mock verifyWithDelay:delay atLocation:OCMMakeLocation(self, __FILE__, __LINE__)] + +#define _OCMVerify(invocation) \ +({ \ + _OCMSilenceWarnings( \ + [OCMMacroState beginVerifyMacroAtLocation:OCMMakeLocation(self, __FILE__, __LINE__)]; \ + @try{ \ + invocation; \ + }@catch(...){ \ + [[OCMMacroState globalState] setInvocationDidThrow:YES]; \ + /* NOLINTNEXTLINE(google-objc-avoid-throwing-exception) */ \ + @throw; \ + }@finally{ \ + [OCMMacroState endVerifyMacro]; \ + } \ + ); \ +}) + +#define _OCMVerifyWithQuantifier(quantifier, invocation) \ +({ \ + _OCMSilenceWarnings( \ + [OCMMacroState beginVerifyMacroAtLocation:OCMMakeLocation(self, __FILE__, __LINE__) withQuantifier:quantifier]; \ + @try{ \ + invocation; \ + }@catch(...){ \ + [[OCMMacroState globalState] setInvocationDidThrow:YES]; \ + /* NOLINTNEXTLINE(google-objc-avoid-throwing-exception) */ \ + @throw; \ + }@finally{ \ + [OCMMacroState endVerifyMacro]; \ + } \ + ); \ +}) + +// explanation for macros below here: https://stackoverflow.com/questions/3046889/optional-parameters-with-c-macros + +#define _OCMVerify_1(A) _OCMVerify(A) +#define _OCMVerify_2(A,B) _OCMVerifyWithQuantifier(A, B) +#define _OCMVerify_X(x,A,B,FUNC, ...) FUNC +#define OCMVerify(...) _OCMVerify_X(,##__VA_ARGS__, _OCMVerify_2(__VA_ARGS__), _OCMVerify_1(__VA_ARGS__)) + + +#define _OCMSilenceWarnings(macro) \ +({ \ + _Pragma("clang diagnostic push") \ + _Pragma("clang diagnostic ignored \"-Wunused-value\"") \ + _Pragma("clang diagnostic ignored \"-Wunused-getter-return-value\"") \ + _Pragma("clang diagnostic ignored \"-Wstrict-selector-match\"") \ + macro \ + _Pragma("clang diagnostic pop") \ +}) diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index b4b53becb..5caed81f8 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -594,8 +594,8 @@ 8C29DE86530C0962523F120DF8F65A76 /* OCMNotificationPoster.h in Headers */, 9AC48C4340D00A090D77BDA9A7FD0459 /* OCMObjectReturnValueProvider.h in Headers */, 51391A61E607C64E5F6E7508BCA7EFD6 /* OCMObserverRecorder.h in Headers */, - 135FD928295095E72660758032C5E1E9 /* OCMock.h in Headers */, A5E385CDE7B218E0C8B84415A689A5D5 /* OCMock-tvOS-umbrella.h in Headers */, + 135FD928295095E72660758032C5E1E9 /* OCMock.h in Headers */, 0D821A0809F762D920B313F97AFA2E21 /* OCMockMacros.h in Headers */, 78F3DC2D7690CFEB3E43D0126D579719 /* OCMockObject.h in Headers */, A4B09D57DE918C08D9973E94B2456075 /* OCMPassByRefSetter.h in Headers */, @@ -640,8 +640,8 @@ 6B9A9B9E9DE89A143453903D58D2AF8D /* OCMNotificationPoster.h in Headers */, 82B4027D60DCCFDF47B7866A8D4723C7 /* OCMObjectReturnValueProvider.h in Headers */, 07428DE24B83470C075C781BE19BAE20 /* OCMObserverRecorder.h in Headers */, - B81481CE0869BA8511800DD6584169EC /* OCMock.h in Headers */, E2601A5B26FB56226853C3C46998B6A2 /* OCMock-iOS-umbrella.h in Headers */, + B81481CE0869BA8511800DD6584169EC /* OCMock.h in Headers */, 80B0BA873CCF8F8D05511916B914954A /* OCMockMacros.h in Headers */, 089E51BF9C008B96AED34DC2424AC7E1 /* OCMockObject.h in Headers */, 64B238C298E5EF79A47E9ABD5192414F /* OCMPassByRefSetter.h in Headers */, @@ -739,8 +739,8 @@ BFDFE7DC352907FC980B868725387E98 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1240; - LastUpgradeCheck = 1240; + LastSwiftUpdateCheck = 1100; + LastUpgradeCheck = 1100; }; buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; @@ -927,6 +927,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_BITCODE = NO; GCC_PREFIX_HEADER = "Target Support Files/OCMock-tvOS/OCMock-tvOS-prefix.pch"; INFOPLIST_FILE = "Target Support Files/OCMock-tvOS/OCMock-tvOS-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -958,6 +959,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_BITCODE = NO; GCC_PREFIX_HEADER = "Target Support Files/OCMock-iOS/OCMock-iOS-prefix.pch"; INFOPLIST_FILE = "Target Support Files/OCMock-iOS/OCMock-iOS-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -989,6 +991,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_BITCODE = NO; GCC_PREFIX_HEADER = "Target Support Files/OCMock-tvOS/OCMock-tvOS-prefix.pch"; INFOPLIST_FILE = "Target Support Files/OCMock-tvOS/OCMock-tvOS-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -1179,6 +1182,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_BITCODE = NO; GCC_PREFIX_HEADER = "Target Support Files/OCMock-iOS/OCMock-iOS-prefix.pch"; INFOPLIST_FILE = "Target Support Files/OCMock-iOS/OCMock-iOS-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; diff --git a/Pods/Target Support Files/OCMock-iOS/Info.plist b/Pods/Target Support Files/OCMock-iOS/Info.plist deleted file mode 100644 index ebdce2510..000000000 --- a/Pods/Target Support Files/OCMock-iOS/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 3.4.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/OCMock-iOS/OCMock-iOS.debug.xcconfig b/Pods/Target Support Files/OCMock-iOS/OCMock-iOS.debug.xcconfig new file mode 100644 index 000000000..3c9274d6f --- /dev/null +++ b/Pods/Target Support Files/OCMock-iOS/OCMock-iOS.debug.xcconfig @@ -0,0 +1,16 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/OCMock-iOS +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" +OTHER_LDFLAGS = $(inherited) -framework "XCTest" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/OCMock +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +SWIFT_INCLUDE_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" +SYSTEM_FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/OCMock-iOS/OCMock-iOS.release.xcconfig b/Pods/Target Support Files/OCMock-iOS/OCMock-iOS.release.xcconfig new file mode 100644 index 000000000..3c9274d6f --- /dev/null +++ b/Pods/Target Support Files/OCMock-iOS/OCMock-iOS.release.xcconfig @@ -0,0 +1,16 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/OCMock-iOS +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" +OTHER_LDFLAGS = $(inherited) -framework "XCTest" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/OCMock +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +SWIFT_INCLUDE_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/usr/lib" +SYSTEM_FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/OCMock-tvOS/Info.plist b/Pods/Target Support Files/OCMock-tvOS/Info.plist deleted file mode 100644 index ebdce2510..000000000 --- a/Pods/Target Support Files/OCMock-tvOS/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 3.4.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/OCMock-tvOS/OCMock-tvOS.xcconfig b/Pods/Target Support Files/OCMock-tvOS/OCMock-tvOS.debug.xcconfig similarity index 62% rename from Pods/Target Support Files/OCMock-tvOS/OCMock-tvOS.xcconfig rename to Pods/Target Support Files/OCMock-tvOS/OCMock-tvOS.debug.xcconfig index 377d1ad8f..740dfb7a5 100644 --- a/Pods/Target Support Files/OCMock-tvOS/OCMock-tvOS.xcconfig +++ b/Pods/Target Support Files/OCMock-tvOS/OCMock-tvOS.debug.xcconfig @@ -1,9 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/OCMock-tvOS +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -framework "XCTest" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/OCMock +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/OCMock-iOS/OCMock-iOS.xcconfig b/Pods/Target Support Files/OCMock-tvOS/OCMock-tvOS.release.xcconfig similarity index 61% rename from Pods/Target Support Files/OCMock-iOS/OCMock-iOS.xcconfig rename to Pods/Target Support Files/OCMock-tvOS/OCMock-tvOS.release.xcconfig index 88a3c6446..740dfb7a5 100644 --- a/Pods/Target Support Files/OCMock-iOS/OCMock-iOS.xcconfig +++ b/Pods/Target Support Files/OCMock-tvOS/OCMock-tvOS.release.xcconfig @@ -1,9 +1,13 @@ -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/OCMock-iOS +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/OCMock-tvOS +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -framework "XCTest" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/OCMock +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-IGListKit-tvOSTests/Info.plist b/Pods/Target Support Files/Pods-IGListKit-tvOSTests/Info.plist deleted file mode 100644 index 2243fe6e2..000000000 --- a/Pods/Target Support Files/Pods-IGListKit-tvOSTests/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/Pods-IGListKit-tvOSTests/Pods-IGListKit-tvOSTests-resources.sh b/Pods/Target Support Files/Pods-IGListKit-tvOSTests/Pods-IGListKit-tvOSTests-resources.sh deleted file mode 100755 index 345301f2c..000000000 --- a/Pods/Target Support Files/Pods-IGListKit-tvOSTests/Pods-IGListKit-tvOSTests-resources.sh +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/sh -set -e -set -u -set -o pipefail - -if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then - # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy - # resources to, so exit 0 (signalling the script phase was successful). - exit 0 -fi - -mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - -RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt -> "$RESOURCES_TO_COPY" - -XCASSET_FILES=() - -# This protects against multiple targets copying the same framework dependency at the same time. The solution -# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html -RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") - -case "${TARGETED_DEVICE_FAMILY:-}" in - 1,2) - TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" - ;; - 1) - TARGET_DEVICE_ARGS="--target-device iphone" - ;; - 2) - TARGET_DEVICE_ARGS="--target-device ipad" - ;; - 3) - TARGET_DEVICE_ARGS="--target-device tv" - ;; - 4) - TARGET_DEVICE_ARGS="--target-device watch" - ;; - *) - TARGET_DEVICE_ARGS="--target-device mac" - ;; -esac - -install_resource() -{ - if [[ "$1" = /* ]] ; then - RESOURCE_PATH="$1" - else - RESOURCE_PATH="${PODS_ROOT}/$1" - fi - if [[ ! -e "$RESOURCE_PATH" ]] ; then - cat << EOM -error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. -EOM - exit 1 - fi - case $RESOURCE_PATH in - *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true - ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} - ;; - *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true - ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} - ;; - *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true - mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - ;; - *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true - xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" - ;; - *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true - xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" - ;; - *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true - xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" - ;; - *.xcassets) - ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" - XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") - ;; - *) - echo "$RESOURCE_PATH" || true - echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" - ;; - esac -} - -mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then - mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -fi -rm -f "$RESOURCES_TO_COPY" - -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] -then - # Find all other xcassets (this unfortunately includes those of path pods and other targets). - OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) - while read line; do - if [[ $line != "${PODS_ROOT}*" ]]; then - XCASSET_FILES+=("$line") - fi - done <<<"$OTHER_XCASSETS" - - if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - else - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" - fi -fi diff --git a/Pods/Target Support Files/Pods-IGListKitTests/Info.plist b/Pods/Target Support Files/Pods-IGListKitTests/Info.plist deleted file mode 100644 index 2243fe6e2..000000000 --- a/Pods/Target Support Files/Pods-IGListKitTests/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Pods/Target Support Files/Pods-IGListKitTests/Pods-IGListKitTests-resources.sh b/Pods/Target Support Files/Pods-IGListKitTests/Pods-IGListKitTests-resources.sh deleted file mode 100755 index 345301f2c..000000000 --- a/Pods/Target Support Files/Pods-IGListKitTests/Pods-IGListKitTests-resources.sh +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/sh -set -e -set -u -set -o pipefail - -if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then - # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy - # resources to, so exit 0 (signalling the script phase was successful). - exit 0 -fi - -mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - -RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt -> "$RESOURCES_TO_COPY" - -XCASSET_FILES=() - -# This protects against multiple targets copying the same framework dependency at the same time. The solution -# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html -RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") - -case "${TARGETED_DEVICE_FAMILY:-}" in - 1,2) - TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" - ;; - 1) - TARGET_DEVICE_ARGS="--target-device iphone" - ;; - 2) - TARGET_DEVICE_ARGS="--target-device ipad" - ;; - 3) - TARGET_DEVICE_ARGS="--target-device tv" - ;; - 4) - TARGET_DEVICE_ARGS="--target-device watch" - ;; - *) - TARGET_DEVICE_ARGS="--target-device mac" - ;; -esac - -install_resource() -{ - if [[ "$1" = /* ]] ; then - RESOURCE_PATH="$1" - else - RESOURCE_PATH="${PODS_ROOT}/$1" - fi - if [[ ! -e "$RESOURCE_PATH" ]] ; then - cat << EOM -error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. -EOM - exit 1 - fi - case $RESOURCE_PATH in - *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true - ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} - ;; - *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true - ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} - ;; - *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true - mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - ;; - *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true - xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" - ;; - *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true - xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" - ;; - *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true - xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" - ;; - *.xcassets) - ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" - XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") - ;; - *) - echo "$RESOURCE_PATH" || true - echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" - ;; - esac -} - -mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then - mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -fi -rm -f "$RESOURCES_TO_COPY" - -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] -then - # Find all other xcassets (this unfortunately includes those of path pods and other targets). - OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) - while read line; do - if [[ $line != "${PODS_ROOT}*" ]]; then - XCASSET_FILES+=("$line") - fi - done <<<"$OTHER_XCASSETS" - - if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - else - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" - fi -fi diff --git a/Source/IGListDiffKit/IGListBatchUpdateData.h b/Source/IGListDiffKit/IGListBatchUpdateData.h index 04f825783..7350ac917 100644 --- a/Source/IGListDiffKit/IGListBatchUpdateData.h +++ b/Source/IGListDiffKit/IGListBatchUpdateData.h @@ -7,9 +7,9 @@ #import -#import -#import -#import +#import "IGListMacros.h" +#import "IGListMoveIndex.h" +#import "IGListMoveIndexPath.h" NS_ASSUME_NONNULL_BEGIN diff --git a/Source/IGListDiffKit/IGListBatchUpdateData.mm b/Source/IGListDiffKit/IGListBatchUpdateData.mm index eae36699c..1d28267b5 100644 --- a/Source/IGListDiffKit/IGListBatchUpdateData.mm +++ b/Source/IGListDiffKit/IGListBatchUpdateData.mm @@ -7,10 +7,14 @@ #import "IGListBatchUpdateData.h" +#if __has_include() +#import +#endif + #import -#import -#import +#import "IGListAssert.h" +#import "IGListCompatibility.h" // Plucks the given move from available moves and turns it into a delete + insert static void convertMoveToDeleteAndInsert(NSMutableSet *moves, diff --git a/Source/IGListDiffKit/IGListCompatibility.h b/Source/IGListDiffKit/IGListCompatibility.h index 20f03bfa6..4a6572067 100644 --- a/Source/IGListDiffKit/IGListCompatibility.h +++ b/Source/IGListDiffKit/IGListCompatibility.h @@ -7,7 +7,7 @@ #import -#if TARGET_OS_EMBEDDED || TARGET_OS_SIMULATOR +#if TARGET_OS_EMBEDDED || TARGET_OS_SIMULATOR || TARGET_OS_MACCATALYST #import #else #import diff --git a/Source/IGListDiffKit/IGListDiff.h b/Source/IGListDiffKit/IGListDiff.h index 7c4b619cd..08b82be6a 100644 --- a/Source/IGListDiffKit/IGListDiff.h +++ b/Source/IGListDiffKit/IGListDiff.h @@ -7,9 +7,9 @@ #import -#import -#import -#import +#import "IGListDiffable.h" +#import "IGListIndexPathResult.h" +#import "IGListIndexSetResult.h" NS_ASSUME_NONNULL_BEGIN diff --git a/Source/IGListDiffKit/IGListDiff.mm b/Source/IGListDiffKit/IGListDiff.mm index f9c21fde6..4ce326779 100644 --- a/Source/IGListDiffKit/IGListDiff.mm +++ b/Source/IGListDiffKit/IGListDiff.mm @@ -7,11 +7,15 @@ #import "IGListDiff.h" +#if __has_include() +#import +#endif + #import #import #import -#import +#import "IGListCompatibility.h" #import "IGListIndexPathResultInternal.h" #import "IGListIndexSetResultInternal.h" diff --git a/Source/IGListDiffKit/IGListDiffKit.h b/Source/IGListDiffKit/IGListDiffKit.h index 1527253db..eba14899b 100644 --- a/Source/IGListDiffKit/IGListDiffKit.h +++ b/Source/IGListDiffKit/IGListDiffKit.h @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -#import +#import "IGListCompatibility.h" /** * Project version number for IGListKit. @@ -17,14 +17,15 @@ FOUNDATION_EXPORT double IGListKitVersionNumber; */ FOUNDATION_EXPORT const unsigned char IGListKitVersionString[]; -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import +#import "IGListAssert.h" +#import "IGListBatchUpdateData.h" +#import "IGListDiff.h" +#import "IGListDiffable.h" +#import "IGListExperiments.h" +#import "IGListIndexPathResult.h" +#import "IGListIndexSetResult.h" +#import "IGListMoveIndex.h" +#import "IGListMoveIndexPath.h" +#import "NSNumber+IGListDiffable.h" +#import "NSString+IGListDiffable.h" + diff --git a/Source/IGListDiffKit/IGListExperiments.h b/Source/IGListDiffKit/IGListExperiments.h index f0446f7d5..e832b2e2e 100644 --- a/Source/IGListDiffKit/IGListExperiments.h +++ b/Source/IGListDiffKit/IGListExperiments.h @@ -7,7 +7,7 @@ #import -#import +#import "IGListDiff.h" /** Bitmask-able options used for pre-release feature testing. diff --git a/Source/IGListDiffKit/IGListIndexPathResult.h b/Source/IGListDiffKit/IGListIndexPathResult.h index 956235dd4..831081c23 100644 --- a/Source/IGListDiffKit/IGListIndexPathResult.h +++ b/Source/IGListDiffKit/IGListIndexPathResult.h @@ -7,7 +7,7 @@ #import -#import +#import "IGListMoveIndexPath.h" NS_ASSUME_NONNULL_BEGIN diff --git a/Source/IGListDiffKit/IGListIndexSetResult.h b/Source/IGListDiffKit/IGListIndexSetResult.h index 8dcde858c..26c3dd8aa 100644 --- a/Source/IGListDiffKit/IGListIndexSetResult.h +++ b/Source/IGListDiffKit/IGListIndexSetResult.h @@ -7,7 +7,7 @@ #import -#import +#import "IGListMoveIndex.h" NS_ASSUME_NONNULL_BEGIN diff --git a/Source/IGListDiffKit/Internal/IGListIndexPathResultInternal.h b/Source/IGListDiffKit/Internal/IGListIndexPathResultInternal.h index 27be1842a..a6db5e756 100644 --- a/Source/IGListDiffKit/Internal/IGListIndexPathResultInternal.h +++ b/Source/IGListDiffKit/Internal/IGListIndexPathResultInternal.h @@ -7,7 +7,7 @@ #import -#import +#import "IGListIndexPathResult.h" NS_ASSUME_NONNULL_BEGIN diff --git a/Source/IGListDiffKit/Internal/IGListIndexSetResultInternal.h b/Source/IGListDiffKit/Internal/IGListIndexSetResultInternal.h index cc431eded..326adf014 100644 --- a/Source/IGListDiffKit/Internal/IGListIndexSetResultInternal.h +++ b/Source/IGListDiffKit/Internal/IGListIndexSetResultInternal.h @@ -7,7 +7,7 @@ #import -#import +#import "IGListIndexSetResult.h" NS_ASSUME_NONNULL_BEGIN diff --git a/Source/IGListDiffKit/Internal/IGListMoveIndexInternal.h b/Source/IGListDiffKit/Internal/IGListMoveIndexInternal.h index b0710345e..267c079bf 100644 --- a/Source/IGListDiffKit/Internal/IGListMoveIndexInternal.h +++ b/Source/IGListDiffKit/Internal/IGListMoveIndexInternal.h @@ -7,7 +7,7 @@ #import -#import +#import "IGListMoveIndex.h" NS_ASSUME_NONNULL_BEGIN diff --git a/Source/IGListDiffKit/NSNumber+IGListDiffable.h b/Source/IGListDiffKit/NSNumber+IGListDiffable.h index b3869e95d..575d1dc31 100644 --- a/Source/IGListDiffKit/NSNumber+IGListDiffable.h +++ b/Source/IGListDiffKit/NSNumber+IGListDiffable.h @@ -7,8 +7,7 @@ #import -#import - +#import "IGListDiffable.h" /** This category provides default `IGListDiffable` conformance for `NSNumber`. */ diff --git a/Source/IGListDiffKit/NSString+IGListDiffable.h b/Source/IGListDiffKit/NSString+IGListDiffable.h index c0df83505..5a98ab159 100644 --- a/Source/IGListDiffKit/NSString+IGListDiffable.h +++ b/Source/IGListDiffKit/NSString+IGListDiffable.h @@ -7,7 +7,7 @@ #import -#import +#import "IGListDiffable.h" /** This category provides default `IGListDiffable` conformance for `NSString`. diff --git a/Source/IGListKit/IGListAdapter.h b/Source/IGListKit/IGListAdapter.h index f0d20a4b3..bd582b2aa 100644 --- a/Source/IGListKit/IGListAdapter.h +++ b/Source/IGListKit/IGListAdapter.h @@ -7,14 +7,20 @@ #import +#if !__has_include() +#import "IGListExperiments.h" +#import "IGListMacros.h" +#else #import #import -#import -#import -#import -#import -#import -#import +#endif + +#import "IGListAdapterDataSource.h" +#import "IGListAdapterDelegate.h" +#import "IGListAdapterMoveDelegate.h" +#import "IGListAdapterPerformanceDelegate.h" +#import "IGListAdapterUpdateListener.h" +#import "IGListCollectionContext.h" @protocol IGListUpdatingDelegate; diff --git a/Source/IGListKit/IGListAdapter.m b/Source/IGListKit/IGListAdapter.m index 752128eda..b1f7429d0 100644 --- a/Source/IGListKit/IGListAdapter.m +++ b/Source/IGListKit/IGListAdapter.m @@ -7,9 +7,9 @@ #import "IGListAdapterInternal.h" -#import -#import -#import +#import "IGListAssert.h" +#import "IGListAdapterUpdater.h" +#import "IGListSupplementaryViewSource.h" #import "IGListArrayUtilsInternal.h" #import "IGListDebugger.h" diff --git a/Source/IGListKit/IGListAdapterDataSource.h b/Source/IGListKit/IGListAdapterDataSource.h index fea7ac0c5..ec7e27a66 100644 --- a/Source/IGListKit/IGListAdapterDataSource.h +++ b/Source/IGListKit/IGListAdapterDataSource.h @@ -7,7 +7,7 @@ #import -#import +#import "IGListDiffable.h" @class IGListAdapter; @class IGListSectionController; diff --git a/Source/IGListKit/IGListAdapterUpdater.h b/Source/IGListKit/IGListAdapterUpdater.h index 924fd1ede..d9819c619 100644 --- a/Source/IGListKit/IGListAdapterUpdater.h +++ b/Source/IGListKit/IGListAdapterUpdater.h @@ -7,10 +7,15 @@ #import +#if __has_include() #import -#import #import -#import +#else +#import "IGListMacros.h" +#import "IGListExperiments.h" +#endif +#import "IGListUpdatingDelegate.h" +#import "IGListAdapterUpdaterDelegate.h" NS_ASSUME_NONNULL_BEGIN diff --git a/Source/IGListKit/IGListAdapterUpdater.m b/Source/IGListKit/IGListAdapterUpdater.m index 0e9cb9d3e..3eef60f46 100644 --- a/Source/IGListKit/IGListAdapterUpdater.m +++ b/Source/IGListKit/IGListAdapterUpdater.m @@ -7,7 +7,11 @@ #import "IGListAdapterUpdater.h" +#if !__has_include() +#import "IGListAssert.h" +#else #import +#endif #import "IGListAdapterUpdaterHelpers.h" #import "IGListIndexSetResultInternal.h" diff --git a/Source/IGListKit/IGListAdapterUpdaterCompatible.h b/Source/IGListKit/IGListAdapterUpdaterCompatible.h new file mode 100644 index 000000000..a2af628b2 --- /dev/null +++ b/Source/IGListKit/IGListAdapterUpdaterCompatible.h @@ -0,0 +1,91 @@ +/* + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#import + +#if !__has_include() +#import "IGListExperiments.h" +#else +#import +#endif + +#import "IGListUpdatingDelegate.h" +#import "IGListAdapterUpdaterDelegate.h" + +NS_ASSUME_NONNULL_BEGIN + +/** +Temporary protocol to test replacing `IGListAdapterUpdater` with `IGListExperimentalAdapterUpdater`. +It extends `IGListUpdatingDelegate` to add more functionaly that might not be needed for all updaters. + */ +NS_SWIFT_NAME(ListAdapterUpdaterCompatible) +@protocol IGListAdapterUpdaterCompatible + +/** + The delegate that receives events with data on the performance of a transition. + */ +@property (nonatomic, weak) id delegate; + +/** + A flag indicating if a section move should be treated as a section "delete, then insert" operation. This can be useful if you're + performing a lot of updates and moves are too distracting. + + Default is NO. + */ +@property (nonatomic, assign) BOOL sectionMovesAsDeletesInserts; + +/** + ONLY used when there is N section, but each section only contains 1 item. + We don't need to change move into delete+insert, and we dont need to call -reload at all. + + This unlocks many default UICollectionView animations: move/inline cell updates/deletes/inserts etc. + + Default is NO. + + @warning This should only work for Section that *ONLY* has single item setup. + */ +@property (nonatomic, assign) BOOL singleItemSectionUpdates; + +/** + A flag indicating that section reloads should be treated as item reloads, instead of converting them to "delete, then insert" operations. + This only applies if the number of items for the section is unchanged. + + Default is NO. + + @note If the number of items for the section is changed, we would fallback to the default behavior and convert it to "delete + insert", + because the collectionView can crash otherwise. + */ +@property (nonatomic, assign) BOOL preferItemReloadsForSectionReloads; + +/** + A flag indicating whether this updater should skip diffing and simply call + `reloadData` for updates when the collection view is not in a window. The default value is `YES`. + + Default is YES. + + @note This will result in better performance, but will not generate the same delegate + callbacks. If using a custom layout, it will not receive `prepareForCollectionViewUpdates:`. + + @warning On iOS < 8.3, this behavior is unsupported and will always be treated as `NO`. + */ +@property (nonatomic, assign) BOOL allowsBackgroundReloading; + +/** + If there's more than 100 diff updates, fallback to using `reloadData` to avoid stalling the main thread. + + Default is YES. + */ +@property (nonatomic, assign) BOOL allowsReloadingOnTooManyUpdates; + +/** + A bitmask of experiments to conduct on the updater. + */ +@property (nonatomic, assign) IGListExperiment experiments; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Source/IGListKit/IGListAdapterUpdaterDelegate.h b/Source/IGListKit/IGListAdapterUpdaterDelegate.h index 695875a5a..4edbc7ba8 100644 --- a/Source/IGListKit/IGListAdapterUpdaterDelegate.h +++ b/Source/IGListKit/IGListAdapterUpdaterDelegate.h @@ -7,7 +7,11 @@ #import +#if !__has_include() +#import "IGListBatchUpdateData.h" +#else #import +#endif @class IGListAdapterUpdater; @class IGListIndexSetResult; diff --git a/Source/IGListKit/IGListBindingSectionController.h b/Source/IGListKit/IGListBindingSectionController.h index 4ae36d4f1..d8de2e2b4 100644 --- a/Source/IGListKit/IGListBindingSectionController.h +++ b/Source/IGListKit/IGListBindingSectionController.h @@ -7,10 +7,10 @@ #import -#import -#import -#import -#import +#import "IGListMacros.h" +#import "IGListBindingSectionControllerDataSource.h" +#import "IGListBindingSectionControllerSelectionDelegate.h" +#import "IGListSectionController.h" @protocol IGListDiffable; diff --git a/Source/IGListKit/IGListBindingSectionController.m b/Source/IGListKit/IGListBindingSectionController.m index c78cf13b2..6498e81cd 100644 --- a/Source/IGListKit/IGListBindingSectionController.m +++ b/Source/IGListKit/IGListBindingSectionController.m @@ -7,8 +7,8 @@ #import "IGListBindingSectionController.h" -#import -#import +#import "IGListAssert.h" +#import "IGListBindable.h" #import "IGListArrayUtilsInternal.h" diff --git a/Source/IGListKit/IGListCollectionContext.h b/Source/IGListKit/IGListCollectionContext.h index 29b493ba0..d3c5fc043 100644 --- a/Source/IGListKit/IGListCollectionContext.h +++ b/Source/IGListKit/IGListCollectionContext.h @@ -7,9 +7,13 @@ #import +#if !__has_include() +#import "IGListExperiments.h" +#else #import -#import -#import +#endif +#import "IGListBatchContext.h" +#import "IGListCollectionScrollingTraits.h" NS_ASSUME_NONNULL_BEGIN diff --git a/Source/IGListKit/IGListCollectionViewLayout.h b/Source/IGListKit/IGListCollectionViewLayout.h index f59bec1c7..51055428c 100644 --- a/Source/IGListKit/IGListCollectionViewLayout.h +++ b/Source/IGListKit/IGListCollectionViewLayout.h @@ -7,7 +7,11 @@ #import +#if !__has_include() +#import "IGListMacros.h" +#else #import +#endif #import "IGListCollectionViewLayoutCompatible.h" diff --git a/Source/IGListKit/IGListCollectionViewLayout.mm b/Source/IGListKit/IGListCollectionViewLayout.mm index 0b2cef869..b265d9661 100644 --- a/Source/IGListKit/IGListCollectionViewLayout.mm +++ b/Source/IGListKit/IGListCollectionViewLayout.mm @@ -10,8 +10,8 @@ #import -#import -#import +#import "IGListAssert.h" +#import "IGListCollectionViewDelegateLayout.h" #import "UIScrollView+IGListKit.h" diff --git a/Source/IGListKit/IGListGenericSectionController.h b/Source/IGListKit/IGListGenericSectionController.h index 25f84e3b7..cd2c6ad75 100644 --- a/Source/IGListKit/IGListGenericSectionController.h +++ b/Source/IGListKit/IGListGenericSectionController.h @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -#import +#import "IGListSectionController.h" NS_ASSUME_NONNULL_BEGIN diff --git a/Source/IGListKit/IGListKit.h b/Source/IGListKit/IGListKit.h index 69351e969..6a5c42026 100644 --- a/Source/IGListKit/IGListKit.h +++ b/Source/IGListKit/IGListKit.h @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -#import +#import "IGListCompatibility.h" /** * Project version number for IGListKit. @@ -17,49 +17,50 @@ FOUNDATION_EXPORT double IGListKitVersionNumber; */ FOUNDATION_EXPORT const unsigned char IGListKitVersionString[]; -#if TARGET_OS_EMBEDDED || TARGET_OS_SIMULATOR +#if TARGET_OS_EMBEDDED || TARGET_OS_SIMULATOR || TARGET_OS_MACCATALYST // iOS and tvOS only: -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import +#import "IGListAdapter.h" +#import "IGListAdapterDataSource.h" +#import "IGListAdapterDelegate.h" +#import "IGListAdapterUpdateListener.h" +#import "IGListAdapterUpdater.h" +#import "IGListAdapterUpdaterDelegate.h" +#import "IGListBatchContext.h" +#import "IGListBindable.h" +#import "IGListBindingSectionController.h" +#import "IGListBindingSectionControllerDataSource.h" +#import "IGListBindingSectionControllerSelectionDelegate.h" +#import "IGListCollectionContext.h" +#import "IGListCollectionView.h" +#import "IGListCollectionViewLayout.h" +#import "IGListDisplayDelegate.h" +#import "IGListGenericSectionController.h" +#import "IGListCollectionViewDelegateLayout.h" +#import "IGListReloadDataUpdater.h" +#import "IGListScrollDelegate.h" +#import "IGListSectionController.h" +#import "IGListSingleSectionController.h" +#import "IGListSupplementaryViewSource.h" +#import "IGListTransitionDelegate.h" +#import "IGListUpdatingDelegate.h" +#import "IGListWorkingRangeDelegate.h" +#import "IGListCollectionViewDelegateLayout.h" #endif // Shared (iOS, tvOS, macOS compatible): -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import +#import "IGListAssert.h" +#import "IGListBatchUpdateData.h" +#import "IGListDiff.h" +#import "IGListDiffable.h" +#import "IGListExperiments.h" +#import "IGListIndexPathResult.h" +#import "IGListIndexSetResult.h" +#import "IGListMoveIndex.h" +#import "IGListMoveIndexPath.h" +#import "NSNumber+IGListDiffable.h" +#import "NSString+IGListDiffable.h" + diff --git a/Source/IGListKit/IGListReloadDataUpdater.h b/Source/IGListKit/IGListReloadDataUpdater.h index 5d0626385..1660e2479 100644 --- a/Source/IGListKit/IGListReloadDataUpdater.h +++ b/Source/IGListKit/IGListReloadDataUpdater.h @@ -7,8 +7,13 @@ #import +#if !__has_include() +#import "IGListMacros.h" +#else #import -#import +#endif + +#import "IGListUpdatingDelegate.h" NS_ASSUME_NONNULL_BEGIN diff --git a/Source/IGListKit/IGListReloadDataUpdater.m b/Source/IGListKit/IGListReloadDataUpdater.m index abb14d471..26e0ae3aa 100644 --- a/Source/IGListKit/IGListReloadDataUpdater.m +++ b/Source/IGListKit/IGListReloadDataUpdater.m @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -#import +#import "IGListReloadDataUpdater.h" @implementation IGListReloadDataUpdater diff --git a/Source/IGListKit/IGListSectionController.h b/Source/IGListKit/IGListSectionController.h index 10c16d842..b7e5ec50c 100644 --- a/Source/IGListKit/IGListSectionController.h +++ b/Source/IGListKit/IGListSectionController.h @@ -7,12 +7,12 @@ #import -#import -#import -#import -#import -#import -#import +#import "IGListCollectionContext.h" +#import "IGListDisplayDelegate.h" +#import "IGListScrollDelegate.h" +#import "IGListSupplementaryViewSource.h" +#import "IGListTransitionDelegate.h" +#import "IGListWorkingRangeDelegate.h" NS_ASSUME_NONNULL_BEGIN diff --git a/Source/IGListKit/IGListSectionController.m b/Source/IGListKit/IGListSectionController.m index 5105d1b41..c60cc1329 100644 --- a/Source/IGListKit/IGListSectionController.m +++ b/Source/IGListKit/IGListSectionController.m @@ -7,8 +7,13 @@ #import "IGListSectionControllerInternal.h" +#if !__has_include() +#import "IGListAssert.h" +#import "IGListMacros.h" +#else #import #import +#endif static NSString * const kIGListSectionControllerThreadKey = @"kIGListSectionControllerThreadKey"; diff --git a/Source/IGListKit/IGListSingleSectionController.h b/Source/IGListKit/IGListSingleSectionController.h index 68e30874b..582d03e9f 100644 --- a/Source/IGListKit/IGListSingleSectionController.h +++ b/Source/IGListKit/IGListSingleSectionController.h @@ -7,8 +7,13 @@ #import +#if !__has_include() +#import "IGListMacros.h" +#else #import -#import +#endif + +#import "IGListSectionController.h" NS_ASSUME_NONNULL_BEGIN diff --git a/Source/IGListKit/IGListSingleSectionController.m b/Source/IGListKit/IGListSingleSectionController.m index 233223edf..a74419c47 100644 --- a/Source/IGListKit/IGListSingleSectionController.m +++ b/Source/IGListKit/IGListSingleSectionController.m @@ -7,7 +7,7 @@ #import "IGListSingleSectionController.h" -#import +#import "IGListAssert.h" @interface IGListSingleSectionController () diff --git a/Source/IGListKit/IGListTransitionData.h b/Source/IGListKit/IGListTransitionData.h index 0236660ad..854ee3bef 100644 --- a/Source/IGListKit/IGListTransitionData.h +++ b/Source/IGListKit/IGListTransitionData.h @@ -7,7 +7,11 @@ #import +#if !__has_include() +#import "IGListMacros.h" +#else #import +#endif NS_ASSUME_NONNULL_BEGIN diff --git a/Source/IGListKit/Internal/IGListAdapter+DebugDescription.h b/Source/IGListKit/Internal/IGListAdapter+DebugDescription.h index ede52ae69..58c470caf 100644 --- a/Source/IGListKit/Internal/IGListAdapter+DebugDescription.h +++ b/Source/IGListKit/Internal/IGListAdapter+DebugDescription.h @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -#import +#import "IGListAdapter.h" @interface IGListAdapter (DebugDescription) diff --git a/Source/IGListKit/Internal/IGListAdapter+UICollectionView.h b/Source/IGListKit/Internal/IGListAdapter+UICollectionView.h index f1faee85f..aa2fc77ff 100644 --- a/Source/IGListKit/Internal/IGListAdapter+UICollectionView.h +++ b/Source/IGListKit/Internal/IGListAdapter+UICollectionView.h @@ -7,8 +7,8 @@ #import -#import -#import +#import "IGListAdapter.h" +#import "IGListCollectionViewDelegateLayout.h" @interface IGListAdapter (UICollectionView) < diff --git a/Source/IGListKit/Internal/IGListAdapter+UICollectionView.m b/Source/IGListKit/Internal/IGListAdapter+UICollectionView.m index 7febef8d7..8f5c483fa 100644 --- a/Source/IGListKit/Internal/IGListAdapter+UICollectionView.m +++ b/Source/IGListKit/Internal/IGListAdapter+UICollectionView.m @@ -7,10 +7,10 @@ #import "IGListAdapter+UICollectionView.h" -#import -#import -#import -#import +#import "IGListAssert.h" +#import "IGListAdapterInternal.h" +#import "IGListSectionController.h" +#import "IGListSectionControllerInternal.h" #import "IGListAdapterInternal.h" diff --git a/Source/IGListKit/Internal/IGListAdapterInternal.h b/Source/IGListKit/Internal/IGListAdapterInternal.h index b8d71ba36..4e4082703 100644 --- a/Source/IGListKit/Internal/IGListAdapterInternal.h +++ b/Source/IGListKit/Internal/IGListAdapterInternal.h @@ -5,9 +5,9 @@ * LICENSE file in the root directory of this source tree. */ -#import -#import -#import +#import "IGListAdapter.h" +#import "IGListBatchContext.h" +#import "IGListCollectionContext.h" #import "IGListAdapter+UICollectionView.h" #import "IGListAdapterProxy.h" diff --git a/Source/IGListKit/Internal/IGListAdapterProxy.h b/Source/IGListKit/Internal/IGListAdapterProxy.h index ec30ad0e2..91cbf30da 100644 --- a/Source/IGListKit/Internal/IGListAdapterProxy.h +++ b/Source/IGListKit/Internal/IGListAdapterProxy.h @@ -7,7 +7,11 @@ #import +#if !__has_include() +#import "IGListMacros.h" +#else #import +#endif @class IGListAdapter; diff --git a/Source/IGListKit/Internal/IGListAdapterProxy.m b/Source/IGListKit/Internal/IGListAdapterProxy.m index 65e38f92a..6a858df77 100644 --- a/Source/IGListKit/Internal/IGListAdapterProxy.m +++ b/Source/IGListKit/Internal/IGListAdapterProxy.m @@ -7,7 +7,7 @@ #import "IGListAdapterProxy.h" -#import +#import "IGListAssert.h" #import "IGListCollectionViewDelegateLayout.h" diff --git a/Source/IGListKit/Internal/IGListAdapterUpdater+DebugDescription.h b/Source/IGListKit/Internal/IGListAdapterUpdater+DebugDescription.h index 2f0a1ec59..04b1b14a9 100644 --- a/Source/IGListKit/Internal/IGListAdapterUpdater+DebugDescription.h +++ b/Source/IGListKit/Internal/IGListAdapterUpdater+DebugDescription.h @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -#import +#import "IGListAdapterUpdater.h" @interface IGListAdapterUpdater (DebugDescription) diff --git a/Source/IGListKit/Internal/IGListAdapterUpdaterHelpers.m b/Source/IGListKit/Internal/IGListAdapterUpdaterHelpers.m index 1c51b38bb..2f62e7dbb 100644 --- a/Source/IGListKit/Internal/IGListAdapterUpdaterHelpers.m +++ b/Source/IGListKit/Internal/IGListAdapterUpdaterHelpers.m @@ -7,10 +7,17 @@ #import "IGListAdapterUpdaterHelpers.h" +#if !__has_include() +#import "IGListAssert.h" +#import "IGListBatchUpdateData.h" +#import "IGListDiffable.h" +#import "IGListIndexSetResult.h" +#else #import #import #import #import +#endif #import "IGListReloadIndexPath.h" #import "UICollectionView+IGListBatchUpdateData.h" diff --git a/Source/IGListKit/Internal/IGListArrayUtilsInternal.h b/Source/IGListKit/Internal/IGListArrayUtilsInternal.h index 9b0e405eb..224ea626b 100644 --- a/Source/IGListKit/Internal/IGListArrayUtilsInternal.h +++ b/Source/IGListKit/Internal/IGListArrayUtilsInternal.h @@ -8,7 +8,11 @@ #ifndef IGListArrayUtilsInternal_h #define IGListArrayUtilsInternal_h -#import +#if !__has_include() +#import "IGListBatchUpdateData.h" +#else +#import +#endif static NSArray *objectsWithDuplicateIdentifiersRemoved(NSArray> *objects) { if (objects == nil) { diff --git a/Source/IGListKit/Internal/IGListBatchUpdateData+DebugDescription.h b/Source/IGListKit/Internal/IGListBatchUpdateData+DebugDescription.h index f8cfb506d..be838bac0 100644 --- a/Source/IGListKit/Internal/IGListBatchUpdateData+DebugDescription.h +++ b/Source/IGListKit/Internal/IGListBatchUpdateData+DebugDescription.h @@ -7,7 +7,11 @@ #import +#if !__has_include() +#import "IGListBatchUpdateData.h" +#else #import +#endif @interface IGListBatchUpdateData (DebugDescription) diff --git a/Source/IGListKit/Internal/IGListBatchUpdateTransaction.h b/Source/IGListKit/Internal/IGListBatchUpdateTransaction.h index 181f9337d..318aa4627 100644 --- a/Source/IGListKit/Internal/IGListBatchUpdateTransaction.h +++ b/Source/IGListKit/Internal/IGListBatchUpdateTransaction.h @@ -7,8 +7,17 @@ #import +#if !__has_include() +#import "IGListMacros.h" +#else #import +#endif + +#if !__has_include() +#import "IGListUpdatingDelegate.h" +#else #import +#endif #import "IGListUpdateTransactable.h" diff --git a/Source/IGListKit/Internal/IGListBatchUpdateTransaction.m b/Source/IGListKit/Internal/IGListBatchUpdateTransaction.m index df324546f..3105f49ea 100644 --- a/Source/IGListKit/Internal/IGListBatchUpdateTransaction.m +++ b/Source/IGListKit/Internal/IGListBatchUpdateTransaction.m @@ -7,10 +7,17 @@ #import "IGListBatchUpdateTransaction.h" +#if !__has_include() +#import "IGListAssert.h" +#import "IGListDiffable.h" +#import "IGListDiff.h" +#else #import #import #import -#import +#endif + +#import "IGListAdapterUpdaterDelegate.h" #import "IGListAdapterUpdaterHelpers.h" #import "IGListIndexSetResultInternal.h" diff --git a/Source/IGListKit/Internal/IGListBatchUpdates.h b/Source/IGListKit/Internal/IGListBatchUpdates.h index cc0253608..65cf37e99 100644 --- a/Source/IGListKit/Internal/IGListBatchUpdates.h +++ b/Source/IGListKit/Internal/IGListBatchUpdates.h @@ -7,7 +7,11 @@ #import +#if !__has_include() +#import "IGListMacros.h" +#else #import +#endif @class IGListMoveIndexPath; @class IGListReloadIndexPath; diff --git a/Source/IGListKit/Internal/IGListBindingSectionController+DebugDescription.h b/Source/IGListKit/Internal/IGListBindingSectionController+DebugDescription.h index e275468a4..253ab1628 100644 --- a/Source/IGListKit/Internal/IGListBindingSectionController+DebugDescription.h +++ b/Source/IGListKit/Internal/IGListBindingSectionController+DebugDescription.h @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -#import +#import "IGListBindingSectionController.h" @interface IGListBindingSectionController (DebugDescription) diff --git a/Source/IGListKit/Internal/IGListDataSourceChangeTransaction.h b/Source/IGListKit/Internal/IGListDataSourceChangeTransaction.h index 20f786404..07c7c30cd 100644 --- a/Source/IGListKit/Internal/IGListDataSourceChangeTransaction.h +++ b/Source/IGListKit/Internal/IGListDataSourceChangeTransaction.h @@ -7,8 +7,13 @@ #import +#if !__has_include() +#import "IGListMacros.h" +#else #import -#import +#endif + +#import "IGListUpdatingDelegate.h" #import "IGListUpdateTransactable.h" diff --git a/Source/IGListKit/Internal/IGListDebugger.h b/Source/IGListKit/Internal/IGListDebugger.h index d2b20ba94..649edfee0 100644 --- a/Source/IGListKit/Internal/IGListDebugger.h +++ b/Source/IGListKit/Internal/IGListDebugger.h @@ -7,7 +7,11 @@ #import +#if !__has_include() +#import "IGListMacros.h" +#else #import +#endif @class IGListAdapter; diff --git a/Source/IGListKit/Internal/IGListDisplayHandler.h b/Source/IGListKit/Internal/IGListDisplayHandler.h index 767173779..2aa40960d 100644 --- a/Source/IGListKit/Internal/IGListDisplayHandler.h +++ b/Source/IGListKit/Internal/IGListDisplayHandler.h @@ -7,7 +7,11 @@ #import +#if !__has_include() +#import "IGListMacros.h" +#else #import +#endif @class IGListAdapter; @class IGListSectionController; diff --git a/Source/IGListKit/Internal/IGListDisplayHandler.m b/Source/IGListKit/Internal/IGListDisplayHandler.m index cb1efd6f2..7ab627bb2 100644 --- a/Source/IGListKit/Internal/IGListDisplayHandler.m +++ b/Source/IGListKit/Internal/IGListDisplayHandler.m @@ -7,11 +7,11 @@ #import "IGListDisplayHandler.h" -#import -#import -#import -#import -#import +#import "IGListAssert.h" +#import "IGListAdapter.h" +#import "IGListDisplayDelegate.h" +#import "IGListSectionController.h" +#import "IGListSectionControllerInternal.h" @interface IGListDisplayHandler () diff --git a/Source/IGListKit/Internal/IGListItemUpdatesCollector.h b/Source/IGListKit/Internal/IGListItemUpdatesCollector.h index d2910ee67..a2b69f6f3 100644 --- a/Source/IGListKit/Internal/IGListItemUpdatesCollector.h +++ b/Source/IGListKit/Internal/IGListItemUpdatesCollector.h @@ -7,7 +7,11 @@ #import +#if !__has_include() +#import "IGListMacros.h" +#else #import +#endif @class IGListMoveIndexPath; @class IGListReloadIndexPath; diff --git a/Source/IGListKit/Internal/IGListReloadIndexPath.h b/Source/IGListKit/Internal/IGListReloadIndexPath.h index efb1ab822..7f02158cc 100644 --- a/Source/IGListKit/Internal/IGListReloadIndexPath.h +++ b/Source/IGListKit/Internal/IGListReloadIndexPath.h @@ -7,7 +7,11 @@ #import +#if !__has_include() +#import "IGListMacros.h" +#else #import +#endif NS_ASSUME_NONNULL_BEGIN diff --git a/Source/IGListKit/Internal/IGListReloadTransaction.h b/Source/IGListKit/Internal/IGListReloadTransaction.h index ddaf1f00d..c62544b10 100644 --- a/Source/IGListKit/Internal/IGListReloadTransaction.h +++ b/Source/IGListKit/Internal/IGListReloadTransaction.h @@ -7,9 +7,13 @@ #import +#if !__has_include() +#import "IGListMacros.h" +#else #import -#import +#endif +#import "IGListUpdatingDelegate.h" #import "IGListUpdateTransactable.h" @class IGListAdapterUpdater; diff --git a/Source/IGListKit/Internal/IGListReloadTransaction.m b/Source/IGListKit/Internal/IGListReloadTransaction.m index 332e6ddd0..4bad7632e 100644 --- a/Source/IGListKit/Internal/IGListReloadTransaction.m +++ b/Source/IGListKit/Internal/IGListReloadTransaction.m @@ -7,7 +7,7 @@ #import "IGListReloadTransaction.h" -#import +#import "IGListAdapterUpdaterDelegate.h" @interface IGListReloadTransaction () // Given diff --git a/Source/IGListKit/Internal/IGListSectionMap.h b/Source/IGListKit/Internal/IGListSectionMap.h index 52b08031c..f7eb25fd9 100644 --- a/Source/IGListKit/Internal/IGListSectionMap.h +++ b/Source/IGListKit/Internal/IGListSectionMap.h @@ -7,7 +7,11 @@ #import +#if !__has_include() +#import "IGListMacros.h" +#else #import +#endif @class IGListSectionController; diff --git a/Source/IGListKit/Internal/IGListSectionMap.m b/Source/IGListKit/Internal/IGListSectionMap.m index ad94dace7..78f012484 100644 --- a/Source/IGListKit/Internal/IGListSectionMap.m +++ b/Source/IGListKit/Internal/IGListSectionMap.m @@ -7,7 +7,7 @@ #import "IGListSectionMap.h" -#import +#import "IGListAssert.h" #import "IGListSectionControllerInternal.h" diff --git a/Source/IGListKit/Internal/IGListUpdateTransactable.h b/Source/IGListKit/Internal/IGListUpdateTransactable.h index 3f4ec3908..4b99123c9 100644 --- a/Source/IGListKit/Internal/IGListUpdateTransactable.h +++ b/Source/IGListKit/Internal/IGListUpdateTransactable.h @@ -7,7 +7,11 @@ #import +#if !__has_include() +#import "IGListExperiments.h" +#else #import +#endif #import "IGListBatchUpdateState.h" #import "IGListUpdatingDelegate.h" diff --git a/Source/IGListKit/Internal/IGListUpdateTransactionBuilder.h b/Source/IGListKit/Internal/IGListUpdateTransactionBuilder.h index e92e98719..9f69603c0 100644 --- a/Source/IGListKit/Internal/IGListUpdateTransactionBuilder.h +++ b/Source/IGListKit/Internal/IGListUpdateTransactionBuilder.h @@ -7,8 +7,17 @@ #import +#if !__has_include() +#import "IGListMacros.h" +#else #import +#endif + +#if !__has_include() +#import "IGListUpdatingDelegate.h" +#else #import +#endif #import "IGListUpdateTransactable.h" diff --git a/Source/IGListKit/Internal/IGListWorkingRangeHandler.mm b/Source/IGListKit/Internal/IGListWorkingRangeHandler.mm index b6091c79d..a096fd470 100644 --- a/Source/IGListKit/Internal/IGListWorkingRangeHandler.mm +++ b/Source/IGListKit/Internal/IGListWorkingRangeHandler.mm @@ -10,9 +10,9 @@ #import #import -#import -#import -#import +#import "IGListAssert.h" +#import "IGListAdapter.h" +#import "IGListSectionController.h" struct _IGListWorkingRangeHandlerIndexPath { NSInteger section; diff --git a/Source/IGListKit/Internal/UICollectionView+DebugDescription.m b/Source/IGListKit/Internal/UICollectionView+DebugDescription.m index 7778a74ac..8e55b092e 100644 --- a/Source/IGListKit/Internal/UICollectionView+DebugDescription.m +++ b/Source/IGListKit/Internal/UICollectionView+DebugDescription.m @@ -7,7 +7,11 @@ #import "UICollectionView+DebugDescription.h" +#if !__has_include() +#import "IGListMacros.h" +#else #import +#endif @implementation UICollectionView (DebugDescription) diff --git a/Source/IGListKit/Internal/UICollectionView+IGListBatchUpdateData.m b/Source/IGListKit/Internal/UICollectionView+IGListBatchUpdateData.m index e88e3d6c4..f39adc3e9 100644 --- a/Source/IGListKit/Internal/UICollectionView+IGListBatchUpdateData.m +++ b/Source/IGListKit/Internal/UICollectionView+IGListBatchUpdateData.m @@ -7,7 +7,11 @@ #import "UICollectionView+IGListBatchUpdateData.h" +#if !__has_include() +#import "IGListBatchUpdateData.h" +#else #import +#endif @implementation UICollectionView (IGListBatchUpdateData) diff --git a/Source/IGListKit/Internal/UICollectionViewLayout+InteractiveReordering.h b/Source/IGListKit/Internal/UICollectionViewLayout+InteractiveReordering.h index 956729532..b5c96b8fc 100644 --- a/Source/IGListKit/Internal/UICollectionViewLayout+InteractiveReordering.h +++ b/Source/IGListKit/Internal/UICollectionViewLayout+InteractiveReordering.h @@ -7,7 +7,7 @@ #import -#import +#import "IGListAdapter.h" NS_ASSUME_NONNULL_BEGIN diff --git a/Source/IGListKit/Internal/UICollectionViewLayout+InteractiveReordering.m b/Source/IGListKit/Internal/UICollectionViewLayout+InteractiveReordering.m index 5a4f3e94e..383bb7bec 100644 --- a/Source/IGListKit/Internal/UICollectionViewLayout+InteractiveReordering.m +++ b/Source/IGListKit/Internal/UICollectionViewLayout+InteractiveReordering.m @@ -9,8 +9,8 @@ #import -#import -#import +#import "IGListAdapterInternal.h" +#import "IGListSectionController.h" @implementation UICollectionViewLayout (InteractiveReordering) diff --git a/Tests/IGListDiffSwiftTests.swift b/Tests/IGListDiffSwiftTests.swift index 8873a677d..6e45e5997 100644 --- a/Tests/IGListDiffSwiftTests.swift +++ b/Tests/IGListDiffSwiftTests.swift @@ -6,7 +6,7 @@ */ import XCTest -import IGListKit +import IGListDiffKit class SwiftClass: ListDiffable { diff --git a/scripts/generate_spm_sources_layout.sh b/scripts/generate_spm_sources_layout.sh new file mode 100755 index 000000000..905fe9dc3 --- /dev/null +++ b/scripts/generate_spm_sources_layout.sh @@ -0,0 +1,224 @@ +#!/bin/sh + +# Swift Package Manager [has some strict requirements](https://github.com/apple/swift-package-manager/blob/main/Documentation/Usage.md#creating-c-language-targets) to source files layout. +# We can gain SPM support with minimal project structure changes by applying an autogenerated layout based on symbolic links technics. +# SPM related files located under `spm` folder at project's root. +# You should **NEVER** modify it manually nor inlude to Xcode's project. + +# ### Generate SPM layout + +# 1. From **project's root** run: + +# `bash scripts/generate_spm_sources_layout.sh` + +# 2. Commit Changes + +# Repeate those steps each time you delete/add project's files. **Make sure** to have this CI step which will check that `generate_spm_sources_layout.sh` is not broken. + +set -e + +###IGListDiffKit +SPM_IG_LIST_DIFF_KIT_PUBLIC_HEADERS_PATH="spm/Sources/IGListDiffKit/include" +SPM_IG_LIST_DIFF_KIT_SOURCES_PATH="spm/Sources/IGListDiffKit" + +function generate_ig_list_diff_kit_spm_public_headers() { + echo "Generate symbolic links for all public headers. *.h" + echo "Generated under ${SPM_IG_LIST_DIFF_KIT_PUBLIC_HEADERS_PATH}" + + public_headers_list=$( + find "Source/IGListDiffKit" \ + -type f -name "*.[h]" \ + -not -path "spm/*" \ + -not -path "Source/IGListDiffKit/Internal/*" \ + -not -path "Examples/*" | sed "s| \([^/]\)|:\1|g" + ) + + SRC_ROOT=$(pwd) + cd $SPM_IG_LIST_DIFF_KIT_PUBLIC_HEADERS_PATH + for public_file in $public_headers_list; do + file_to_link=$(echo $public_file | sed "s|:| |g") + ln -s ../../../../$file_to_link + + done + + cd $SRC_ROOT + echo " Done" + echo "" +} + +function generate_ig_list_diff_kit_spm_private_headers() { + echo "Generate symbolic links for all private headers *.h" + echo "Generated under ${SPM_IG_LIST_DIFF_KIT_SOURCES_PATH}" + + private_headers_list=$( + find "Source/IGListDiffKit/Internal" \ + -type f -name "*.h" \ + -not -path "spm/*" | sed "s| \([^/]\)|:\1|g") + + SRC_ROOT=$(pwd) + cd $SPM_IG_LIST_DIFF_KIT_SOURCES_PATH + + for private_file in $private_headers_list; do + file_to_link=$(echo $private_file | sed "s|:| |g") + + ln -s ../../../$file_to_link + + done + + cd $SRC_ROOT + + echo " Done" + echo "" +} + +function generate_ig_list_diff_kit_spm_sources() { + echo "Generate symbolic links for all public implementtions. *.m & *.mm" + echo "Generated under ${SPM_IG_LIST_DIFF_KIT_SOURCES_PATH}" + + sources_list=$( + find "Source/IGListDiffKit" \ + -type f -name "*.[m]" -o -name "*.mm" \ + -not -path "spm/*" | sed "s| \([^/]\)|:\1|g") + + SRC_ROOT=$(pwd) + cd $SPM_IG_LIST_DIFF_KIT_SOURCES_PATH + + for source_file in $sources_list; do + file_to_link=$(echo $source_file | sed "s|:| |g") + + ln -s ../../../$file_to_link + + done + + cd $SRC_ROOT + + echo " Done" + echo "" +} + +function generate_ig_list_diff_kit() { + generate_ig_list_diff_kit_spm_public_headers + + generate_ig_list_diff_kit_spm_private_headers + + generate_ig_list_diff_kit_spm_sources +} + +#### IGListKit +SPM_IG_LIST_KIT_PUBLIC_HEADERS_PATH="spm/Sources/IGListKit/include" +SPM_IG_LIST_KIT_SOURCES_PATH="spm/Sources/IGListKit" + +function generate_ig_list_kit_spm_public_headers() { + echo "Generate symbolic links for all public headers. *.h" + echo "Generated under ${SPM_IG_LIST_KIT_PUBLIC_HEADERS_PATH}" + + public_headers_list=$( + find "Source/IGListKit" \ + \! -name "IGListBindingSingleSectionController.[hm]" \ + -name "*.[h]" \ + -type f -not -path "spm/*" \ + -not -path "Source/IGListKit/Internal/*" \ + -not -path "Examples/*" | sed "s| \([^/]\)|:\1|g" + ) + + SRC_ROOT=$(pwd) + cd $SPM_IG_LIST_KIT_PUBLIC_HEADERS_PATH + + for public_file in $public_headers_list; do + file_to_link=$(echo $public_file | sed "s|:| |g") + ln -s ../../../../$file_to_link + + done + + cd $SRC_ROOT + echo " Done" + echo "" +} + +function generate_ig_list_kit_spm_private_headers() { + echo "Generate symbolic links for all private headers/implementations *.h && *.m" + echo "Generated under ${SPM_IG_LIST_KIT_SOURCES_PATH}" + + shared_ig_diff_kit_sorces_list=$(find "Source/IGListDiffKit/Internal" \ + -name "*.[hm]" -o -name "*.mm" \ + -type f -not -path "spm/*" \ + -not -path "Examples/*" | sed "s| \([^/]\)|:\1|g") + + private_headers_list=$(find "Source/IGListKit/Internal" \ + -name "*.h" \ + -type f -not -path "spm/*" \ + -not -path "Examples/*" | sed "s| \([^/]\)|:\1|g") + + SRC_ROOT=$(pwd) + cd $SPM_IG_LIST_KIT_SOURCES_PATH + + for shared_file in $shared_ig_diff_kit_sorces_list; do + file_to_link=$(echo $shared_file | sed "s|:| |g") + ln -s ../../../$file_to_link + + done + + for private_file in $private_headers_list; do + file_to_link=$(echo $private_file | sed "s|:| |g") + + ln -s ../../../$file_to_link + + done + + cd $SRC_ROOT + + echo " Done" + echo "" +} + +function generate_ig_list_kit_spm_sources() { + echo "Generate symbolic links for all public implementtions. *.m" + echo "Generated under ${SPM_IG_LIST_KIT_SOURCES_PATH}" + + sources_list=$( + find "Source/IGListKit" \ + \! -name "IGListBindingSingleSectionController.[hm]" \ + -name "*.m" -o -name "*.mm" + -type f -not -path "spm/*" \ + -not -path "Examples/*" | sed "s| \([^/]\)|:\1|g") + + SRC_ROOT=$(pwd) + cd $SPM_IG_LIST_KIT_SOURCES_PATH + + for source_file in $sources_list; do + file_to_link=$(echo $source_file | sed "s|:| |g") + + ln -s ../../../$file_to_link + + done + + cd $SRC_ROOT + + echo " Done" + echo "" +} + +function generate_ig_list_kit() { + generate_ig_list_kit_spm_public_headers + + generate_ig_list_kit_spm_private_headers + + generate_ig_list_kit_spm_sources +} + +# Delete all symbolik links from `spm` folder +function cleanup() { + rm -rf $SPM_IG_LIST_DIFF_KIT_PUBLIC_HEADERS_PATH/*.* + rm -rf $SPM_IG_LIST_DIFF_KIT_SOURCES_PATH/*.* + #IGListKit + rm -rf $SPM_IG_LIST_KIT_PUBLIC_HEADERS_PATH/*.* + rm -rf $SPM_IG_LIST_KIT_SOURCES_PATH/*.* +} + +########## SPM generator pipeline ############# +#1 +cleanup +#2 +generate_ig_list_diff_kit +# #3 +generate_ig_list_kit diff --git a/spm/Sources/IGListDiffKit/IGListBatchUpdateData.mm b/spm/Sources/IGListDiffKit/IGListBatchUpdateData.mm new file mode 120000 index 000000000..efda9aea8 --- /dev/null +++ b/spm/Sources/IGListDiffKit/IGListBatchUpdateData.mm @@ -0,0 +1 @@ +../../../Source/IGListDiffKit/IGListBatchUpdateData.mm \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/IGListDiff.mm b/spm/Sources/IGListDiffKit/IGListDiff.mm new file mode 120000 index 000000000..1fdac4981 --- /dev/null +++ b/spm/Sources/IGListDiffKit/IGListDiff.mm @@ -0,0 +1 @@ +../../../Source/IGListDiffKit/IGListDiff.mm \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/IGListIndexPathResult.m b/spm/Sources/IGListDiffKit/IGListIndexPathResult.m new file mode 120000 index 000000000..47c5a05ca --- /dev/null +++ b/spm/Sources/IGListDiffKit/IGListIndexPathResult.m @@ -0,0 +1 @@ +../../../Source/IGListDiffKit/IGListIndexPathResult.m \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/IGListIndexPathResultInternal.h b/spm/Sources/IGListDiffKit/IGListIndexPathResultInternal.h new file mode 120000 index 000000000..27e9d2347 --- /dev/null +++ b/spm/Sources/IGListDiffKit/IGListIndexPathResultInternal.h @@ -0,0 +1 @@ +../../../Source/IGListDiffKit/Internal/IGListIndexPathResultInternal.h \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/IGListIndexSetResult.m b/spm/Sources/IGListDiffKit/IGListIndexSetResult.m new file mode 120000 index 000000000..c30ffe476 --- /dev/null +++ b/spm/Sources/IGListDiffKit/IGListIndexSetResult.m @@ -0,0 +1 @@ +../../../Source/IGListDiffKit/IGListIndexSetResult.m \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/IGListIndexSetResultInternal.h b/spm/Sources/IGListDiffKit/IGListIndexSetResultInternal.h new file mode 120000 index 000000000..4009306db --- /dev/null +++ b/spm/Sources/IGListDiffKit/IGListIndexSetResultInternal.h @@ -0,0 +1 @@ +../../../Source/IGListDiffKit/Internal/IGListIndexSetResultInternal.h \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/IGListMoveIndex.m b/spm/Sources/IGListDiffKit/IGListMoveIndex.m new file mode 120000 index 000000000..5957df4d0 --- /dev/null +++ b/spm/Sources/IGListDiffKit/IGListMoveIndex.m @@ -0,0 +1 @@ +../../../Source/IGListDiffKit/IGListMoveIndex.m \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/IGListMoveIndexInternal.h b/spm/Sources/IGListDiffKit/IGListMoveIndexInternal.h new file mode 120000 index 000000000..fb6edb014 --- /dev/null +++ b/spm/Sources/IGListDiffKit/IGListMoveIndexInternal.h @@ -0,0 +1 @@ +../../../Source/IGListDiffKit/Internal/IGListMoveIndexInternal.h \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/IGListMoveIndexPath.m b/spm/Sources/IGListDiffKit/IGListMoveIndexPath.m new file mode 120000 index 000000000..4cb29cd4e --- /dev/null +++ b/spm/Sources/IGListDiffKit/IGListMoveIndexPath.m @@ -0,0 +1 @@ +../../../Source/IGListDiffKit/IGListMoveIndexPath.m \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/IGListMoveIndexPathInternal.h b/spm/Sources/IGListDiffKit/IGListMoveIndexPathInternal.h new file mode 120000 index 000000000..a0974c240 --- /dev/null +++ b/spm/Sources/IGListDiffKit/IGListMoveIndexPathInternal.h @@ -0,0 +1 @@ +../../../Source/IGListDiffKit/Internal/IGListMoveIndexPathInternal.h \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/NSNumber+IGListDiffable.m b/spm/Sources/IGListDiffKit/NSNumber+IGListDiffable.m new file mode 120000 index 000000000..83b9e041c --- /dev/null +++ b/spm/Sources/IGListDiffKit/NSNumber+IGListDiffable.m @@ -0,0 +1 @@ +../../../Source/IGListDiffKit/NSNumber+IGListDiffable.m \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/NSString+IGListDiffable.m b/spm/Sources/IGListDiffKit/NSString+IGListDiffable.m new file mode 120000 index 000000000..442f8ee0f --- /dev/null +++ b/spm/Sources/IGListDiffKit/NSString+IGListDiffable.m @@ -0,0 +1 @@ +../../../Source/IGListDiffKit/NSString+IGListDiffable.m \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/include/IGListAssert.h b/spm/Sources/IGListDiffKit/include/IGListAssert.h new file mode 120000 index 000000000..957cd0726 --- /dev/null +++ b/spm/Sources/IGListDiffKit/include/IGListAssert.h @@ -0,0 +1 @@ +../../../../Source/IGListDiffKit/IGListAssert.h \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/include/IGListBatchUpdateData.h b/spm/Sources/IGListDiffKit/include/IGListBatchUpdateData.h new file mode 120000 index 000000000..15d139c0b --- /dev/null +++ b/spm/Sources/IGListDiffKit/include/IGListBatchUpdateData.h @@ -0,0 +1 @@ +../../../../Source/IGListDiffKit/IGListBatchUpdateData.h \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/include/IGListCompatibility.h b/spm/Sources/IGListDiffKit/include/IGListCompatibility.h new file mode 120000 index 000000000..804ca17ce --- /dev/null +++ b/spm/Sources/IGListDiffKit/include/IGListCompatibility.h @@ -0,0 +1 @@ +../../../../Source/IGListDiffKit/IGListCompatibility.h \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/include/IGListDiff.h b/spm/Sources/IGListDiffKit/include/IGListDiff.h new file mode 120000 index 000000000..83b57c2e8 --- /dev/null +++ b/spm/Sources/IGListDiffKit/include/IGListDiff.h @@ -0,0 +1 @@ +../../../../Source/IGListDiffKit/IGListDiff.h \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/include/IGListDiffKit.h b/spm/Sources/IGListDiffKit/include/IGListDiffKit.h new file mode 120000 index 000000000..2dd7de2a6 --- /dev/null +++ b/spm/Sources/IGListDiffKit/include/IGListDiffKit.h @@ -0,0 +1 @@ +../../../../Source/IGListDiffKit/IGListDiffKit.h \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/include/IGListDiffable.h b/spm/Sources/IGListDiffKit/include/IGListDiffable.h new file mode 120000 index 000000000..684d68173 --- /dev/null +++ b/spm/Sources/IGListDiffKit/include/IGListDiffable.h @@ -0,0 +1 @@ +../../../../Source/IGListDiffKit/IGListDiffable.h \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/include/IGListExperiments.h b/spm/Sources/IGListDiffKit/include/IGListExperiments.h new file mode 120000 index 000000000..6ec1c4222 --- /dev/null +++ b/spm/Sources/IGListDiffKit/include/IGListExperiments.h @@ -0,0 +1 @@ +../../../../Source/IGListDiffKit/IGListExperiments.h \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/include/IGListIndexPathResult.h b/spm/Sources/IGListDiffKit/include/IGListIndexPathResult.h new file mode 120000 index 000000000..a8ea3dc54 --- /dev/null +++ b/spm/Sources/IGListDiffKit/include/IGListIndexPathResult.h @@ -0,0 +1 @@ +../../../../Source/IGListDiffKit/IGListIndexPathResult.h \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/include/IGListIndexSetResult.h b/spm/Sources/IGListDiffKit/include/IGListIndexSetResult.h new file mode 120000 index 000000000..65574804f --- /dev/null +++ b/spm/Sources/IGListDiffKit/include/IGListIndexSetResult.h @@ -0,0 +1 @@ +../../../../Source/IGListDiffKit/IGListIndexSetResult.h \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/include/IGListMacros.h b/spm/Sources/IGListDiffKit/include/IGListMacros.h new file mode 120000 index 000000000..b34001ae5 --- /dev/null +++ b/spm/Sources/IGListDiffKit/include/IGListMacros.h @@ -0,0 +1 @@ +../../../../Source/IGListDiffKit/IGListMacros.h \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/include/IGListMoveIndex.h b/spm/Sources/IGListDiffKit/include/IGListMoveIndex.h new file mode 120000 index 000000000..c11a8fe25 --- /dev/null +++ b/spm/Sources/IGListDiffKit/include/IGListMoveIndex.h @@ -0,0 +1 @@ +../../../../Source/IGListDiffKit/IGListMoveIndex.h \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/include/IGListMoveIndexPath.h b/spm/Sources/IGListDiffKit/include/IGListMoveIndexPath.h new file mode 120000 index 000000000..6a71e35b0 --- /dev/null +++ b/spm/Sources/IGListDiffKit/include/IGListMoveIndexPath.h @@ -0,0 +1 @@ +../../../../Source/IGListDiffKit/IGListMoveIndexPath.h \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/include/NSNumber+IGListDiffable.h b/spm/Sources/IGListDiffKit/include/NSNumber+IGListDiffable.h new file mode 120000 index 000000000..73508726f --- /dev/null +++ b/spm/Sources/IGListDiffKit/include/NSNumber+IGListDiffable.h @@ -0,0 +1 @@ +../../../../Source/IGListDiffKit/NSNumber+IGListDiffable.h \ No newline at end of file diff --git a/spm/Sources/IGListDiffKit/include/NSString+IGListDiffable.h b/spm/Sources/IGListDiffKit/include/NSString+IGListDiffable.h new file mode 120000 index 000000000..b3f2fa9d0 --- /dev/null +++ b/spm/Sources/IGListDiffKit/include/NSString+IGListDiffable.h @@ -0,0 +1 @@ +../../../../Source/IGListDiffKit/NSString+IGListDiffable.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListAdapter+DebugDescription.h b/spm/Sources/IGListKit/IGListAdapter+DebugDescription.h new file mode 120000 index 000000000..820a9457d --- /dev/null +++ b/spm/Sources/IGListKit/IGListAdapter+DebugDescription.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListAdapter+DebugDescription.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListAdapter+DebugDescription.m b/spm/Sources/IGListKit/IGListAdapter+DebugDescription.m new file mode 120000 index 000000000..a7960a680 --- /dev/null +++ b/spm/Sources/IGListKit/IGListAdapter+DebugDescription.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListAdapter+DebugDescription.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListAdapter+UICollectionView.h b/spm/Sources/IGListKit/IGListAdapter+UICollectionView.h new file mode 120000 index 000000000..ce2f48e44 --- /dev/null +++ b/spm/Sources/IGListKit/IGListAdapter+UICollectionView.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListAdapter+UICollectionView.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListAdapter+UICollectionView.m b/spm/Sources/IGListKit/IGListAdapter+UICollectionView.m new file mode 120000 index 000000000..a99e1cc51 --- /dev/null +++ b/spm/Sources/IGListKit/IGListAdapter+UICollectionView.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListAdapter+UICollectionView.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListAdapter.m b/spm/Sources/IGListKit/IGListAdapter.m new file mode 120000 index 000000000..685070aac --- /dev/null +++ b/spm/Sources/IGListKit/IGListAdapter.m @@ -0,0 +1 @@ +../../../Source/IGListKit/IGListAdapter.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListAdapterInternal.h b/spm/Sources/IGListKit/IGListAdapterInternal.h new file mode 120000 index 000000000..1d604d1bc --- /dev/null +++ b/spm/Sources/IGListKit/IGListAdapterInternal.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListAdapterInternal.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListAdapterProxy.h b/spm/Sources/IGListKit/IGListAdapterProxy.h new file mode 120000 index 000000000..5565e2608 --- /dev/null +++ b/spm/Sources/IGListKit/IGListAdapterProxy.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListAdapterProxy.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListAdapterProxy.m b/spm/Sources/IGListKit/IGListAdapterProxy.m new file mode 120000 index 000000000..bde8b61b6 --- /dev/null +++ b/spm/Sources/IGListKit/IGListAdapterProxy.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListAdapterProxy.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListAdapterUpdater+DebugDescription.h b/spm/Sources/IGListKit/IGListAdapterUpdater+DebugDescription.h new file mode 120000 index 000000000..639de3f58 --- /dev/null +++ b/spm/Sources/IGListKit/IGListAdapterUpdater+DebugDescription.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListAdapterUpdater+DebugDescription.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListAdapterUpdater+DebugDescription.m b/spm/Sources/IGListKit/IGListAdapterUpdater+DebugDescription.m new file mode 120000 index 000000000..3ff3cfa53 --- /dev/null +++ b/spm/Sources/IGListKit/IGListAdapterUpdater+DebugDescription.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListAdapterUpdater+DebugDescription.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListAdapterUpdater.m b/spm/Sources/IGListKit/IGListAdapterUpdater.m new file mode 120000 index 000000000..6e2d82efe --- /dev/null +++ b/spm/Sources/IGListKit/IGListAdapterUpdater.m @@ -0,0 +1 @@ +../../../Source/IGListKit/IGListAdapterUpdater.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListAdapterUpdaterHelpers.h b/spm/Sources/IGListKit/IGListAdapterUpdaterHelpers.h new file mode 120000 index 000000000..a846af683 --- /dev/null +++ b/spm/Sources/IGListKit/IGListAdapterUpdaterHelpers.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListAdapterUpdaterHelpers.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListAdapterUpdaterHelpers.m b/spm/Sources/IGListKit/IGListAdapterUpdaterHelpers.m new file mode 120000 index 000000000..b7f450968 --- /dev/null +++ b/spm/Sources/IGListKit/IGListAdapterUpdaterHelpers.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListAdapterUpdaterHelpers.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListAdapterUpdaterInternal.h b/spm/Sources/IGListKit/IGListAdapterUpdaterInternal.h new file mode 120000 index 000000000..083d1ce52 --- /dev/null +++ b/spm/Sources/IGListKit/IGListAdapterUpdaterInternal.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListAdapterUpdaterInternal.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListArrayUtilsInternal.h b/spm/Sources/IGListKit/IGListArrayUtilsInternal.h new file mode 120000 index 000000000..671984853 --- /dev/null +++ b/spm/Sources/IGListKit/IGListArrayUtilsInternal.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListArrayUtilsInternal.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListBatchUpdateData+DebugDescription.h b/spm/Sources/IGListKit/IGListBatchUpdateData+DebugDescription.h new file mode 120000 index 000000000..0a011c3aa --- /dev/null +++ b/spm/Sources/IGListKit/IGListBatchUpdateData+DebugDescription.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListBatchUpdateData+DebugDescription.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListBatchUpdateData+DebugDescription.m b/spm/Sources/IGListKit/IGListBatchUpdateData+DebugDescription.m new file mode 120000 index 000000000..d9ab1ca82 --- /dev/null +++ b/spm/Sources/IGListKit/IGListBatchUpdateData+DebugDescription.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListBatchUpdateData+DebugDescription.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListBatchUpdateState.h b/spm/Sources/IGListKit/IGListBatchUpdateState.h new file mode 120000 index 000000000..c50ef2c5e --- /dev/null +++ b/spm/Sources/IGListKit/IGListBatchUpdateState.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListBatchUpdateState.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListBatchUpdateTransaction.h b/spm/Sources/IGListKit/IGListBatchUpdateTransaction.h new file mode 120000 index 000000000..f7e040251 --- /dev/null +++ b/spm/Sources/IGListKit/IGListBatchUpdateTransaction.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListBatchUpdateTransaction.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListBatchUpdateTransaction.m b/spm/Sources/IGListKit/IGListBatchUpdateTransaction.m new file mode 120000 index 000000000..b8c825447 --- /dev/null +++ b/spm/Sources/IGListKit/IGListBatchUpdateTransaction.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListBatchUpdateTransaction.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListBatchUpdates.h b/spm/Sources/IGListKit/IGListBatchUpdates.h new file mode 120000 index 000000000..34cbdacc8 --- /dev/null +++ b/spm/Sources/IGListKit/IGListBatchUpdates.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListBatchUpdates.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListBatchUpdates.m b/spm/Sources/IGListKit/IGListBatchUpdates.m new file mode 120000 index 000000000..daf704a6e --- /dev/null +++ b/spm/Sources/IGListKit/IGListBatchUpdates.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListBatchUpdates.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListBindingSectionController+DebugDescription.h b/spm/Sources/IGListKit/IGListBindingSectionController+DebugDescription.h new file mode 120000 index 000000000..659e90a3f --- /dev/null +++ b/spm/Sources/IGListKit/IGListBindingSectionController+DebugDescription.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListBindingSectionController+DebugDescription.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListBindingSectionController+DebugDescription.m b/spm/Sources/IGListKit/IGListBindingSectionController+DebugDescription.m new file mode 120000 index 000000000..daeab6b21 --- /dev/null +++ b/spm/Sources/IGListKit/IGListBindingSectionController+DebugDescription.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListBindingSectionController+DebugDescription.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListBindingSectionController.m b/spm/Sources/IGListKit/IGListBindingSectionController.m new file mode 120000 index 000000000..1df5a76e8 --- /dev/null +++ b/spm/Sources/IGListKit/IGListBindingSectionController.m @@ -0,0 +1 @@ +../../../Source/IGListKit/IGListBindingSectionController.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListCollectionView.m b/spm/Sources/IGListKit/IGListCollectionView.m new file mode 120000 index 000000000..c1ee64f2c --- /dev/null +++ b/spm/Sources/IGListKit/IGListCollectionView.m @@ -0,0 +1 @@ +../../../Source/IGListKit/IGListCollectionView.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListCollectionViewLayout.mm b/spm/Sources/IGListKit/IGListCollectionViewLayout.mm new file mode 120000 index 000000000..616fd7a46 --- /dev/null +++ b/spm/Sources/IGListKit/IGListCollectionViewLayout.mm @@ -0,0 +1 @@ +../../../Source/IGListKit/IGListCollectionViewLayout.mm \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListCollectionViewLayoutInternal.h b/spm/Sources/IGListKit/IGListCollectionViewLayoutInternal.h new file mode 120000 index 000000000..c06b9c3e4 --- /dev/null +++ b/spm/Sources/IGListKit/IGListCollectionViewLayoutInternal.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListCollectionViewLayoutInternal.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListDataSourceChangeTransaction.h b/spm/Sources/IGListKit/IGListDataSourceChangeTransaction.h new file mode 120000 index 000000000..f3413d600 --- /dev/null +++ b/spm/Sources/IGListKit/IGListDataSourceChangeTransaction.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListDataSourceChangeTransaction.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListDataSourceChangeTransaction.m b/spm/Sources/IGListKit/IGListDataSourceChangeTransaction.m new file mode 120000 index 000000000..e35765786 --- /dev/null +++ b/spm/Sources/IGListKit/IGListDataSourceChangeTransaction.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListDataSourceChangeTransaction.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListDebugger.h b/spm/Sources/IGListKit/IGListDebugger.h new file mode 120000 index 000000000..b26b7b8c5 --- /dev/null +++ b/spm/Sources/IGListKit/IGListDebugger.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListDebugger.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListDebugger.m b/spm/Sources/IGListKit/IGListDebugger.m new file mode 120000 index 000000000..60ca190b3 --- /dev/null +++ b/spm/Sources/IGListKit/IGListDebugger.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListDebugger.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListDebuggingUtilities.h b/spm/Sources/IGListKit/IGListDebuggingUtilities.h new file mode 120000 index 000000000..7df8e6822 --- /dev/null +++ b/spm/Sources/IGListKit/IGListDebuggingUtilities.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListDebuggingUtilities.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListDebuggingUtilities.m b/spm/Sources/IGListKit/IGListDebuggingUtilities.m new file mode 120000 index 000000000..23c4154fb --- /dev/null +++ b/spm/Sources/IGListKit/IGListDebuggingUtilities.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListDebuggingUtilities.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListDisplayHandler.h b/spm/Sources/IGListKit/IGListDisplayHandler.h new file mode 120000 index 000000000..0caef82c1 --- /dev/null +++ b/spm/Sources/IGListKit/IGListDisplayHandler.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListDisplayHandler.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListDisplayHandler.m b/spm/Sources/IGListKit/IGListDisplayHandler.m new file mode 120000 index 000000000..368440846 --- /dev/null +++ b/spm/Sources/IGListKit/IGListDisplayHandler.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListDisplayHandler.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListExperimentalAdapterUpdater+DebugDescription.h b/spm/Sources/IGListKit/IGListExperimentalAdapterUpdater+DebugDescription.h new file mode 120000 index 000000000..6a90829f5 --- /dev/null +++ b/spm/Sources/IGListKit/IGListExperimentalAdapterUpdater+DebugDescription.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListExperimentalAdapterUpdater+DebugDescription.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListGenericSectionController.m b/spm/Sources/IGListKit/IGListGenericSectionController.m new file mode 120000 index 000000000..08b3ef808 --- /dev/null +++ b/spm/Sources/IGListKit/IGListGenericSectionController.m @@ -0,0 +1 @@ +../../../Source/IGListKit/IGListGenericSectionController.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListIndexPathResultInternal.h b/spm/Sources/IGListKit/IGListIndexPathResultInternal.h new file mode 120000 index 000000000..27e9d2347 --- /dev/null +++ b/spm/Sources/IGListKit/IGListIndexPathResultInternal.h @@ -0,0 +1 @@ +../../../Source/IGListDiffKit/Internal/IGListIndexPathResultInternal.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListIndexSetResultInternal.h b/spm/Sources/IGListKit/IGListIndexSetResultInternal.h new file mode 120000 index 000000000..4009306db --- /dev/null +++ b/spm/Sources/IGListKit/IGListIndexSetResultInternal.h @@ -0,0 +1 @@ +../../../Source/IGListDiffKit/Internal/IGListIndexSetResultInternal.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListItemUpdatesCollector.h b/spm/Sources/IGListKit/IGListItemUpdatesCollector.h new file mode 120000 index 000000000..18ef3d20c --- /dev/null +++ b/spm/Sources/IGListKit/IGListItemUpdatesCollector.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListItemUpdatesCollector.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListItemUpdatesCollector.m b/spm/Sources/IGListKit/IGListItemUpdatesCollector.m new file mode 120000 index 000000000..abf75a979 --- /dev/null +++ b/spm/Sources/IGListKit/IGListItemUpdatesCollector.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListItemUpdatesCollector.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListMoveIndexInternal.h b/spm/Sources/IGListKit/IGListMoveIndexInternal.h new file mode 120000 index 000000000..fb6edb014 --- /dev/null +++ b/spm/Sources/IGListKit/IGListMoveIndexInternal.h @@ -0,0 +1 @@ +../../../Source/IGListDiffKit/Internal/IGListMoveIndexInternal.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListMoveIndexPathInternal.h b/spm/Sources/IGListKit/IGListMoveIndexPathInternal.h new file mode 120000 index 000000000..a0974c240 --- /dev/null +++ b/spm/Sources/IGListKit/IGListMoveIndexPathInternal.h @@ -0,0 +1 @@ +../../../Source/IGListDiffKit/Internal/IGListMoveIndexPathInternal.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListReloadDataUpdater.m b/spm/Sources/IGListKit/IGListReloadDataUpdater.m new file mode 120000 index 000000000..da3fedd7b --- /dev/null +++ b/spm/Sources/IGListKit/IGListReloadDataUpdater.m @@ -0,0 +1 @@ +../../../Source/IGListKit/IGListReloadDataUpdater.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListReloadIndexPath.h b/spm/Sources/IGListKit/IGListReloadIndexPath.h new file mode 120000 index 000000000..cd3a5088e --- /dev/null +++ b/spm/Sources/IGListKit/IGListReloadIndexPath.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListReloadIndexPath.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListReloadIndexPath.m b/spm/Sources/IGListKit/IGListReloadIndexPath.m new file mode 120000 index 000000000..fdc905d7e --- /dev/null +++ b/spm/Sources/IGListKit/IGListReloadIndexPath.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListReloadIndexPath.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListReloadTransaction.h b/spm/Sources/IGListKit/IGListReloadTransaction.h new file mode 120000 index 000000000..d847df4b9 --- /dev/null +++ b/spm/Sources/IGListKit/IGListReloadTransaction.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListReloadTransaction.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListReloadTransaction.m b/spm/Sources/IGListKit/IGListReloadTransaction.m new file mode 120000 index 000000000..a2149fb2c --- /dev/null +++ b/spm/Sources/IGListKit/IGListReloadTransaction.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListReloadTransaction.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListSectionController.m b/spm/Sources/IGListKit/IGListSectionController.m new file mode 120000 index 000000000..e3cd96337 --- /dev/null +++ b/spm/Sources/IGListKit/IGListSectionController.m @@ -0,0 +1 @@ +../../../Source/IGListKit/IGListSectionController.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListSectionControllerInternal.h b/spm/Sources/IGListKit/IGListSectionControllerInternal.h new file mode 120000 index 000000000..48fb9187d --- /dev/null +++ b/spm/Sources/IGListKit/IGListSectionControllerInternal.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListSectionControllerInternal.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListSectionMap+DebugDescription.h b/spm/Sources/IGListKit/IGListSectionMap+DebugDescription.h new file mode 120000 index 000000000..983fa1ff8 --- /dev/null +++ b/spm/Sources/IGListKit/IGListSectionMap+DebugDescription.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListSectionMap+DebugDescription.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListSectionMap+DebugDescription.m b/spm/Sources/IGListKit/IGListSectionMap+DebugDescription.m new file mode 120000 index 000000000..9455e7a3b --- /dev/null +++ b/spm/Sources/IGListKit/IGListSectionMap+DebugDescription.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListSectionMap+DebugDescription.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListSectionMap.h b/spm/Sources/IGListKit/IGListSectionMap.h new file mode 120000 index 000000000..8ba3a4d33 --- /dev/null +++ b/spm/Sources/IGListKit/IGListSectionMap.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListSectionMap.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListSectionMap.m b/spm/Sources/IGListKit/IGListSectionMap.m new file mode 120000 index 000000000..0e38e6a24 --- /dev/null +++ b/spm/Sources/IGListKit/IGListSectionMap.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListSectionMap.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListSingleSectionController.m b/spm/Sources/IGListKit/IGListSingleSectionController.m new file mode 120000 index 000000000..d33318fcc --- /dev/null +++ b/spm/Sources/IGListKit/IGListSingleSectionController.m @@ -0,0 +1 @@ +../../../Source/IGListKit/IGListSingleSectionController.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListTransitionData.m b/spm/Sources/IGListKit/IGListTransitionData.m new file mode 120000 index 000000000..3e65e1e9b --- /dev/null +++ b/spm/Sources/IGListKit/IGListTransitionData.m @@ -0,0 +1 @@ +../../../Source/IGListKit/IGListTransitionData.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListUpdateTransactable.h b/spm/Sources/IGListKit/IGListUpdateTransactable.h new file mode 120000 index 000000000..b1ae791d5 --- /dev/null +++ b/spm/Sources/IGListKit/IGListUpdateTransactable.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListUpdateTransactable.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListUpdateTransactionBuilder.h b/spm/Sources/IGListKit/IGListUpdateTransactionBuilder.h new file mode 120000 index 000000000..5d0240856 --- /dev/null +++ b/spm/Sources/IGListKit/IGListUpdateTransactionBuilder.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListUpdateTransactionBuilder.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListUpdateTransactionBuilder.m b/spm/Sources/IGListKit/IGListUpdateTransactionBuilder.m new file mode 120000 index 000000000..b60ef7136 --- /dev/null +++ b/spm/Sources/IGListKit/IGListUpdateTransactionBuilder.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListUpdateTransactionBuilder.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListWorkingRangeHandler.h b/spm/Sources/IGListKit/IGListWorkingRangeHandler.h new file mode 120000 index 000000000..e94723e95 --- /dev/null +++ b/spm/Sources/IGListKit/IGListWorkingRangeHandler.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListWorkingRangeHandler.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/IGListWorkingRangeHandler.mm b/spm/Sources/IGListKit/IGListWorkingRangeHandler.mm new file mode 120000 index 000000000..d7fde5422 --- /dev/null +++ b/spm/Sources/IGListKit/IGListWorkingRangeHandler.mm @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/IGListWorkingRangeHandler.mm \ No newline at end of file diff --git a/spm/Sources/IGListKit/UICollectionView+DebugDescription.h b/spm/Sources/IGListKit/UICollectionView+DebugDescription.h new file mode 120000 index 000000000..4e6f87611 --- /dev/null +++ b/spm/Sources/IGListKit/UICollectionView+DebugDescription.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/UICollectionView+DebugDescription.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/UICollectionView+DebugDescription.m b/spm/Sources/IGListKit/UICollectionView+DebugDescription.m new file mode 120000 index 000000000..c4eb51d33 --- /dev/null +++ b/spm/Sources/IGListKit/UICollectionView+DebugDescription.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/UICollectionView+DebugDescription.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/UICollectionView+IGListBatchUpdateData.h b/spm/Sources/IGListKit/UICollectionView+IGListBatchUpdateData.h new file mode 120000 index 000000000..b5fb3fcdb --- /dev/null +++ b/spm/Sources/IGListKit/UICollectionView+IGListBatchUpdateData.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/UICollectionView+IGListBatchUpdateData.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/UICollectionView+IGListBatchUpdateData.m b/spm/Sources/IGListKit/UICollectionView+IGListBatchUpdateData.m new file mode 120000 index 000000000..c220d2753 --- /dev/null +++ b/spm/Sources/IGListKit/UICollectionView+IGListBatchUpdateData.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/UICollectionView+IGListBatchUpdateData.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/UICollectionViewLayout+InteractiveReordering.h b/spm/Sources/IGListKit/UICollectionViewLayout+InteractiveReordering.h new file mode 120000 index 000000000..527066ff5 --- /dev/null +++ b/spm/Sources/IGListKit/UICollectionViewLayout+InteractiveReordering.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/UICollectionViewLayout+InteractiveReordering.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/UICollectionViewLayout+InteractiveReordering.m b/spm/Sources/IGListKit/UICollectionViewLayout+InteractiveReordering.m new file mode 120000 index 000000000..1901bd72c --- /dev/null +++ b/spm/Sources/IGListKit/UICollectionViewLayout+InteractiveReordering.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/UICollectionViewLayout+InteractiveReordering.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/UIScrollView+IGListKit.h b/spm/Sources/IGListKit/UIScrollView+IGListKit.h new file mode 120000 index 000000000..a0fdce9f0 --- /dev/null +++ b/spm/Sources/IGListKit/UIScrollView+IGListKit.h @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/UIScrollView+IGListKit.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/UIScrollView+IGListKit.m b/spm/Sources/IGListKit/UIScrollView+IGListKit.m new file mode 120000 index 000000000..839755c86 --- /dev/null +++ b/spm/Sources/IGListKit/UIScrollView+IGListKit.m @@ -0,0 +1 @@ +../../../Source/IGListKit/Internal/UIScrollView+IGListKit.m \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListAdapter.h b/spm/Sources/IGListKit/include/IGListAdapter.h new file mode 120000 index 000000000..79e2f76c5 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListAdapter.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListAdapter.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListAdapterDataSource.h b/spm/Sources/IGListKit/include/IGListAdapterDataSource.h new file mode 120000 index 000000000..1d74d944d --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListAdapterDataSource.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListAdapterDataSource.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListAdapterDelegate.h b/spm/Sources/IGListKit/include/IGListAdapterDelegate.h new file mode 120000 index 000000000..bab9dfd2b --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListAdapterDelegate.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListAdapterDelegate.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListAdapterMoveDelegate.h b/spm/Sources/IGListKit/include/IGListAdapterMoveDelegate.h new file mode 120000 index 000000000..b08e7a643 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListAdapterMoveDelegate.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListAdapterMoveDelegate.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListAdapterPerformanceDelegate.h b/spm/Sources/IGListKit/include/IGListAdapterPerformanceDelegate.h new file mode 120000 index 000000000..73a47e08b --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListAdapterPerformanceDelegate.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListAdapterPerformanceDelegate.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListAdapterUpdateListener.h b/spm/Sources/IGListKit/include/IGListAdapterUpdateListener.h new file mode 120000 index 000000000..e2095f937 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListAdapterUpdateListener.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListAdapterUpdateListener.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListAdapterUpdater.h b/spm/Sources/IGListKit/include/IGListAdapterUpdater.h new file mode 120000 index 000000000..06d3d5ada --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListAdapterUpdater.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListAdapterUpdater.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListAdapterUpdaterCompatible.h b/spm/Sources/IGListKit/include/IGListAdapterUpdaterCompatible.h new file mode 120000 index 000000000..a3c5a50f8 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListAdapterUpdaterCompatible.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListAdapterUpdaterCompatible.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListAdapterUpdaterDelegate.h b/spm/Sources/IGListKit/include/IGListAdapterUpdaterDelegate.h new file mode 120000 index 000000000..b01ace9a8 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListAdapterUpdaterDelegate.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListAdapterUpdaterDelegate.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListBatchContext.h b/spm/Sources/IGListKit/include/IGListBatchContext.h new file mode 120000 index 000000000..1126517df --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListBatchContext.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListBatchContext.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListBindable.h b/spm/Sources/IGListKit/include/IGListBindable.h new file mode 120000 index 000000000..9da436d49 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListBindable.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListBindable.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListBindingSectionController.h b/spm/Sources/IGListKit/include/IGListBindingSectionController.h new file mode 120000 index 000000000..24092ac36 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListBindingSectionController.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListBindingSectionController.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListBindingSectionControllerDataSource.h b/spm/Sources/IGListKit/include/IGListBindingSectionControllerDataSource.h new file mode 120000 index 000000000..bdd7a0cea --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListBindingSectionControllerDataSource.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListBindingSectionControllerDataSource.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListBindingSectionControllerSelectionDelegate.h b/spm/Sources/IGListKit/include/IGListBindingSectionControllerSelectionDelegate.h new file mode 120000 index 000000000..dc50dfb67 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListBindingSectionControllerSelectionDelegate.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListBindingSectionControllerSelectionDelegate.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListCollectionContext.h b/spm/Sources/IGListKit/include/IGListCollectionContext.h new file mode 120000 index 000000000..90f0302d8 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListCollectionContext.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListCollectionContext.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListCollectionScrollingTraits.h b/spm/Sources/IGListKit/include/IGListCollectionScrollingTraits.h new file mode 120000 index 000000000..bf1faa9b2 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListCollectionScrollingTraits.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListCollectionScrollingTraits.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListCollectionView.h b/spm/Sources/IGListKit/include/IGListCollectionView.h new file mode 120000 index 000000000..5f6572cb0 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListCollectionView.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListCollectionView.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListCollectionViewDelegateLayout.h b/spm/Sources/IGListKit/include/IGListCollectionViewDelegateLayout.h new file mode 120000 index 000000000..573439280 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListCollectionViewDelegateLayout.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListCollectionViewDelegateLayout.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListCollectionViewLayout.h b/spm/Sources/IGListKit/include/IGListCollectionViewLayout.h new file mode 120000 index 000000000..644aaa2d1 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListCollectionViewLayout.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListCollectionViewLayout.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListCollectionViewLayoutCompatible.h b/spm/Sources/IGListKit/include/IGListCollectionViewLayoutCompatible.h new file mode 120000 index 000000000..b2aea4396 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListCollectionViewLayoutCompatible.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListCollectionViewLayoutCompatible.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListDisplayDelegate.h b/spm/Sources/IGListKit/include/IGListDisplayDelegate.h new file mode 120000 index 000000000..7b2d38787 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListDisplayDelegate.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListDisplayDelegate.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListGenericSectionController.h b/spm/Sources/IGListKit/include/IGListGenericSectionController.h new file mode 120000 index 000000000..d8116b773 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListGenericSectionController.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListGenericSectionController.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListKit.h b/spm/Sources/IGListKit/include/IGListKit.h new file mode 120000 index 000000000..57353f310 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListKit.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListKit.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListReloadDataUpdater.h b/spm/Sources/IGListKit/include/IGListReloadDataUpdater.h new file mode 120000 index 000000000..4758a62c8 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListReloadDataUpdater.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListReloadDataUpdater.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListScrollDelegate.h b/spm/Sources/IGListKit/include/IGListScrollDelegate.h new file mode 120000 index 000000000..6aa80369a --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListScrollDelegate.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListScrollDelegate.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListSectionController.h b/spm/Sources/IGListKit/include/IGListSectionController.h new file mode 120000 index 000000000..99e2073ad --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListSectionController.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListSectionController.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListSingleSectionController.h b/spm/Sources/IGListKit/include/IGListSingleSectionController.h new file mode 120000 index 000000000..34b97f74e --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListSingleSectionController.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListSingleSectionController.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListSupplementaryViewSource.h b/spm/Sources/IGListKit/include/IGListSupplementaryViewSource.h new file mode 120000 index 000000000..3bc9aa8af --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListSupplementaryViewSource.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListSupplementaryViewSource.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListTransitionData.h b/spm/Sources/IGListKit/include/IGListTransitionData.h new file mode 120000 index 000000000..55174f2f5 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListTransitionData.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListTransitionData.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListTransitionDelegate.h b/spm/Sources/IGListKit/include/IGListTransitionDelegate.h new file mode 120000 index 000000000..8c9577e00 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListTransitionDelegate.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListTransitionDelegate.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListUpdatingDelegate.h b/spm/Sources/IGListKit/include/IGListUpdatingDelegate.h new file mode 120000 index 000000000..6eadb1d3a --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListUpdatingDelegate.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListUpdatingDelegate.h \ No newline at end of file diff --git a/spm/Sources/IGListKit/include/IGListWorkingRangeDelegate.h b/spm/Sources/IGListKit/include/IGListWorkingRangeDelegate.h new file mode 120000 index 000000000..3f2e9eb07 --- /dev/null +++ b/spm/Sources/IGListKit/include/IGListWorkingRangeDelegate.h @@ -0,0 +1 @@ +../../../../Source/IGListKit/IGListWorkingRangeDelegate.h \ No newline at end of file