name: NSE

schemes:
  NSE:
    analyze:
      config: Debug
    archive:
      config: Release
    build:
      targets:
        NSE:
        - running
        - testing
        - profiling
        - analyzing
        - archiving
    profile:
      config: Release
    run:
      askForAppToLaunch: true
      config: Debug
      debugEnabled: false
      disableMainThreadChecker: false
      launchAutomaticallySubstyle: 2
    test:
      config: Debug
      disableMainThreadChecker: false

targets:
  NSE:
    type: app-extension
    platform: iOS

    dependencies:
      - package: MatrixRustSDK
      - package: KeychainAccess
      - package: Kingfisher
      - package: Collections
      - package: Compound
      - package: DeviceKit
      - package: LRUCache
      - package: Version
      - package: SwiftSoup

    info:
      path: Info.plist
      properties:
        CFBundleDisplayName: $(PRODUCT_DISPLAY_NAME)
        CFBundleShortVersionString: $(MARKETING_VERSION)
        CFBundleVersion: $(CURRENT_PROJECT_VERSION)
        appGroupIdentifier: $(APP_GROUP_IDENTIFIER)
        baseBundleIdentifier: $(BASE_BUNDLE_IDENTIFIER)
        keychainAccessGroupIdentifier: $(KEYCHAIN_ACCESS_GROUP_IDENTIFIER)
        productionAppName: $(PRODUCTION_APP_NAME)
        NSExtension:
          NSExtensionPointIdentifier: com.apple.usernotifications.service
          NSExtensionPrincipalClass: $(PRODUCT_MODULE_NAME).NotificationServiceExtension

    entitlements:
      path: NSE.entitlements
      properties:
        com.apple.developer.usernotifications.filtering: true
        com.apple.security.application-groups:
        - $(APP_GROUP_IDENTIFIER)
        keychain-access-groups:
        - $(KEYCHAIN_ACCESS_GROUP_IDENTIFIER)

    settings:
      base:
        PRODUCT_NAME: NSE
        PRODUCT_DISPLAY_NAME: $(APP_DISPLAY_NAME)
        PRODUCT_BUNDLE_IDENTIFIER: ${BASE_BUNDLE_IDENTIFIER}.nse
        MARKETING_VERSION: $(MARKETING_VERSION)
        CURRENT_PROJECT_VERSION: $(CURRENT_PROJECT_VERSION)
        DEVELOPMENT_TEAM: $(DEVELOPMENT_TEAM)
        SWIFT_OBJC_INTERFACE_HEADER_NAME: GeneratedInterface-Swift.h
        OTHER_SWIFT_FLAGS:
        - "-DIS_NSE"
        
    sources:
    - path: ../Sources
    - path: ../SupportingFiles
    - path: ../../ElementX/Sources/AppHooks/AppHooks.swift
    - path: ../../ElementX/Sources/AppHooks/Hooks/TracingHook.swift
    - path: ../../ElementX/Sources/AppHooks/Hooks/ClientBuilderHook.swift
    - path: ../../ElementX/Sources/AppHooks/Hooks/RemoteSettingsHook.swift
    - path: ../../Secrets/Secrets.swift
    - path: ../../ElementX/Sources/Application/Settings
    - path: ../../ElementX/Sources/Application/TargetConfiguration.swift
    - path: ../../ElementX/Sources/Generated/Assets.swift
    - path: ../../ElementX/Sources/Generated/Strings.swift
    - path: ../../ElementX/Sources/Other/Avatars.swift
    - path: ../../ElementX/Sources/Other/CurrentValuePublisher.swift
    - path: ../../ElementX/Sources/Other/ExpiringTaskRunner.swift
    - path: ../../ElementX/Sources/Other/Extensions/AttributedString.swift
    - path: ../../ElementX/Sources/Other/Extensions/Bundle.swift
    - path: ../../ElementX/Sources/Other/Extensions/ClientBuilder.swift
    - path: ../../ElementX/Sources/Other/Extensions/Date.swift
    - path: ../../ElementX/Sources/Other/Extensions/Dictionary.swift
    - path: ../../ElementX/Sources/Other/Extensions/FileManager.swift
    - path: ../../ElementX/Sources/Other/Extensions/ImageCache.swift
    - path: ../../ElementX/Sources/Other/Extensions/LayoutDirection.swift
    - path: ../../ElementX/Sources/Other/Extensions/NSRegularExpresion.swift
    - path: ../../ElementX/Sources/Other/Extensions/ProcessInfo.swift
    - path: ../../ElementX/Sources/Other/Extensions/String.swift
    - path: ../../ElementX/Sources/Other/Extensions/Task.swift
    - path: ../../ElementX/Sources/Other/Extensions/UNNotificationContent.swift
    - path: ../../ElementX/Sources/Other/Extensions/URL.swift
    - path: ../../ElementX/Sources/Other/Extensions/UTType.swift
    - path: ../../ElementX/Sources/Other/Extensions/CharacterSet.swift
    - path: ../../ElementX/Sources/Other/HTMLParsing
    - path: ../../ElementX/Sources/Other/InfoPlistReader.swift
    - path: ../../ElementX/Sources/Other/Logging
    - path: ../../ElementX/Sources/Other/MatrixEntityRegex.swift
    - path: ../../ElementX/Sources/Other/NetworkMonitor
    - path: ../../ElementX/Sources/Other/Pills/PillUtilities.swift
    - path: ../../ElementX/Sources/Other/Pills/PlainMentionBuilder.swift
    - path: ../../ElementX/Sources/Other/SDKListener.swift
    - path: ../../ElementX/Sources/Other/SwiftUI/Views/PlaceholderAvatarImage.swift
    - path: ../../ElementX/Sources/Other/TestablePreview/TestablePreview.swift
    - path: ../../ElementX/Sources/Other/UserAgentBuilder.swift
    - path: ../../ElementX/Sources/Services/ElementCall/ElementCallServiceConstants.swift
    - path: ../../ElementX/Sources/Services/Keychain/KeychainController.swift
    - path: ../../ElementX/Sources/Services/Keychain/KeychainControllerProtocol.swift
    - path: ../../ElementX/Sources/Services/Media/Provider
    - path: ../../ElementX/Sources/Services/Notification/NotificationConstants.swift
    - path: ../../ElementX/Sources/Services/Room/RoomSummary/RoomMessageEventStringBuilder.swift
    - path: ../../ElementX/Sources/Services/UserSession/RestorationToken.swift
    - path: ../../ElementX/Sources/Services/UserSession/SessionDirectories.swift
    - path: ../../ElementX/Sources/UITests/UITestsScreenIdentifier.swift
