name: Kanban
options:
  bundleIdPrefix: dev.rzen.indie
  deploymentTarget:
    macOS: "26.0"
  xcodeVersion: "26.0"
  defaultConfig: Debug

packages:
  Yams:
    url: https://github.com/jpsim/Yams.git
    from: 6.0.0

settings:
  base:
    SWIFT_VERSION: "6.0"
    MACOSX_DEPLOYMENT_TARGET: "26.0"
    DEVELOPMENT_TEAM: ${APPLE_TEAM_ID}
    ENABLE_USER_SCRIPT_SANDBOXING: NO

targets:
  Kanban:
    type: application
    platform: macOS
    sources:
      - Kanban
    dependencies:
      - package: Yams
    postBuildScripts:
      - script: '"${SRCROOT}/../indie-skills/skills/app-versioning/scripts/update_build_info.sh"'
        name: Update Build Info
        shell: /bin/sh
        basedOnDependencyAnalysis: false
        inputFiles:
          - $(TARGET_BUILD_DIR)/$(INFOPLIST_PATH)
          - $(DWARF_DSYM_FOLDER_PATH)/$(DWARF_DSYM_FILE_NAME)/Contents/Info.plist
    settings:
      base:
        PRODUCT_BUNDLE_IDENTIFIER: dev.rzen.indie.Kanban
        MARKETING_VERSION: "2.0"
        INFOPLIST_FILE: Kanban/Info.plist
        CODE_SIGN_ENTITLEMENTS: Kanban/Kanban.entitlements
        GENERATE_INFOPLIST_FILE: false
        SWIFT_STRICT_CONCURRENCY: complete
        ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon

  KanbanTests:
    type: bundle.unit-test
    platform: macOS
    sources:
      - KanbanTests
      - path: Fixtures
        type: folder
        buildPhase: resources
    dependencies:
      - target: Kanban
    settings:
      base:
        PRODUCT_BUNDLE_IDENTIFIER: dev.rzen.indie.KanbanTests
        GENERATE_INFOPLIST_FILE: true
        SWIFT_STRICT_CONCURRENCY: complete

  KanbanUITests:
    type: bundle.ui-testing
    platform: macOS
    sources:
      - KanbanUITests
    dependencies:
      - target: Kanban
    settings:
      base:
        PRODUCT_BUNDLE_IDENTIFIER: dev.rzen.indie.KanbanUITests
        GENERATE_INFOPLIST_FILE: true
        SWIFT_STRICT_CONCURRENCY: complete

schemes:
  Kanban:
    build:
      targets:
        Kanban: all
    run:
      config: Debug
    test:
      config: Debug
      gatherCoverageData: false
      targets:
        - KanbanTests
        - KanbanUITests
    profile:
      config: Release
    analyze:
      config: Debug
    archive:
      config: Release
