The Swift Package Index logo.Swift Package Index

Build Information

Successful build of metal-tools, reference main (e24169), with Swift 6.4 for macOS (SPM) on 21 Sep 2026 20:43:54 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/computer-graphics-tools/metal-tools.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/computer-graphics-tools/metal-tools
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at e241697 remove simd tools dependency
Cloned https://github.com/computer-graphics-tools/metal-tools.git
Revision (git rev-parse @):
e2416976e87b1e73f3ac601305b45cd8c6ff3977
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/computer-graphics-tools/metal-tools.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.4
Building package at path:  $PWD
https://github.com/computer-graphics-tools/metal-tools.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Computing dependencies]
[Pre-planning 1 / 388]
[Planning deferred tasks]
[52 / 172] metal-tools_MetalComputeToolsTestsResources
[93 / 172] metal-tools_MetalRenderingTools
[100 / 172] metal-tools_MetalComputeTools
[106 / 172] metal-tools_MetalComputeTools
[111 / 172] metal-tools_MetalComputeTools
[119 / 172]
[128 / 172] metal-tools_MetalComputeTools
[131 / 172]
[137 / 174] MetalComputeToolsSharedTypes
[139 / 174] MetalComputeToolsTestsResources
[149 / 211]
[154 / 211]
[157 / 211] MetalTools
[162 / 254]
[163 / 254]
[168 / 254]
[171 / 254]
[174 / 254]
[179 / 254]
[182 / 254]
[184 / 254]
[185 / 254]
[197 / 254] MetalComputeToolsTestsResources
[206 / 254]
[208 / 254]
[211 / 254]
[213 / 254]
[223 / 254] MetalTools
[226 / 254] MetalTools
[234 / 255] MetalTools
[234 / 255] MetalComputeTools
[243 / 266] MetalComputeTools
[245 / 266] MetalTools
[255 / 267] MetalComputeTools
[256 / 267] MetalComputeTools
[258 / 267] MetalRenderingTools
[270 / 279] MetalRenderingTools
[278 / 279] MetalRenderingTools
Build complete! (10.83 sec)
warning: missing creator for mutated node: ('/Users/admin/builder/spi-builder-workspace/.build/out/Products/Debug/metal-tools_MetalRenderingTools.bundle/Contents/MacOS')
warning: missing creator for mutated node: ('/Users/admin/builder/spi-builder-workspace/.build/out/Products/Debug/metal-tools_MetalComputeToolsTests.bundle/Contents/MacOS')
warning: missing creator for mutated node: ('/Users/admin/builder/spi-builder-workspace/.build/out/Products/Debug/metal-tools_MetalComputeTools.bundle/Contents/MacOS')
/Users/admin/builder/spi-builder-workspace/Sources/MetalTools/Extensions/Metal/MTLCPUCacheMode/MTLCPUCacheMode+Codable.swift:4:1: warning: extension declares a conformance of imported type 'MTLCPUCacheMode' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
2 |
3 | /// Extends `MTLCPUCacheMode` to conform to the `Codable` protocol.
4 | extension MTLCPUCacheMode: Codable {}
  | |- warning: extension declares a conformance of imported type 'MTLCPUCacheMode' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
  | `- note: add '@retroactive' to silence this warning
5 |
/Users/admin/builder/spi-builder-workspace/Sources/MetalTools/Extensions/Metal/MTLOrigin/MTLOrigin+Codable.swift:4:1: warning: extension declares a conformance of imported type 'MTLOrigin' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
 2 |
 3 | /// Extension to make `MTLOrigin` conform to the `Codable` protocol.
 4 | extension MTLOrigin: Codable {
   | |- warning: extension declares a conformance of imported type 'MTLOrigin' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
 5 |     /// Coding keys for encoding and decoding `MTLOrigin`.
 6 |     private enum CodingKey: String, Swift.CodingKey {
/Users/admin/builder/spi-builder-workspace/Sources/MetalTools/Extensions/Metal/MTLPixelFormat/MTLPixelFormat+Codable.swift:4:1: warning: extension declares a conformance of imported type 'MTLPixelFormat' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
2 |
3 | /// Extension to make `MTLPixelFormat` conform to the `Codable` protocol.
4 | extension MTLPixelFormat: Codable {}
  | |- warning: extension declares a conformance of imported type 'MTLPixelFormat' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
  | `- note: add '@retroactive' to silence this warning
5 |
/Users/admin/builder/spi-builder-workspace/Sources/MetalTools/Extensions/Metal/MTLRegion/MTLRegion+Codable.swift:4:1: warning: extension declares a conformance of imported type 'MTLRegion' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
 2 |
 3 | /// Extension to make `MTLRegion` conform to the `Codable` protocol.
 4 | extension MTLRegion: Codable {
   | |- warning: extension declares a conformance of imported type 'MTLRegion' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
 5 |     /// Coding keys for encoding and decoding `MTLRegion`.
 6 |     private enum CodingKey: String, Swift.CodingKey {
/Users/admin/builder/spi-builder-workspace/Sources/MetalTools/Extensions/Metal/MTLSize/MTLSize+Codable.swift:4:1: warning: extension declares a conformance of imported type 'MTLSize' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
 2 |
 3 | /// Extension to make the MTLSize structure conform to the Codable protocol.
 4 | extension MTLSize: Codable {
   | |- warning: extension declares a conformance of imported type 'MTLSize' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
 5 |
 6 |     /// Enumeration to define the keys used for encoding and decoding the MTLSize properties.
/Users/admin/builder/spi-builder-workspace/Sources/MetalTools/Extensions/Metal/MTLTextureType/MTLTextureType+Codable.swift:4:1: warning: extension declares a conformance of imported type 'MTLTextureType' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
2 |
3 | /// Extension to make the MTLTextureType conform to the Codable protocol.
4 | extension MTLTextureType: Codable {}
  | |- warning: extension declares a conformance of imported type 'MTLTextureType' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
  | `- note: add '@retroactive' to silence this warning
5 |
/Users/admin/builder/spi-builder-workspace/Sources/MetalTools/Extensions/Metal/MTLTextureUsage/MTLTextureUsage+Codable.swift:4:1: warning: extension declares a conformance of imported type 'MTLTextureUsage' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
2 |
3 | /// Extension to make the MTLTextureUsage conform to the Codable protocol.
4 | extension MTLTextureUsage: Codable {}
  | |- warning: extension declares a conformance of imported type 'MTLTextureUsage' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
  | `- note: add '@retroactive' to silence this warning
5 |
/Users/admin/builder/spi-builder-workspace/Sources/MetalTools/Extensions/Metal/MTLSize/MTLSize+Codable.swift:4:1: warning: extension declares a conformance of imported type 'MTLSize' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
 2 |
 3 | /// Extension to make the MTLSize structure conform to the Codable protocol.
 4 | extension MTLSize: Codable {
   | |- warning: extension declares a conformance of imported type 'MTLSize' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
 5 |
 6 |     /// Enumeration to define the keys used for encoding and decoding the MTLSize properties.
/Users/admin/builder/spi-builder-workspace/Sources/MetalTools/Extensions/Metal/MTLOrigin/MTLOrigin+Codable.swift:4:1: warning: extension declares a conformance of imported type 'MTLOrigin' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
 2 |
 3 | /// Extension to make `MTLOrigin` conform to the `Codable` protocol.
 4 | extension MTLOrigin: Codable {
   | |- warning: extension declares a conformance of imported type 'MTLOrigin' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
 5 |     /// Coding keys for encoding and decoding `MTLOrigin`.
 6 |     private enum CodingKey: String, Swift.CodingKey {
/Users/admin/builder/spi-builder-workspace/Sources/MetalTools/Extensions/Metal/MTLPixelFormat/MTLPixelFormat+Codable.swift:4:1: warning: extension declares a conformance of imported type 'MTLPixelFormat' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
2 |
3 | /// Extension to make `MTLPixelFormat` conform to the `Codable` protocol.
4 | extension MTLPixelFormat: Codable {}
  | |- warning: extension declares a conformance of imported type 'MTLPixelFormat' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
  | `- note: add '@retroactive' to silence this warning
5 |
/Users/admin/builder/spi-builder-workspace/Sources/MetalTools/Extensions/Metal/MTLPixelFormat/MTLPixelFormat+Extensions.swift:71:9: warning: switch must be exhaustive
 69 |     /// The number of bytes per pixel in the format.
 70 |     var bytesPerPixel: Int? {
 71 |         switch self {
    |         |- warning: switch must be exhaustive
    |         |- note: add missing case: '.rgb8Unorm'
    |         |- note: add missing case: '.rgb8Snorm'
    |         |- note: add missing case: '.rgb8Uint'
    |         |- note: add missing case: '.rgb8Sint'
    |         |- note: add missing case: '.rgb16Unorm'
    |         |- note: add missing case: '.rgb16Snorm'
    |         |- note: add missing case: '.rgb16Uint'
    |         |- note: add missing case: '.rgb16Sint'
    |         |- note: add missing case: '.rgb16Float'
    |         |- note: add missing case: '.rgb32Uint'
    |         |- note: add missing case: '.rgb32Sint'
    |         |- note: add missing case: '.rgb32Float'
    |         |- note: add missing case: '.unspecialized'
    |         `- note: add missing cases
 72 |         case .a8Unorm, .r8Unorm, .r8Snorm, .r8Uint, .r8Sint, .stencil8, .r8Unorm_srgb:
 73 |             return 1
/Users/admin/builder/spi-builder-workspace/Sources/MetalTools/Extensions/Metal/MTLRegion/MTLRegion+Codable.swift:4:1: warning: extension declares a conformance of imported type 'MTLRegion' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
 2 |
 3 | /// Extension to make `MTLRegion` conform to the `Codable` protocol.
 4 | extension MTLRegion: Codable {
   | |- warning: extension declares a conformance of imported type 'MTLRegion' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
   | `- note: add '@retroactive' to silence this warning
 5 |     /// Coding keys for encoding and decoding `MTLRegion`.
 6 |     private enum CodingKey: String, Swift.CodingKey {
/Users/admin/builder/spi-builder-workspace/Sources/MetalTools/Extensions/Metal/MTLTextureType/MTLTextureType+Codable.swift:4:1: warning: extension declares a conformance of imported type 'MTLTextureType' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
2 |
3 | /// Extension to make the MTLTextureType conform to the Codable protocol.
4 | extension MTLTextureType: Codable {}
  | |- warning: extension declares a conformance of imported type 'MTLTextureType' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
  | `- note: add '@retroactive' to silence this warning
5 |
/Users/admin/builder/spi-builder-workspace/Sources/MetalTools/Extensions/Metal/MTLTextureUsage/MTLTextureUsage+Codable.swift:4:1: warning: extension declares a conformance of imported type 'MTLTextureUsage' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
2 |
3 | /// Extension to make the MTLTextureUsage conform to the Codable protocol.
4 | extension MTLTextureUsage: Codable {}
  | |- warning: extension declares a conformance of imported type 'MTLTextureUsage' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
  | `- note: add '@retroactive' to silence this warning
5 |
/Users/admin/builder/spi-builder-workspace/Sources/MetalTools/Extensions/Metal/MTLCPUCacheMode/MTLCPUCacheMode+Codable.swift:4:1: warning: extension declares a conformance of imported type 'MTLCPUCacheMode' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
2 |
3 | /// Extends `MTLCPUCacheMode` to conform to the `Codable` protocol.
4 | extension MTLCPUCacheMode: Codable {}
  | |- warning: extension declares a conformance of imported type 'MTLCPUCacheMode' to imported protocols 'Decodable', 'Encodable'; this will not behave correctly if the owners of 'Metal' introduce this conformance in the future
  | `- note: add '@retroactive' to silence this warning
5 |
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "metal-tools",
  "name" : "metal-tools",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "maccatalyst",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "MetalTools",
      "targets" : [
        "MetalTools"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "MetalComputeTools",
      "targets" : [
        "MetalComputeTools"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "MetalRenderingTools",
      "targets" : [
        "MetalRenderingTools"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "MetalTools",
      "module_type" : "SwiftTarget",
      "name" : "MetalTools",
      "path" : "Sources/MetalTools",
      "product_memberships" : [
        "MetalTools",
        "MetalComputeTools",
        "MetalRenderingTools"
      ],
      "sources" : [
        "CodableContainer/MTLTextureCodableContainer.swift",
        "CodableContainer/MTLTextureDescriptorCodableContainer.swift",
        "Extensions/CoreVideo/CVPixelBuffer+MTLTexture.swift",
        "Extensions/CoreVideo/CVPixelFormat+Extensions.swift",
        "Extensions/Foundation/Decoder+MTLDevice.swift",
        "Extensions/Metal/MTLBlitCommandEncoder/MTLBlitCommandEncoder+Copy.swift",
        "Extensions/Metal/MTLBuffer/MTLBuffer+Contents.swift",
        "Extensions/Metal/MTLCPUCacheMode/MTLCPUCacheMode+Codable.swift",
        "Extensions/Metal/MTLClearColor/MTLClearColor+Clear.swift",
        "Extensions/Metal/MTLCommandBuffer/MTLCommandBuffer+Dispatching.swift",
        "Extensions/Metal/MTLCommandBuffer/MTLCommandBuffer+ExecutionTime.swift",
        "Extensions/Metal/MTLCommandQueue/MTLCommandQueue+Schedule.swift",
        "Extensions/Metal/MTLCompileOptions/MTLCompileOptions+Extensions.swift",
        "Extensions/Metal/MTLComputeCommandEncoder/MTLComputeCommandEncoder+Arguments.swift",
        "Extensions/Metal/MTLComputeCommandEncoder/MTLComputeCommandEncoder+Dispatch.swift",
        "Extensions/Metal/MTLComputePipelineState/MTLComputePipelineState+Threads.swift",
        "Extensions/Metal/MTLDevice/MTLDevice+Convenience.swift",
        "Extensions/Metal/MTLDevice/MTLDevice+Features.swift",
        "Extensions/Metal/MTLDevice/MTLDevice+IsDiscrete.swift",
        "Extensions/Metal/MTLDevice/MTLDevice+MTLTexture.swift",
        "Extensions/Metal/MTLFunctionConstantValues/MTLFunctionConstantValues+SetValue.swift",
        "Extensions/Metal/MTLHeap/MTLHeap+Convenience.swift",
        "Extensions/Metal/MTLLibrary/MTLLibrary+PipelineState.swift",
        "Extensions/Metal/MTLOrigin/MTLOrigin+Clamp.swift",
        "Extensions/Metal/MTLOrigin/MTLOrigin+Codable.swift",
        "Extensions/Metal/MTLOrigin/MTLOrigin+Convenience.swift",
        "Extensions/Metal/MTLOrigin/MTLOrigin+Equitable.swift",
        "Extensions/Metal/MTLPixelFormat/MTLPixelFormat+CGBitmapInfo.swift",
        "Extensions/Metal/MTLPixelFormat/MTLPixelFormat+CVPixelFormat.swift",
        "Extensions/Metal/MTLPixelFormat/MTLPixelFormat+Codable.swift",
        "Extensions/Metal/MTLPixelFormat/MTLPixelFormat+ColorSpace.swift",
        "Extensions/Metal/MTLPixelFormat/MTLPixelFormat+Extensions.swift",
        "Extensions/Metal/MTLRegion/MTLRegion+Area.swift",
        "Extensions/Metal/MTLRegion/MTLRegion+Clamp.swift",
        "Extensions/Metal/MTLRegion/MTLRegion+Codable.swift",
        "Extensions/Metal/MTLRegion/MTLRegion+Equitable.swift",
        "Extensions/Metal/MTLRenderCommandEncoder/MTLRenderCommandEncoder+SetValue.swift",
        "Extensions/Metal/MTLRenderPassAttachmentDescriptor/MTLRenderPassAttachmentDescriptor+Extensions.swift",
        "Extensions/Metal/MTLRenderPipelineColorAttachmentDescriptor/MTLRenderPipelineColorAttachmentDescriptor+BlendingMode.swift",
        "Extensions/Metal/MTLResource/MTLResource+AccessibleOnCPU.swift",
        "Extensions/Metal/MTLResourceOptions/MTLResourceOptions+Extensions.swift",
        "Extensions/Metal/MTLSize/MTLSize+Clamp.swift",
        "Extensions/Metal/MTLSize/MTLSize+Codable.swift",
        "Extensions/Metal/MTLSize/MTLSize+Convenience.swift",
        "Extensions/Metal/MTLSize/MTLSwize+Equitable.swift",
        "Extensions/Metal/MTLSizeAndAlign/MTLSizeAndAlign+Extensions.swift",
        "Extensions/Metal/MTLStorageMode/MTLStorageMode+Extensions.swift",
        "Extensions/Metal/MTLTexture/MTLTexture+Array.swift",
        "Extensions/Metal/MTLTexture/MTLTexture+Codable.swift",
        "Extensions/Metal/MTLTexture/MTLTexture+Extensions.swift",
        "Extensions/Metal/MTLTexture/MTLTexture+Image.swift",
        "Extensions/Metal/MTLTextureDescriptor/MTLTextureDescriptor+Copy.swift",
        "Extensions/Metal/MTLTextureDescriptor/MTLTextureDescriptor+Encodable.swift",
        "Extensions/Metal/MTLTextureType/MTLTextureType+Codable.swift",
        "Extensions/Metal/MTLTextureUsage/MTLTextureUsage+Codable.swift",
        "Extensions/Metal/MTLVertexAttributeDescriptor/MTLVertexAttributeDescriptor+Extensions.swift",
        "Extensions/Metal/MTLVertexBufferLayoutDescriptor/MTLVertexAttributeDescriptorArray+Extensions.swift",
        "Extensions/MetalPerformanceShaders/MPSNNGraph/MPSNNGraph+Functors.swift",
        "Extensions/MetalPerformanceShaders/MPSUnaryImageKernel/MPSUnaryImageKernel+Functors.swift",
        "Extensions/MetalTools/MTLContext+Capture.swift",
        "Extensions/MetalTools/MTLContext+CommandQueue.swift",
        "Extensions/MetalTools/MTLContext+Device.swift",
        "MTLContext.swift",
        "Metal.swift",
        "MetalError.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "MetalRenderingToolsSharedTypes",
      "module_type" : "ClangTarget",
      "name" : "MetalRenderingToolsSharedTypes",
      "path" : "Sources/MetalRenderingToolsSharedTypes",
      "product_memberships" : [
        "MetalRenderingTools"
      ],
      "sources" : [
        "MetalRenderingToolsSharedTypes.c"
      ],
      "type" : "library"
    },
    {
      "c99name" : "MetalRenderingTools",
      "module_type" : "SwiftTarget",
      "name" : "MetalRenderingTools",
      "path" : "Sources/MetalRenderingTools",
      "product_memberships" : [
        "MetalRenderingTools"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalRenderingTools/Renderers/Common/Common.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalRenderingTools/Renderers/LinesRenderer/LinesRenderer.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalRenderingTools/Renderers/MaskRenderer/MaskRenderer.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalRenderingTools/Renderers/PointsRenderer/PointsRenderer.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalRenderingTools/Renderers/RectangleRender/RectangleRender.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalRenderingTools/Renderers/SimpleGeometryRender/SimpleGeometryRender.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalRenderingTools/Renderers/TextRender/TextRender.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalRenderingTools/Resources/HelveticaNeue.mtlfontatlas",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "Core/GlyphDescriptor.swift",
        "Core/MTLFontAtlasProvider.swift",
        "Core/MTLIndexBuffer.swift",
        "Core/TextMesh.swift",
        "Extensions/Metal/MTLRenderCommandEncoder+Draw.swift",
        "Extensions/UIKit/UIFont+Rect.swift",
        "MTLFontAtlas/MTLFontAtlas.swift",
        "MTLFontAtlas/MTLFontAtlasCodableContainer.swift",
        "MTLFontAtlas/MTLFontAtlasDescriptor.swift",
        "MetalTools.swift",
        "Renderers/BoundingBoxesRenderer/BoundingBoxesRenderer.swift.swift",
        "Renderers/LabelRender/LabelRender.swift",
        "Renderers/LinesRenderer/LinesRenderer.swift",
        "Renderers/MaskRenderer/MaskRenderer.swift",
        "Renderers/PointsRenderer/PointsRenderer.swift",
        "Renderers/RectangleRender/RectangleRender.swift",
        "Renderers/SimpleGeometryRender/SimpleGeometryRender.swift",
        "Renderers/TextRender/TextRender.swift"
      ],
      "target_dependencies" : [
        "MetalRenderingToolsSharedTypes",
        "MetalComputeTools"
      ],
      "type" : "library"
    },
    {
      "c99name" : "MetalComputeToolsTestsResources",
      "module_type" : "SwiftTarget",
      "name" : "MetalComputeToolsTestsResources",
      "path" : "Tests/MetalComputeToolsTestsResources",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/MetalComputeToolsTestsResources/Shared",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "Extensions/Foundation/Bundle+TestsResources.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "MetalComputeToolsTests",
      "module_type" : "SwiftTarget",
      "name" : "MetalComputeToolsTests",
      "path" : "Tests/MetalComputeToolsTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/MetalComputeToolsTests/Shaders/Shaders.metal",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "BitonicSortTests.swift",
        "Encoders/SwitchDataFormatEncoder.swift",
        "EuclideanDistanceTests.swift",
        "Extensions/CoreGraphics/CGImage+Extensions.swift",
        "Extensions/Metal/MTLPixelFormat+Extensions.swift",
        "IntegralImageTests.swift",
        "TextureCachingTests.swift"
      ],
      "target_dependencies" : [
        "MetalComputeTools",
        "MetalComputeToolsTestsResources"
      ],
      "type" : "test"
    },
    {
      "c99name" : "MetalComputeToolsSharedTypes",
      "module_type" : "ClangTarget",
      "name" : "MetalComputeToolsSharedTypes",
      "path" : "Sources/MetalComputeToolsSharedTypes",
      "product_memberships" : [
        "MetalComputeTools",
        "MetalRenderingTools"
      ],
      "sources" : [
        "MetalComputeToolsSharedTypes.c"
      ],
      "type" : "library"
    },
    {
      "c99name" : "MetalComputeTools",
      "module_type" : "SwiftTarget",
      "name" : "MetalComputeTools",
      "path" : "Sources/MetalComputeTools",
      "product_memberships" : [
        "MetalComputeTools",
        "MetalRenderingTools"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/BitonicSort/BitonicSort.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/EuclideanDistance/EuclideanDistance.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/IntegralImage/IntegralImage.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/LookUpTable/LookUpTable.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/MaskGuidedBlur/MaskGuidedBlur.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/QuantizeDistanceField/QuantizeDistanceField.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/RGBAToYCbCr/RGBAToYCbCr.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/StdMeanNormalization/StdMeanNormalization.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/TextureAddConstant/TextureAddConstant.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/TextureAffineCrop/TextureAffineCrop.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/TextureCopy/TextureCopy.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/TextureDifferenceHighlight/TextureDifferenceHighlight.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/TextureDivideByConstant/TextureDivideByConstant.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/TextureInterpolation/TextureInterpolation.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/TextureMask/TextureMask.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/TextureMaskedMix/TextureMaskedMix.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/TextureMax/TextureMax.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/TextureMean/TextureMean.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/TextureMin/TextureMin.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/TextureMix/TextureMix.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/TextureMultiplyAdd/TextureMultiplyAdd.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/TextureResize/TextureResize.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/TextureWeightedMix/TextureWeightedMix.metal",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/MetalComputeTools/Kernels/YCbCrToRGBA/YCbCrToRGBA.metal",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "Extensions/SIMD/float3x3+Extensions.swift",
        "Kernels/BitonicSort/BitonicSort.swift",
        "Kernels/BitonicSort/BitonicSortFinalPass.swift",
        "Kernels/BitonicSort/BitonicSortFirstPass.swift",
        "Kernels/BitonicSort/BitonicSortGeneralPass.swift",
        "Kernels/EuclideanDistance/EuclideanDistance.swift",
        "Kernels/IntegralImage/IntegralImage.swift",
        "Kernels/LookUpTable/LookUpTable.swift",
        "Kernels/MPSUnaryImageKernels/MPSUnaryImageKernels.swift",
        "Kernels/MaskGuidedBlur/MaskGuidedBlur.swift",
        "Kernels/QuantizeDistanceField/QuantizeDistanceField.swift",
        "Kernels/RGBAToYCbCr/RGBAToYCbCr.swift",
        "Kernels/StdMeanNormalization/StdMeanNormalization.swift",
        "Kernels/TextureAddConstant/TextureAddConstant.swift",
        "Kernels/TextureAffineCrop/TextureAffineCrop.swift",
        "Kernels/TextureCopy/TextureCopy.swift",
        "Kernels/TextureDifferenceHighlight/TextureDifferenceHighlight.swift",
        "Kernels/TextureDivideByConstant/TextureDivideByConstant.swift",
        "Kernels/TextureInterpolation/TextureInterpolation.swift",
        "Kernels/TextureMask/TextureMask.swift",
        "Kernels/TextureMaskedMix/TextureMaskedMix.swift",
        "Kernels/TextureMax/TextureMax.swift",
        "Kernels/TextureMean/TextureMean.swift",
        "Kernels/TextureMin/TextureMin.swift",
        "Kernels/TextureMix/TextureMix.swift",
        "Kernels/TextureMultiplyAdd/TextureMultiplyAdd.swift",
        "Kernels/TextureNormalization/TextureNormalization.swift",
        "Kernels/TextureResize/TextureResize.swift",
        "Kernels/TextureWeightedMix/TextureWeightedMix.swift",
        "Kernels/YCbCrToRGBA/YCbCrToRGBA.swift",
        "MetalTools.swift"
      ],
      "target_dependencies" : [
        "MetalComputeToolsSharedTypes",
        "MetalTools"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.