project(EventKit)

remove_sdk_framework(EventKit)

set(DYLIB_COMPAT_VERSION "1.0.0")
set(DYLIB_CURRENT_VERSION "809.4.2")

set(FRAMEWORK_VERSION "A")

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

add_framework(EventKit
    FAT
    CURRENT_VERSION
    VERSION ${FRAMEWORK_VERSION}

    SOURCES
        src/EventKit.m
        src/EKEventOccurrenceProtocol_Shared.m
        src/EKAvailabilitySpan.m
        src/EKAvailabilityCache.m
        src/EKUndoManager.m
        src/EKFrozenCalendarResourceChangeNotification.m
        src/EKEWSItemIDPredicate.m
        src/EKSerializableRecurrenceRule.m
        src/EKCalendarItem.m
        src/EKEventRangePredicate.m
        src/EKChangeSet.m
        src/EKUncompleteRecurringReminderOperation.m
        src/EKFrozenCalendarSharedCalendarNotification.m
        src/EKParticipantForSorting.m
        src/EKFrozenParticipant.m
        src/EKSyntheticGEORouteHypothesis.m
        src/EKEditingContextGroup.m
        src/EKRecurrenceSet.m
        src/EKContactEventRangePredicate.m
        src/EKChangeListener.m
        src/EKCalendarEventInvitationNotification.m
        src/EKReminder.m
        src/EKSerializableAlarm.m
        src/EKEventStore.m
        src/EKConflictDetails.m
        src/EKTempEventStoreFactory.m
        src/EKBackingStore.m
        src/EKRecents.m
        src/EKCalendarStoreBackingStore.m
        src/EKManagedObjectContext.m
        src/EKCoreDataFaultDelegate.m
        src/EKCalendar.m
        src/EKChangeTracker.m
        src/EKRelationChange.m
        src/EKChangeLog.m
        src/EKAttachment.m
        src/EKSecureKeyedArchiverSerializer.m
        src/EKObject.m
        src/EKFrozenCalendar.m
        src/EKFrozenCalendarItem.m
        src/EKFrozenCalendarEventInvitationNotification.m
        src/EKEventOccurrenceCache.m
        src/EKFrozenCalendarNotification.m
        src/EKSerializableObject.m
        src/EKCalendarProposeNewTimeNotification.m
        src/EKFrozenReminder.m
        src/EKFeatureSet.m
        src/EKRevertOperation.m
        src/EKFrozenObject.m
        src/EKAlarm.m
        src/EKFrozenCalendarInviteReplyNotification.m
        src/EKUnsliceOperation.m
        src/EKFrozenAlarm.m
        src/EKTravelEngineHypothesis.m
        src/EKObjectPersistentChangesModel.m
        src/EKPersistentHistoryTransactionChangeSummaryModel.m
        src/EKPersistentHistoryTransactionChangeSummary.m
        src/EKSource.m
        src/EKUndoableOperation.m
        src/EKSeriesDetails.m
        src/EKSliceDescription.m
        src/EKPostSliceDescription.m
        src/EKUndoSliceOutcome.m
        src/EKTravelEngineUtilities.m
        src/EKCalendarSharedCalendarNotification.m
        src/EKDataProtectionObserver.m
        src/EKSuggestedEventInfo.m
        src/EKUnrevertOperation.m
        src/EKEditingContext.m
        src/EKUndeleteFutureOperation.m
        src/EKAvailabilityUtilities.m
        src/EKTimedEventStorePurger.m
        src/EKParticipantToContactMatcher.m
        src/EKSerializableEvent.m
        src/EKObjectChangeSummarizer.m
        src/EKConferenceURLDetector.m
        src/EKRecurrenceIdentifier.m
        src/EKCalendarInviteReplyNotification.m
        src/EKFrozenOrganizer.m
        src/EKOccurrenceProtocol_Shared.m
        src/EKFrozenAttachment.m
        src/EKFrozenCalendarSource.m
        src/EKReadWriteLock.m
        src/EKLiveEditingStore.m
        src/EKCalendarPreferences.m
        src/EKPredicate.m
        src/EKDeleteOperation.m
        src/EKCalendarSuggestionNotification.m
        src/EKInviteeAlternativeTimeSearcher.m
        src/EKJunkInvitationProtocol_Shared.m
        src/EKObjectCreationCalendarStore.m
        src/EKCalendarProtocol_Shared.m
        src/EKPredicateSearch.m
        src/EKConflictScanner.m
        src/EKConflictScanJob.m
        src/EKEvent.m
        src/EKObjectCreationInMemorySource.m
        src/EKSaveOperation.m
        src/EKFrozenEvent.m
        src/EKRecurrenceDayOfWeek.m
        src/EKNaturalLanguageSuggestedEventPredicate.m
        src/EKActionsAccounting.m
        src/EKBatchChangeInfo.m
        src/EKEventSliceInfo.m
        src/EKRecurrenceChangeInfo.m
        src/EKRecurringReminderCompletedChangeInfo.m
        src/EKObjectValidationContext.m
        src/EKSerializableAttachment.m
        src/EKGeneralLookupPredicate.m
        src/EKCreateOperation.m
        src/EKFrozenSuggestedEventInfo.m
        src/EKCalendarNotification.m
        src/EKSerializableParticipant.m
        src/EKRecurrenceEnd.m
        src/EKObjectCreationInMemoryObject.m
        src/EKQueryEventPredicate.m
        src/EKAssistantEventPredicate.m
        src/EKRecurrenceRule.m
        src/EKFrozenCalendarSuggestionNotification.m
        src/EKFrozenRecurrenceRule.m
        src/EKDefaultSerializerFactory.m
        src/EKRecurrenceException.m
        src/EKPreferences.m
        src/EKParticipant.m
        src/EKFrozenCalendarProposeNewTimeNotification.m
        src/EKFrozenAttendee.m
        src/EKBackingStoreAccounting.m
        src/EKAttendee.m
        src/EKAvailabilityCachedSpan.m
        src/EKOrganizer.m
        src/EKQueryReminderPredicate.m
        src/EKAvailabilityCachedSpanRange.m
        src/EKObjectCreation.m
        src/EKStructuredLocation.m
        src/EKDiff.m
        src/EKFrozenStructuredLocation.m
        src/EKInviteeTimeSpan.m
        src/EKCalendarChangeHelper.m
        src/EKRepliedEventPredicate.m
        src/EKRecurrenceGenerator.m
        src/EKRecurrenceChangeManager.m
        src/EKObjectCreationInMemoryCalendar.m
        src/EKBackingObjectsTracker.m
        src/EKSuggestedEventPredicate.m
        src/EKRequestAvailabilityOperation.m
        src/EKSharee.m
        src/EKInMemoryBackingStore.m
        src/EKFrozenSharee.m
        src/EKObjectGroup.m
        src/EKCalendarResourceChangeNotification.m
        src/EKQueryPredicate.m
        src/EKInviteeAlternativeTime.m
        src/EKSerializableStructuredLocation.m
        src/EKDebugPreferences.m
        src/EKObjectCreationInMemory.m
        src/EKResliceOperation.m

    DEPENDENCIES
        system
        objc
        Foundation
)
