---
name: ElementX
attributes:
  ORGANIZATIONNAME: Element

fileGroups:
- project.yml
- app.yml

options:
  groupSortPosition: bottom
  createIntermediateGroups: true
  deploymentTarget:
    iOS: '18.5'
    macOS: '14.5'
  groupOrdering:
  - order:
    - ElementX
    - NSE
    - ShareExtension
    - UnitTests
    - PreviewTests
    - UITests
    - AccessibilityTests
    - IntegrationTests
    - DevelopmentAssets
    - SDKMocks
    - Secrets
    - Tools
  - pattern: ElementX
    order:
    - Sources
    - Resources
    - SupportingFiles
  - pattern: Sources
    order:
    - Application
    - UserSession
    - Services
    - FlowCoordinators
    - Screens
    - Other
    - UITests
    - AccessibilityTests
  fileTypes:
    icon:
      file: true # https://github.com/yonaskolb/XcodeGen/issues/1556
  postGenCommand: cd Tools/XcodeGen && sh postGenCommand.sh

settings:
  CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED: true
  ENABLE_BITCODE: false
  APP_NAME: ElementX
  KEYCHAIN_ACCESS_GROUP_IDENTIFIER: "$(DEVELOPMENT_TEAM).$(BASE_BUNDLE_IDENTIFIER)"
  MARKETING_VERSION: 26.03.1
  CURRENT_PROJECT_VERSION: 1
  SUPPORTS_MACCATALYST: false

include:
- path: app.yml
- path: ElementX/SupportingFiles/target.yml
- path: NSE/SupportingFiles/target.yml
- path: ShareExtension/SupportingFiles/target.yml
- path: SDKMocks/SupportingFiles/target.yml
- path: UnitTests/SupportingFiles/target.yml
- path: PreviewTests/SupportingFiles/target.yml
- path: UITests/SupportingFiles/target.yml
- path: IntegrationTests/SupportingFiles/target.yml
- path: AccessibilityTests/SupportingFiles/target.yml
# - path: MyAppVariant/override.yml

packages:
  # Element/Matrix dependencies
  MatrixRustSDK:
    url: https://github.com/element-hq/matrix-rust-components-swift
    exactVersion: 26.02.24
    # path: ../matrix-rust-sdk
  Compound:
    path: compound-ios
  AnalyticsEvents:
    url: https://github.com/matrix-org/matrix-analytics-events
    minorVersion: 0.30.0
    # path: ../matrix-analytics-events
  EmbeddedElementCall:
    url: https://github.com/element-hq/element-call-swift
    exactVersion: 0.16.3
  Emojibase:
    url: https://github.com/matrix-org/emojibase-bindings
    minorVersion: 1.5.0
    # 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.41.0
    # path: ../matrix-rich-text-editor/platforms/ios/lib/WysiwygComposer
  
  # External dependencies
  Algorithms:
    url: https://github.com/apple/swift-algorithms
    minorVersion: 1.2.1
  AsyncAlgorithms:
    url: https://github.com/apple/swift-async-algorithms
    minorVersion: 1.1.1
  Clocks:
    url: https://github.com/pointfreeco/swift-clocks
    from: 1.0.6
  Collections:
    url: https://github.com/apple/swift-collections
    minorVersion: 1.3.0
  DeviceKit:
    url: https://github.com/devicekit/DeviceKit
    minorVersion: 5.7.0
  DSWaveformImage:
    url: https://github.com/dmrschmidt/DSWaveformImage
    exactVersion: 14.2.2
  Dynamic:
    url: https://github.com/mhdhejazi/Dynamic
    exactVersion: 1.2
  GZIP:
    url: https://github.com/nicklockwood/GZIP
    minorVersion: 1.3.2
  KeychainAccess:
    url: https://github.com/kishikawakatsumi/KeychainAccess
    minorVersion: 4.2.2
  Kingfisher:
    url: https://github.com/onevcat/Kingfisher
    minorVersion: 8.6.2
  KZFileWatchers:
    url: https://github.com/krzysztofzablocki/KZFileWatchers
    minorVersion: 1.2.0
  LoremSwiftum:
    url: https://github.com/lukaskubanek/LoremSwiftum
    minorVersion: 2.2.3
  LRUCache:
    url: https://github.com/nicklockwood/LRUCache
    minorVersion: 1.2.0
  MapLibre:
    url: https://github.com/maplibre/maplibre-gl-native-distribution
    minorVersion: 6.22.1
  PostHog:
    url: https://github.com/PostHog/posthog-ios
    minorVersion: 3.37.1
  Sentry:
    url: https://github.com/getsentry/sentry-cocoa
    minorVersion: 9.2.0
  SnapshotTesting:
    url: https://github.com/pointfreeco/swift-snapshot-testing
    minorVersion: 1.18.7
  SwiftFlow:
    url: https://github.com/tevelee/SwiftUI-Flow.git
    minorVersion: 3.1.1
  SwiftSoup:
    url: https://github.com/scinfu/SwiftSoup.git
    minorVersion: 2.11.2
  SwiftState:
    url: https://github.com/ReactKit/SwiftState
    minorVersion: 6.0.0
  Version:
    url: https://github.com/mxcl/Version
    minorVersion: 2.2.0

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