project(Photos)

set(DYLIB_COMPAT_VERSION "1.0.0")
set(DYLIB_CURRENT_VERSION "161.0.120")
set(FRAMEWORK_VERSION "A")

remove_sdk_framework(Photos
)

generate_sdk_framework(Photos
    VERSION ${FRAMEWORK_VERSION}
    HEADER "include/Photos"
)

add_framework(Photos
    FAT
    CURRENT_VERSION
    VERSION ${FRAMEWORK_VERSION}

    SOURCES
        src/Photos.m
        src/PHImportDuplicateInfo.m
        src/PHImportDuplicateChecker.m
        src/PHCompositeMediaResult.m
        src/PHPhotosHighlightChangeRequest.m
        src/PHSafeNSCacheDelegateReflector.m
        src/PHAlbum.m
        src/PHCollectionDeleteRequest.m
        src/PHSmartAlbumChangeRequest.m
        src/PHImageCache.m
        src/PHSmartAlbum.m
        src/PHProject.m
        src/PHFaceGroup.m
        src/PHVideoResult.m
        src/PHFaceGroupDeleteRequest.m
        src/PHSingleMediaRequestContext.m
        src/PHPersonSuggestion.m
        src/PHMomentList.m
        src/PHChangeValidationController.m
        src/PHAssetExportRequestOptions.m
        src/PHAssetExportRequest.m
        src/_PHAnimatedImageLoadOperation.m
        src/PHAnimatedImage.m
        src/PHAnimatedImageRequestOptions.m
        src/PHImageRequest.m
        src/PHImportController.m
        src/PHMediaResourceResult.m
        src/PHImportAvchdAsset.m
        src/PHVisionAnalysisUtilities.m
        src/PHFaceprint.m
        src/PHAssetCollection.m
        src/PHInternalAssetExportRequest.m
        src/PHMediaRequestContext.m
        src/PHAssetDeleteRequest.m
        src/PHImageCacheEntry.m
        src/PHObjectChangeDetails.m
        src/PHVideoRequest.m
        src/PHPerformChangesRequest.m
        src/PHImportRecord.m
        src/PHRecyclableObjectVendor.m
        src/PHPersonPLAdapter.m
        src/PHKeywordChangeRequest.m
        src/PHImportAssetFilePresenter.m
        src/PHImportAsset.m
        src/PHAssetCreationRequestPlaceholderSupport.m
        src/PHAssetCreationRequestPlaceholderSupportNotificationManager.m
        src/PHAssetCreationRequestPlaceholderSupportCrashRecovery.m
        src/PHObjectDeleteRequest.m
        src/PHEntityKeyMap.m
        src/PHImageIODecoder.m
        src/PHSuggestionMessageMatchingResult.m
        src/PHCollectionList.m
        src/PHFaceGroupChangeRequest.m
        src/PHAdjustmentDataRequestContext.m
        src/PHChangeRequestHelper.m
        src/PHRelationshipChangeRequestHelper.m
        src/PHAssetPLAdapter.m
        src/PHImageDecoderAsyncDecodeRequestHandle.m
        src/PHImageDecoder.m
        src/PHCachingImageManager.m
        src/PHImageDisplaySpec.m
        src/PHCloudSharedPhoto.m
        src/PHCollectionListChangeRequest.m
        src/PHPhotosHighlight.m
        src/PHPersistentChangeToken.m
        src/PHPersistentChangeFetchResult.m
        src/PHImportSession.m
        src/PHMemoryFeature.m
        src/PHMemoryFeatureEncoder.m
        src/PHMemoryFeatureDecoder.m
        src/PHResourceDownloadRequestOptions.m
        src/PHResourceDownloadRequest.m
        src/PHMemoryGenerationOptions.m
        src/PHMemory.m
        src/PHMoment.m
        src/PHMemoryChangeRequest.m
        src/PHChange.m
        src/PHQueryChangeDetectionCriteria.m
        src/PHAssetCreationPhotoStreamPublishingRequest.m
        src/PHAssetResourceCreationOptions.m
        src/PHAssetCreationAdjustmentBakeInOptions.m
        src/PHAssetCreationMetadataCopyOptions.m
        src/PHAssetCreationOptions.m
        src/PHAssetCreationRequest.m
        src/_PHAssetCreationRequestValidator.m
        src/PHImportUrlSource.m
        src/PHResourceRepairRequest.m
        src/PHImportExceptionRecorder.m
        src/PHThumbnailAsset.m
        src/PHFetchOptions.m
        src/PHTrashableObjectDeleteRequest.m
        src/PHLivePhotoRequestContext.m
        src/PHMomentChangeRequest.m
        src/PHFaceGroupPLAdapter.m
        src/PHFaceCropChangeRequest.m
        src/PHAssetResourceWriteRequest.m
        src/PHResourceAvailabilityDataStoreManager.m
        src/PHImageResult.m
        src/PHAssetChangeRequest.m
        src/PHContentEditingInputRequestOptions.m
        src/PHAssetResource.m
        src/PHProjectChangeRequest.m
        src/PHImageRequestColorSpace.m
        src/PHImageRequestUniformTypeIdentifier.m
        src/PHImageRequestResource.m
        src/PHPhotoLibrary.m
        src/PHSceneClassification.m
        src/PHAsset.m
        src/PHAssetPropertySet.m
        src/PHAssetOriginalMetadataProperties.m
        src/PHAssetGridMetadataProperties.m
        src/PHAssetPhotosOneUpProperties.m
        src/PHAssetLocalDateProperties.m
        src/PHAssetPhotosInfoPanelExtendedProperties.m
        src/PHAssetPhotosInfoPanelLocationProperties.m
        src/PHAssetDescriptionProperties.m
        src/PHAssetPhotoCommentProperties.m
        src/PHAssetAnalysisStateProperties.m
        src/PHAssetSceneAnalysisProperties.m
        src/PHAssetUserActivityProperties.m
        src/PHAssetPhotoIrisProperties.m
        src/PHAssetAdjustmentProperties.m
        src/PHAssetCurationProperties.m
        src/PHAssetAestheticProperties.m
        src/PHAssetMediaAnalysisProperties.m
        src/PHAssetImportProperties.m
        src/PHAssetSceneprintProperties.m
        src/PHAssetDestinationAssetCopyProperties.m
        src/PHAssetKeywordProperties.m
        src/PHLocallyAvailableResourceBag.m
        src/PHCloudInvitation.m
        src/PHAdjustmentData.m
        src/PHTextFeature.m
        src/PHTextFeatureEncoder.m
        src/PHTextFeatureDecoder.m
        src/PHFaceChangeRequest.m
        src/PHImportDeviceAsset.m
        src/PHPersonChangeRequest.m
        src/PHSuggestionMessageContext.m
        src/PHVideoRequestContext.m
        src/PHImportBatch.m
        src/PHImporter.m
        src/PHAssetCollectionChangeRequest.m
        src/PHImportDeleteJob.m
        src/ICCameraDeviceRemovedItemsCoalescer.m
        src/PHImportDeviceSource.m
        src/PHResourceAvailabilityJob.m
        src/PHPerson.m
        src/PHFaceDeleteRequest.m
        src/PHExternalAssetResource.m
        src/PHResourceChooserList.m
        src/PHLivePhoto.m
        src/PHLivePhotoCreationOperation.m
        src/PHVideoChoosingAndAvailabilityRequest.m
        src/PHRelatedCollection.m
        src/PHRelatedFetchOptions.m
        src/PHChangeBuilder.m
        src/PHLibraryChangeRequest.m
        src/PHQuestionDeleteRequest.m
        src/PHMomentShareDeleteRequest.m
        src/PHSandboxExtensionWrapper.m
        src/PHCloudIdentifier.m
        src/PHFace.m
        src/PHFacePropertySet.m
        src/PHFaceClusteringProperties.m
        src/PHPersonResetOperation.m
        src/PHPersonResetManager.m
        src/PHMomentShareParticipantChangeRequest.m
        src/PHSuggestionDeleteRequest.m
        src/PHQuestionChangeRequest.m
        src/PHPersistentChangeFetchRequest.m
        src/PHImageRequestContext.m
        src/PHObjectDeleteValidator.m
        src/PHMediaRequest.m
        src/PHObject.m
        src/PHObjectPlaceholder.m
        src/PHMemoryPresentationHints.m
        src/PHObjectReference.m
        src/PHAssetReference.m
        src/PHCollectionReference.m
        src/PHAssetCollectionReference.m
        src/PHCollectionListReference.m
        src/PHPersonReference.m
        src/PHImageManagerRequestTracer.m
        src/PHMomentShareChangeRequest.m
        src/PHMomentShareParticipant.m
        src/PHQuery.m
        src/PHPhotoRepresentation.m
        src/PHCloudSharedAssetExportRequest.m
        src/PHContentEditingOutput.m
        src/PHContentEditingOutputRequestOptions.m
        src/PHSuggestionChangeRequest.m
        src/PHImageResourceChooser.m
        src/PHQueryPersonContext.m
        src/PHAssetResourceRequestOptions.m
        src/PHAssetResourceManager.m
        src/PHContentEditingInputRequestContext.m
        src/PHContentEditingInput.m
        src/PHImportTimerCollection.m
        src/PHImportTimer.m
        src/PHSuggestion.m
        src/PHLivePhotoResult.m
        src/PHObjectPLAdapter.m
        src/DurationGroup.m
        src/PHImportResults.m
        src/PHImportOptions.m
        src/PHMomentSharePreview.m
        src/PHPhotosHighlightDeleteRequest.m
        src/PHPhotoLibraryAppPrivateData.m
        src/PHAssetResourceQualityClass.m
        src/PHVideoRequestBehaviorSpec.m
        src/PHMemoryDeleteRequest.m
        src/PHImportAssetDataRequest.m
        src/PHImportAssetDataResponse.m
        src/PHImportSource.m
        src/PHCollection.m
        src/PHCollectionListAncestryContext.m
        src/PHResourceAvailabilityRequest.m
        src/PHFacePLAdapter.m
        src/PHAvailabilityRequest.m
        src/PHAssetResourceRequest.m
        src/PHMomentShare.m
        src/PHValidator.m
        src/_PHValidation.m
        src/PHAdjustmentDataResult.m
        src/PHBatchFetchingArray.m
        src/PHMomentShareParticipantDeleteRequest.m
        src/PHPreviewImageRequest.m
        src/PHPlaceholderImageHelper.m
        src/PHKeyword.m
        src/PHContentEditingInputResult.m
        src/PHResourceAvailabilityChangeRequest.m
        src/PHFaceCrop.m
        src/PHAssetResourceValidatedContext.m
        src/_PHPhotoLibraryValidator.m
        src/PHAssetResourceBag.m
        src/PHFetchResultChangeDetails.m
        src/PHConcurrentMapTable.m
        src/PHImageRequestBehaviorSpec.m
        src/PHKeywordDeleteRequest.m
        src/PHAssetComment.m
        src/PHLivePhotoEditingContext.m
        src/PHPhotoMaster.m
        src/PHFigDecoder.m
        src/PHImportException.m
        src/PHChangeRequest.m
        src/PHCloudSharedAlbum.m
        src/PHPersonDeleteRequest.m
        src/PHImageRequestOptions.m
        src/PHLivePhotoRequestOptions.m
        src/PHVideoRequestOptions.m
        src/PHImageManager.m
        src/PHLivePhotoExportSession.m
        src/PHLivePhotoExportSessionOptions.m
        src/PHAdjustmentDataRequestBehaviorSpec.m
        src/PHAdjustmentDataRequest.m
        src/_PHFetchRequestWrapper.m
        src/PHFetchResult.m
        src/PHManualFetchResult.m
        src/PHUnauthorizedFetchResult.m
        src/PHMediaResourceRequest.m
        src/PHFaceCropDeleteRequest.m
        src/PHQuestion.m

    DEPENDENCIES
        system
        objc
        Foundation
)
