---
name: ElementX
attributes:
  ORGANIZATIONNAME: Element

fileGroups:
- project.yml

options:
  groupSortPosition: bottom
  createIntermediateGroups: true
  deploymentTarget:
    iOS: '17.6'
    macOS: '14.6'
  groupOrdering:
  - order:
    - ElementX
    - UnitTests
    - UITests
    - IntegrationTests
    - Tools
  - pattern: ElementX
    order:
    - Sources
    - Resources
    - SupportingFiles
  - pattern: Sources
    order:
    - Application
    - UserSession
    - Services
    - FlowCoordinators
    - Screens
    - Other
    - UITests
  postGenCommand: cd Tools/XcodeGen && sh postGenCommand.sh

settings:
  CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED: true
  ENABLE_BITCODE: false
  APP_GROUP_IDENTIFIER: group.$(BASE_APP_GROUP_IDENTIFIER)
  APP_NAME: ElementX
  KEYCHAIN_ACCESS_GROUP_IDENTIFIER: "$(AppIdentifierPrefix)$(BASE_BUNDLE_IDENTIFIER)"
  MARKETING_VERSION: 25.03.0
  CURRENT_PROJECT_VERSION: 1
  SUPPORTS_MACCATALYST: false

include:
- path: app.yml
- path: ElementX/SupportingFiles/target.yml
- path: UnitTests/SupportingFiles/target.yml
- path: PreviewTests/SupportingFiles/target.yml
- path: UITests/SupportingFiles/target.yml
- path: IntegrationTests/SupportingFiles/target.yml
- path: NSE/SupportingFiles/target.yml
- path: ShareExtension/SupportingFiles/target.yml
# - path: NCE/SupportingFiles/target.yml (not used yet)
# - path: MyAppVariant/override.yml

packages:
  # Element/Matrix dependencies
  MatrixRustSDK:
    url: https://github.com/element-hq/matrix-rust-components-swift
    exactVersion: 25.02.25
    # path: ../matrix-rust-sdk
  Compound:
    url: https://github.com/element-hq/compound-ios
    revision: 5af528a2925816ab0ee1945c6321e7c476baca8a
    # path: ../compound-ios
  AnalyticsEvents:
    url: https://github.com/matrix-org/matrix-analytics-events
    minorVersion: 0.28.0
    # path: ../matrix-analytics-events
  Emojibase:
    url: https://github.com/matrix-org/emojibase-bindings
    minorVersion: 1.3.3
    # path: ../emojibase-bindings
  SwiftOGG:
    url: https://github.com/element-hq/swift-ogg
    minorVersion: 0.0.3
    # path: ../swift-ogg
  WysiwygComposer:
    url: https://github.com/element-hq/matrix-rich-text-editor-swift
    exactVersion: 2.37.12
    # path: ../matrix-rich-text-editor/platforms/ios/lib/WysiwygComposer
  
  # External dependencies
  Algorithms:
    url: https://github.com/apple/swift-algorithms
    minorVersion: 1.0.0
  Collections:
    url: https://github.com/apple/swift-collections
    minorVersion: 1.0.0
  DeviceKit:
    url: https://github.com/devicekit/DeviceKit
    minorVersion: 5.5.0
  DSWaveformImage:
    url: https://github.com/dmrschmidt/DSWaveformImage
    exactVersion: 14.1.1
  DTCoreText:
    url: https://github.com/Cocoanetics/DTCoreText
    exactVersion: 1.6.26
  GZIP:
    url: https://github.com/nicklockwood/GZIP
    minorVersion: 1.3.2
  KeychainAccess:
    url: https://github.com/kishikawakatsumi/KeychainAccess
    minorVersion: 4.2.0
  Kingfisher:
    url: https://github.com/onevcat/Kingfisher
    minorVersion: 8.0.3
  KZFileWatchers:
    url: https://github.com/krzysztofzablocki/KZFileWatchers
    minorVersion: 1.2.0
  LoremSwiftum:
    url: https://github.com/lukaskubanek/LoremSwiftum
    minorVersion: 2.2.1
  LRUCache:
    url: https://github.com/nicklockwood/LRUCache
    minorVersion: 1.0.4
  Mapbox:
    url: https://github.com/maplibre/maplibre-gl-native-distribution
    minorVersion: 5.13.0
  PostHog:
    url: https://github.com/PostHog/posthog-ios
    minorVersion: 3.2.5
  Sentry:
    url: https://github.com/getsentry/sentry-cocoa
    minorVersion: 8.30.0
  SnapshotTesting:
    url: https://github.com/pointfreeco/swift-snapshot-testing
    minorVersion: 1.17.5
  SwiftState:
    url: https://github.com/ReactKit/SwiftState
    minorVersion: 6.0.0
  Version:
    url: https://github.com/mxcl/Version
    minorVersion: 2.1.0

aggregateTargets:
  Periphery:
    buildScripts:
    - name: Scan
      script: |
        export PATH="$PATH:/opt/homebrew/bin"
        periphery scan --format xcode
      basedOnDependencyAnalysis: false
