name: ElementX

schemes:
  ElementX:
    analyze:
      config: Debug
    archive:
      config: Release
    build:
      targets:
        ElementX:
          - running
          - testing
          - profiling
          - analyzing
          - archiving
    profile:
      config: Release
    run:
      config: Debug
    test:
      config: Debug
      gatherCoverageData: true
      coverageTargets:
        - ElementX
      environmentVariables:
        IS_RUNNING_UNIT_TESTS: "1"
      targets:
        - UnitTests
        - UITests

targets:
  ElementX:
    type: application
    platform: iOS

    info:
      path: ../SupportingFiles/Info.plist
      properties:
        UILaunchStoryboardName: LaunchScreen
        CFBundleShortVersionString: $(MARKETING_VERSION)
        CFBundleVersion: $(CURRENT_PROJECT_VERSION)

    settings:
      base:
        PRODUCT_NAME: ElementX
        PRODUCT_BUNDLE_IDENTIFIER: io.element.elementx
        MARKETING_VERSION: 1.0.0
        CURRENT_PROJECT_VERSION: 1.0.0
        DEVELOPMENT_TEAM: 7J4U792NQT
        SUPPORTS_MACCATALYST: YES
        CODE_SIGN_ENTITLEMENTS: ElementX/SupportingFiles/ElementX.entitlements 
        SWIFT_OBJC_BRIDGING_HEADER: ElementX/SupportingFiles/ElementX-Bridging-Header.h
        SWIFT_TREAT_WARNINGS_AS_ERRORS: YES
        
    postBuildScripts:
    - name: ⚠️ SwiftLint
      runOnlyWhenInstalling: false
      shell: /bin/sh
      script: |
        export PATH="$PATH:/opt/homebrew/bin"
        if which swiftlint >/dev/null; then
            swiftlint
        else
            echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
        fi
    - name: 🛠 SwiftGen
      runOnlyWhenInstalling: false
      shell: /bin/sh
      script: |
        export PATH="$PATH:/opt/homebrew/bin"
        if which swiftgen >/dev/null; then
            swiftgen config run --config Tools/SwiftGen/swiftgen-config.yml
        else
            echo "warning: SwiftGen not installed, download from https://github.com/SwiftGen/SwiftGen"
        fi
      
    dependencies:
    - package: MatrixRustSDK
    - package: DTCoreText
    - package: KeychainAccess
    - package: Kingfisher
    - package: Introspect
    - package: SwiftyBeaver

    sources:
    - path: ../Sources
      excludes:
        - Screens/Templates
    - path: ../Resources
    - path: ../SupportingFiles
