The Swift Package Index logo.Swift Package Index

Build Information

Successful build of Anima, reference 1.3.0 (8440c1), with Swift 6.4 for macOS (SPM) on 20 Sep 2026 14:23:10 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/flocked/Anima.git
Reference: 1.3.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/flocked/Anima
 * tag               1.3.0      -> FETCH_HEAD
HEAD is now at 8440c18 Update AnimatableArray.swift
Cloned https://github.com/flocked/Anima.git
Revision (git rev-parse @):
8440c18ff13d1194327a34936a2f059bb103f209
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/flocked/Anima.git at 1.3.0
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.4
Building package at path:  $PWD
https://github.com/flocked/Anima.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Pre-planning 1 / 96]
[Planning deferred tasks]
[25 / 42]
[26 / 43] Decomposed
[35 / 95]
[38 / 95]
[45 / 95]
[47 / 95]
[48 / 95]
[52 / 95]
[54 / 95]
[57 / 95]
[60 / 95]
[63 / 95]
[64 / 95]
[67 / 95]
[68 / 95]
[78 / 95] Decomposed
[85 / 96] Anima
[90 / 131]
[94 / 131]
[98 / 131]
[102 / 131]
[105 / 131]
[106 / 131]
[108 / 131]
[108 / 131] Decomposed
[110 / 131]
[122 / 131] Anima
[123 / 131] Anima
[128 / 131] Anima
Build complete! (11.09 sec)
Fetching https://github.com/b3ll/Decomposed.git
[1/821] Fetching decomposed
Fetched https://github.com/b3ll/Decomposed.git (3.03s)
Creating working copy for https://github.com/b3ll/Decomposed.git
Working copy of https://github.com/b3ll/Decomposed.git resolved at main (225ec77)
/Users/admin/builder/spi-builder-workspace/Sources/Anima/AnimatableProperty/AnimatableProperty.swift:242:1: warning: extension declares a conformance of imported type 'CGAffineTransform' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'CoreFoundation' introduce this conformance in the future
240 | }
241 |
242 | extension CGAffineTransform: AnimatableProperty, Animatable {
    | |- warning: extension declares a conformance of imported type 'CGAffineTransform' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'CoreFoundation' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
243 |     @inlinable public init(_ animatableData: AnimatableArray<Double>) {
244 |         self.init(animatableData[0], animatableData[1], animatableData[2], animatableData[3], animatableData[4], animatableData[5])
/Users/admin/builder/spi-builder-workspace/Sources/Anima/AnimatableProperty/AnimatableProperty.swift:257:1: warning: extension declares a conformance of imported type 'NSDirectionalEdgeInsets' to imported protocols 'Animatable', 'Equatable'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
255 | }
256 |
257 | extension NSDirectionalEdgeInsets: AnimatableProperty, Animatable {
    | |- warning: extension declares a conformance of imported type 'NSDirectionalEdgeInsets' to imported protocols 'Animatable', 'Equatable'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
258 |     public init(_ animatableData: AnimatableArray<Double>) {
259 |         self.init(top: animatableData[0], leading: animatableData[1], bottom: animatableData[2], trailing: animatableData[3])
/Users/admin/builder/spi-builder-workspace/Sources/Anima/AnimatableProperty/AnimatableProperty.swift:269:5: warning: extension declares a conformance of imported type 'NSEdgeInsets' to imported protocols 'Animatable', 'Equatable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
267 |
268 | #if os(macOS)
269 |     extension NSEdgeInsets: AnimatableProperty, Animatable {
    |     |- warning: extension declares a conformance of imported type 'NSEdgeInsets' to imported protocols 'Animatable', 'Equatable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
    |     `- note: add '@retroactive' to silence this warning
270 |         public var animatableData: AnimatableArray<Double> {
271 |             get { [top, left, bottom, right] }
/Users/admin/builder/spi-builder-workspace/Sources/Anima/AnimatableProperty/AnimatableProperty.swift:292:1: warning: extension declares a conformance of imported type 'CGVector' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'CoreFoundation' introduce this conformance in the future
290 | #endif
291 |
292 | extension CGVector: AnimatableProperty, Animatable {
    | |- warning: extension declares a conformance of imported type 'CGVector' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'CoreFoundation' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
293 |     public var animatableData: AnimatableArray<Double> {
294 |         get { [dx, dy] }
/Users/admin/builder/spi-builder-workspace/Sources/Anima/AnimatableProperty/AnimatableProperty.swift:303:1: warning: extension declares a conformance of imported type 'CATransform3D' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'QuartzCore' introduce this conformance in the future
301 | }
302 |
303 | extension CATransform3D: AnimatableProperty, Animatable {
    | |- warning: extension declares a conformance of imported type 'CATransform3D' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'QuartzCore' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
304 |     public init(_ animatableData: AnimatableArray<Double>) {
305 |         self.init(m11: animatableData[0], m12: animatableData[1], m13: animatableData[2], m14: animatableData[3], m21: animatableData[4], m22: animatableData[5], m23: animatableData[6], m24: animatableData[7], m31: animatableData[8], m32: animatableData[9], m33: animatableData[10], m34: animatableData[11], m41: animatableData[12], m42: animatableData[13], m43: animatableData[14], m44: animatableData[15])
/Users/admin/builder/spi-builder-workspace/Sources/Anima/AnimatableProperty/AnimatableProperty.swift:314:1: warning: extension declares a conformance of imported type 'CGQuaternion' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'Decomposed' introduce this conformance in the future
312 | }
313 |
314 | extension CGQuaternion: AnimatableProperty, Animatable {
    | |- warning: extension declares a conformance of imported type 'CGQuaternion' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'Decomposed' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
315 |     public init(_ animatableData: AnimatableArray<Double>) {
316 |         self.init(angle: animatableData[0], axis: .init(animatableData[1], animatableData[2], animatableData[3]))
/Users/admin/builder/spi-builder-workspace/Sources/Anima/AnimatableProperty/AnimatableProperty.swift:329:1: warning: extension declares a conformance of imported type 'CGVector3' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'Decomposed' introduce this conformance in the future
327 | }
328 |
329 | extension CGVector3: AnimatableProperty, Animatable {
    | |- warning: extension declares a conformance of imported type 'CGVector3' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'Decomposed' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
330 |     public init(_ animatableData: AnimatableArray<Double>) {
331 |         self.init(animatableData[0], animatableData[1], animatableData[2])
/Users/admin/builder/spi-builder-workspace/Sources/Anima/AnimatableProperty/AnimatableProperty.swift:344:1: warning: extension declares a conformance of imported type 'CGVector4' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'Decomposed' introduce this conformance in the future
342 | }
343 |
344 | extension CGVector4: AnimatableProperty, Animatable {
    | |- warning: extension declares a conformance of imported type 'CGVector4' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'Decomposed' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
345 |     public init(_ animatableData: AnimatableArray<Double>) {
346 |         self.init(m14: animatableData[0], m24: animatableData[1], m34: animatableData[2], m44: animatableData[3])
/Users/admin/builder/spi-builder-workspace/Sources/Anima/Extensions/CoreAnimation/CATransform3D+.swift:13:5: warning: extension declares a conformance of imported type 'CATransform3D' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'QuartzCore' introduce this conformance in the future
11 |     import QuartzCore
12 |
13 |     extension CATransform3D: Equatable {
   |     |- warning: extension declares a conformance of imported type 'CATransform3D' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'QuartzCore' introduce this conformance in the future
   |     `- note: add '@retroactive' to silence this warning
14 |         public static func == (lhs: CATransform3D, rhs: CATransform3D) -> Bool {
15 |             CATransform3DEqualToTransform(lhs, rhs)
/Users/admin/builder/spi-builder-workspace/Sources/Anima/Extensions/Math & Geometry/CoreGraphics+.swift:46:1: warning: extension declares a conformance of imported type 'CGPoint' to imported protocol 'Hashable'; this will not behave correctly if the owners of 'CoreFoundation' introduce this conformance in the future
 44 | }
 45 |
 46 | extension CGPoint: Hashable {
    | |- warning: extension declares a conformance of imported type 'CGPoint' to imported protocol 'Hashable'; this will not behave correctly if the owners of 'CoreFoundation' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 47 |     public func hash(into hasher: inout Hasher) {
 48 |         hasher.combine(x)
/Users/admin/builder/spi-builder-workspace/Sources/Anima/Extensions/Math & Geometry/NSUIEdgeInset+.swift:15:1: warning: extension declares a conformance of imported type 'NSDirectionalRectEdge' to imported protocol 'Hashable'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
 13 | import SwiftUI
 14 |
 15 | extension NSDirectionalRectEdge: Hashable {}
    | |- warning: extension declares a conformance of imported type 'NSDirectionalRectEdge' to imported protocol 'Hashable'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 16 |
 17 | #if os(macOS)
/Users/admin/builder/spi-builder-workspace/Sources/Anima/Extensions/Math & Geometry/NSUIEdgeInset+.swift:18:5: warning: extension declares a conformance of imported type 'NSEdgeInsets' to imported protocol 'Hashable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
 16 |
 17 | #if os(macOS)
 18 |     extension NSEdgeInsets: Hashable {
    |     |- warning: extension declares a conformance of imported type 'NSEdgeInsets' to imported protocol 'Hashable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
    |     `- note: add '@retroactive' to silence this warning
 19 |         public static func == (lhs: NSEdgeInsets, rhs: NSEdgeInsets) -> Bool {
 20 |             lhs.hashValue == rhs.hashValue
/Users/admin/builder/spi-builder-workspace/Sources/Anima/Extensions/Math & Geometry/NSUIEdgeInset+.swift:91:1: warning: extension declares a conformance of imported type 'NSDirectionalEdgeInsets' to imported protocol 'Hashable'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
 89 | }
 90 |
 91 | extension NSDirectionalEdgeInsets: Hashable {
    | |- warning: extension declares a conformance of imported type 'NSDirectionalEdgeInsets' to imported protocol 'Hashable'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 92 |     public static func == (lhs: NSDirectionalEdgeInsets, rhs: NSDirectionalEdgeInsets) -> Bool {
 93 |         lhs.hashValue == rhs.hashValue
/Users/admin/builder/spi-builder-workspace/Sources/Anima/Extensions/CoreAnimation/CATransform3D+.swift:13:5: warning: extension declares a conformance of imported type 'CATransform3D' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'QuartzCore' introduce this conformance in the future
11 |     import QuartzCore
12 |
13 |     extension CATransform3D: Equatable {
   |     |- warning: extension declares a conformance of imported type 'CATransform3D' to imported protocol 'Equatable'; this will not behave correctly if the owners of 'QuartzCore' introduce this conformance in the future
   |     `- note: add '@retroactive' to silence this warning
14 |         public static func == (lhs: CATransform3D, rhs: CATransform3D) -> Bool {
15 |             CATransform3DEqualToTransform(lhs, rhs)
/Users/admin/builder/spi-builder-workspace/Sources/Anima/Extensions/Math & Geometry/CoreGraphics+.swift:46:1: warning: extension declares a conformance of imported type 'CGPoint' to imported protocol 'Hashable'; this will not behave correctly if the owners of 'CoreFoundation' introduce this conformance in the future
 44 | }
 45 |
 46 | extension CGPoint: Hashable {
    | |- warning: extension declares a conformance of imported type 'CGPoint' to imported protocol 'Hashable'; this will not behave correctly if the owners of 'CoreFoundation' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 47 |     public func hash(into hasher: inout Hasher) {
 48 |         hasher.combine(x)
/Users/admin/builder/spi-builder-workspace/Sources/Anima/AnimatableProperty/AnimatableProperty.swift:242:1: warning: extension declares a conformance of imported type 'CGAffineTransform' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'CoreFoundation' introduce this conformance in the future
240 | }
241 |
242 | extension CGAffineTransform: AnimatableProperty, Animatable {
    | |- warning: extension declares a conformance of imported type 'CGAffineTransform' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'CoreFoundation' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
243 |     @inlinable public init(_ animatableData: AnimatableArray<Double>) {
244 |         self.init(animatableData[0], animatableData[1], animatableData[2], animatableData[3], animatableData[4], animatableData[5])
/Users/admin/builder/spi-builder-workspace/Sources/Anima/AnimatableProperty/AnimatableProperty.swift:257:1: warning: extension declares a conformance of imported type 'NSDirectionalEdgeInsets' to imported protocols 'Animatable', 'Equatable'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
255 | }
256 |
257 | extension NSDirectionalEdgeInsets: AnimatableProperty, Animatable {
    | |- warning: extension declares a conformance of imported type 'NSDirectionalEdgeInsets' to imported protocols 'Animatable', 'Equatable'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
258 |     public init(_ animatableData: AnimatableArray<Double>) {
259 |         self.init(top: animatableData[0], leading: animatableData[1], bottom: animatableData[2], trailing: animatableData[3])
/Users/admin/builder/spi-builder-workspace/Sources/Anima/AnimatableProperty/AnimatableProperty.swift:269:5: warning: extension declares a conformance of imported type 'NSEdgeInsets' to imported protocols 'Animatable', 'Equatable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
267 |
268 | #if os(macOS)
269 |     extension NSEdgeInsets: AnimatableProperty, Animatable {
    |     |- warning: extension declares a conformance of imported type 'NSEdgeInsets' to imported protocols 'Animatable', 'Equatable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
    |     `- note: add '@retroactive' to silence this warning
270 |         public var animatableData: AnimatableArray<Double> {
271 |             get { [top, left, bottom, right] }
/Users/admin/builder/spi-builder-workspace/Sources/Anima/AnimatableProperty/AnimatableProperty.swift:292:1: warning: extension declares a conformance of imported type 'CGVector' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'CoreFoundation' introduce this conformance in the future
290 | #endif
291 |
292 | extension CGVector: AnimatableProperty, Animatable {
    | |- warning: extension declares a conformance of imported type 'CGVector' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'CoreFoundation' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
293 |     public var animatableData: AnimatableArray<Double> {
294 |         get { [dx, dy] }
/Users/admin/builder/spi-builder-workspace/Sources/Anima/AnimatableProperty/AnimatableProperty.swift:303:1: warning: extension declares a conformance of imported type 'CATransform3D' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'QuartzCore' introduce this conformance in the future
301 | }
302 |
303 | extension CATransform3D: AnimatableProperty, Animatable {
    | |- warning: extension declares a conformance of imported type 'CATransform3D' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'QuartzCore' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
304 |     public init(_ animatableData: AnimatableArray<Double>) {
305 |         self.init(m11: animatableData[0], m12: animatableData[1], m13: animatableData[2], m14: animatableData[3], m21: animatableData[4], m22: animatableData[5], m23: animatableData[6], m24: animatableData[7], m31: animatableData[8], m32: animatableData[9], m33: animatableData[10], m34: animatableData[11], m41: animatableData[12], m42: animatableData[13], m43: animatableData[14], m44: animatableData[15])
/Users/admin/builder/spi-builder-workspace/Sources/Anima/AnimatableProperty/AnimatableProperty.swift:314:1: warning: extension declares a conformance of imported type 'CGQuaternion' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'Decomposed' introduce this conformance in the future
312 | }
313 |
314 | extension CGQuaternion: AnimatableProperty, Animatable {
    | |- warning: extension declares a conformance of imported type 'CGQuaternion' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'Decomposed' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
315 |     public init(_ animatableData: AnimatableArray<Double>) {
316 |         self.init(angle: animatableData[0], axis: .init(animatableData[1], animatableData[2], animatableData[3]))
/Users/admin/builder/spi-builder-workspace/Sources/Anima/AnimatableProperty/AnimatableProperty.swift:329:1: warning: extension declares a conformance of imported type 'CGVector3' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'Decomposed' introduce this conformance in the future
327 | }
328 |
329 | extension CGVector3: AnimatableProperty, Animatable {
    | |- warning: extension declares a conformance of imported type 'CGVector3' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'Decomposed' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
330 |     public init(_ animatableData: AnimatableArray<Double>) {
331 |         self.init(animatableData[0], animatableData[1], animatableData[2])
/Users/admin/builder/spi-builder-workspace/Sources/Anima/AnimatableProperty/AnimatableProperty.swift:344:1: warning: extension declares a conformance of imported type 'CGVector4' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'Decomposed' introduce this conformance in the future
342 | }
343 |
344 | extension CGVector4: AnimatableProperty, Animatable {
    | |- warning: extension declares a conformance of imported type 'CGVector4' to imported protocol 'Animatable'; this will not behave correctly if the owners of 'Decomposed' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
345 |     public init(_ animatableData: AnimatableArray<Double>) {
346 |         self.init(m14: animatableData[0], m24: animatableData[1], m34: animatableData[2], m44: animatableData[3])
/Users/admin/builder/spi-builder-workspace/Sources/Anima/AnimatablePropertyProvider/PropertyAnimator.swift:178:20: warning: value 'current' was defined but never used; consider replacing with boolean test [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
176 |         case .cubic:
177 |             let animation = cubicAnimation(for: keyPath) ?? CubicAnimation(duration: 1.0, value: value, target: target)
178 |             if let current = currentAnimation as? CubicAnimation<Value> {
    |                    `- warning: value 'current' was defined but never used; consider replacing with boolean test [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
179 |                 animation._startValue = animation._velocity
180 |             }
[#NoUsage]: <https://docs.swift.org/compiler/documentation/diagnostics/no-usage>
/Users/admin/builder/spi-builder-workspace/Sources/Anima/Extensions/Math & Geometry/NSUIEdgeInset+.swift:15:1: warning: extension declares a conformance of imported type 'NSDirectionalRectEdge' to imported protocol 'Hashable'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
 13 | import SwiftUI
 14 |
 15 | extension NSDirectionalRectEdge: Hashable {}
    | |- warning: extension declares a conformance of imported type 'NSDirectionalRectEdge' to imported protocol 'Hashable'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 16 |
 17 | #if os(macOS)
/Users/admin/builder/spi-builder-workspace/Sources/Anima/Extensions/Math & Geometry/NSUIEdgeInset+.swift:18:5: warning: extension declares a conformance of imported type 'NSEdgeInsets' to imported protocol 'Hashable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
 16 |
 17 | #if os(macOS)
 18 |     extension NSEdgeInsets: Hashable {
    |     |- warning: extension declares a conformance of imported type 'NSEdgeInsets' to imported protocol 'Hashable'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future
    |     `- note: add '@retroactive' to silence this warning
 19 |         public static func == (lhs: NSEdgeInsets, rhs: NSEdgeInsets) -> Bool {
 20 |             lhs.hashValue == rhs.hashValue
/Users/admin/builder/spi-builder-workspace/Sources/Anima/Extensions/Math & Geometry/NSUIEdgeInset+.swift:91:1: warning: extension declares a conformance of imported type 'NSDirectionalEdgeInsets' to imported protocol 'Hashable'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
 89 | }
 90 |
 91 | extension NSDirectionalEdgeInsets: Hashable {
    | |- warning: extension declares a conformance of imported type 'NSDirectionalEdgeInsets' to imported protocol 'Hashable'; this will not behave correctly if the owners of 'AppKit' introduce this conformance in the future
    | `- note: add '@retroactive' to silence this warning
 92 |     public static func == (lhs: NSDirectionalEdgeInsets, rhs: NSDirectionalEdgeInsets) -> Bool {
 93 |         lhs.hashValue == rhs.hashValue
Build complete.
{
  "dependencies" : [
    {
      "identity" : "decomposed",
      "requirement" : {
        "branch" : [
          "main"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/b3ll/Decomposed.git"
    }
  ],
  "manifest_display_name" : "Anima",
  "name" : "Anima",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "Anima",
      "targets" : [
        "Anima"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "AnimaTests",
      "module_type" : "SwiftTarget",
      "name" : "AnimaTests",
      "path" : "Tests/AnimaTests",
      "sources" : [
        "AnimaTests.swift"
      ],
      "target_dependencies" : [
        "Anima"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Anima",
      "module_type" : "SwiftTarget",
      "name" : "Anima",
      "path" : "Sources/Anima",
      "product_dependencies" : [
        "Decomposed"
      ],
      "product_memberships" : [
        "Anima"
      ],
      "sources" : [
        "Anima/Anima+AnimationConfiguration.swift",
        "Anima/Anima+AnimationOptions.swift",
        "Anima/Anima+AnimationState.swift",
        "Anima/Anima.swift",
        "Anima/AnimationController.swift",
        "AnimatableProperty/AnimatableArray.swift",
        "AnimatableProperty/AnimatableProperty.swift",
        "AnimatablePropertyProvider/AnimatablePropertyProvider.swift",
        "AnimatablePropertyProvider/AnimationProvider.swift",
        "AnimatablePropertyProvider/PropertyAnimator+Layer.swift",
        "AnimatablePropertyProvider/PropertyAnimator+Layout.swift",
        "AnimatablePropertyProvider/PropertyAnimator+Popover.swift",
        "AnimatablePropertyProvider/PropertyAnimator+View.swift",
        "AnimatablePropertyProvider/PropertyAnimator+Window.swift",
        "AnimatablePropertyProvider/PropertyAnimator.swift",
        "AnimationProviding/AnimatingState.swift",
        "AnimationProviding/AnimationEvent.swift",
        "AnimationProviding/AnimationPosition.swift",
        "AnimationProviding/AnimationProviding.swift",
        "Animations/Cubic/CubicAnimation.swift",
        "Animations/Cubic/CubicFunction.swift",
        "Animations/Decay/DecayAnimation.swift",
        "Animations/Decay/DecayFunction.swift",
        "Animations/Easing/EasingAnimation.swift",
        "Animations/Easing/TimingFunction.swift",
        "Animations/Misc/ColorAnimation.swift",
        "Animations/Misc/Keyframe.swift",
        "Animations/Property/PropertyAnimation.swift",
        "Animations/Spring/Spring.swift",
        "Animations/Spring/SpringAnimation.swift",
        "Extensions/AssociatedValue.swift",
        "Extensions/Colors/CGColor+.swift",
        "Extensions/Colors/NSUIColor+.swift",
        "Extensions/CoreAnimation/CALayer+.swift",
        "Extensions/CoreAnimation/CAMediaTimingFunction+.swift",
        "Extensions/CoreAnimation/CATransform3D+.swift",
        "Extensions/CoreAnimation/InnerShadowLayer.swift",
        "Extensions/DisplayLink+Combine.swift",
        "Extensions/KVO/KeyValueObserver.swift",
        "Extensions/KVO/NSObject+Observe.swift",
        "Extensions/KVO/NotificationCenter+.swift",
        "Extensions/KeyPath+.swift",
        "Extensions/Math & Geometry/ApproximateEquatable.swift",
        "Extensions/Math & Geometry/CVTimeStamp+.swift",
        "Extensions/Math & Geometry/Comparable+Clamp.swift",
        "Extensions/Math & Geometry/CoreGraphics+.swift",
        "Extensions/Math & Geometry/NSUIBezierpath+.swift",
        "Extensions/Math & Geometry/NSUIEdgeInset+.swift",
        "Extensions/Math & Geometry/NSValue+.swift",
        "Extensions/Math & Geometry/Number+FloatInitializable.swift",
        "Extensions/Math & Geometry/Sequence+Sort.swift",
        "Extensions/Math & Geometry/TimeInterval+.swift",
        "Extensions/Math & Geometry/VectorArithmetic+.swift",
        "Extensions/NSUI Typealias.swift",
        "Extensions/Optional.swift",
        "Extensions/Views/NSScrollView+.swift",
        "Extensions/Views/NSUITextField+.swift",
        "Extensions/Views/NSUIView+.swift",
        "Misc/CAKeyFrameAnimation/CAKeyframeAnimationEmittable+Layer.swift",
        "Misc/CAKeyFrameAnimation/CAKeyframeAnimationEmittable.swift",
        "Misc/CAKeyFrameAnimation/CAKeyframeAnimationValueConvertible.swift",
        "Misc/ContentConfiguration/BorderConfiguration.swift",
        "Misc/ContentConfiguration/ShadowConfiguration.swift",
        "Misc/Rubberband.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
Done.