The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of metal-tools, reference 1.3.5 (e24169), with Swift 6.2 (beta) for macOS (SPM) on 23 Jun 2025 01:32:03 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/computer-graphics-tools/metal-tools.git
Reference: 1.3.5
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/computer-graphics-tools/metal-tools
 * tag               1.3.5      -> FETCH_HEAD
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 1.3.5
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.2
Building package at path:  $PWD
https://github.com/computer-graphics-tools/metal-tools.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64
Building for debugging...
[0/40] Write sources
[1/40] Copying EuclideanDistance.metal
[1/40] Write sources
[4/40] Copying BitonicSort.metal
[5/40] Copying TextRender.metal
[6/40] Copying SimpleGeometryRender.metal
[7/40] Copying RectangleRender.metal
[8/40] Copying PointsRenderer.metal
[8/40] Copying LinesRenderer.metal
[8/40] Copying MaskRenderer.metal
[12/40] Copying Common.metal
[13/40] Copying TextureWeightedMix.metal
[13/40] Copying TextureResize.metal
[13/40] Copying HelveticaNeue.mtlfontatlas
[15/40] Copying YCbCrToRGBA.metal
[17/40] Copying TextureMultiplyAdd.metal
[17/40] Copying TextureMix.metal
[18/40] Copying TextureMax.metal
[18/40] Copying TextureMin.metal
[20/40] Copying TextureMaskedMix.metal
[21/40] Copying Shared
[23/40] Copying TextureMean.metal
[24/40] Copying TextureMask.metal
[24/40] Copying TextureInterpolation.metal
[26/40] Copying TextureCopy.metal
[26/40] Copying TextureAffineCrop.metal
[26/40] Copying TextureAddConstant.metal
[26/40] Copying TextureDivideByConstant.metal
[28/40] Copying RGBAToYCbCr.metal
[29/40] Copying TextureDifferenceHighlight.metal
[32/40] Copying StdMeanNormalization.metal
[32/40] Copying QuantizeDistanceField.metal
[33/40] Copying IntegralImage.metal
[33/40] Copying LookUpTable.metal
[36/40] Copying MaskGuidedBlur.metal
[37/40] Write swift-version-1EA4D86E10B52AF.txt
[38/103] Compiling MetalComputeToolsSharedTypes MetalComputeToolsSharedTypes.c
[38/103] Compiling MetalRenderingToolsSharedTypes MetalRenderingToolsSharedTypes.c
[41/103] Compiling MetalComputeToolsTestsResources Bundle+TestsResources.swift
[42/103] Emitting module MetalComputeToolsTestsResources
[43/103] Compiling MetalComputeToolsTestsResources resource_bundle_accessor.swift
[44/103] Emitting module MetalTools
[45/109] Compiling MetalTools MTLRegion+Equitable.swift
[46/109] Compiling MetalTools MTLRenderCommandEncoder+SetValue.swift
[47/109] Compiling MetalTools MTLRenderPassAttachmentDescriptor+Extensions.swift
[48/109] Compiling MetalTools MTLRenderPipelineColorAttachmentDescriptor+BlendingMode.swift
[49/109] Compiling MetalTools MTLResource+AccessibleOnCPU.swift
[50/109] Compiling MetalTools MTLResourceOptions+Extensions.swift
[51/109] Compiling MetalTools MTLHeap+Convenience.swift
[52/109] Compiling MetalTools MTLLibrary+PipelineState.swift
[53/109] Compiling MetalTools MTLOrigin+Clamp.swift
[54/109] Compiling MetalTools MTLOrigin+Codable.swift
[55/109] Compiling MetalTools MTLOrigin+Convenience.swift
[56/109] Compiling MetalTools MTLOrigin+Equitable.swift
[57/109] Compiling MetalTools MTLPixelFormat+CGBitmapInfo.swift
[58/109] Compiling MetalTools MTLSize+Clamp.swift
[59/109] Compiling MetalTools MTLSize+Codable.swift
[60/109] Compiling MetalTools MTLSize+Convenience.swift
[61/109] Compiling MetalTools MTLSwize+Equitable.swift
[62/109] Compiling MetalTools MTLSizeAndAlign+Extensions.swift
[63/109] Compiling MetalTools MTLStorageMode+Extensions.swift
[64/109] Compiling MetalTools MTLTextureType+Codable.swift
[65/109] Compiling MetalTools MTLTextureUsage+Codable.swift
[66/109] Compiling MetalTools MTLVertexAttributeDescriptor+Extensions.swift
[67/109] Compiling MetalTools MTLVertexAttributeDescriptorArray+Extensions.swift
[68/109] Compiling MetalTools MPSNNGraph+Functors.swift
[69/109] Compiling MetalTools MPSUnaryImageKernel+Functors.swift
[70/109] Compiling MetalTools MTLCPUCacheMode+Codable.swift
[71/109] Compiling MetalTools MTLClearColor+Clear.swift
[72/109] Compiling MetalTools MTLCommandBuffer+Dispatching.swift
[73/109] Compiling MetalTools MTLCommandBuffer+ExecutionTime.swift
[74/109] Compiling MetalTools MTLCommandQueue+Schedule.swift
[75/109] Compiling MetalTools MTLCompileOptions+Extensions.swift
[76/109] Compiling MetalTools MTLComputeCommandEncoder+Arguments.swift
[77/109] Compiling MetalTools MTLTextureCodableContainer.swift
[78/109] Compiling MetalTools MTLTextureDescriptorCodableContainer.swift
[79/109] Compiling MetalTools CVPixelBuffer+MTLTexture.swift
[80/109] Compiling MetalTools CVPixelFormat+Extensions.swift
[81/109] Compiling MetalTools Decoder+MTLDevice.swift
[82/109] Compiling MetalTools MTLBlitCommandEncoder+Copy.swift
[83/109] Compiling MetalTools MTLBuffer+Contents.swift
[84/109] Compiling MetalTools MTLContext+Capture.swift
[85/109] Compiling MetalTools MTLContext+CommandQueue.swift
[86/109] Compiling MetalTools MTLContext+Device.swift
[87/109] Compiling MetalTools MTLContext.swift
[88/109] Compiling MetalTools Metal.swift
[89/109] Compiling MetalTools MetalError.swift
[90/109] Compiling MetalTools MTLPixelFormat+CVPixelFormat.swift
/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: '.unspecialized'
 72 |         case .a8Unorm, .r8Unorm, .r8Snorm, .r8Uint, .r8Sint, .stencil8, .r8Unorm_srgb:
 73 |             return 1
[91/109] Compiling MetalTools MTLPixelFormat+Codable.swift
/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: '.unspecialized'
 72 |         case .a8Unorm, .r8Unorm, .r8Snorm, .r8Uint, .r8Sint, .stencil8, .r8Unorm_srgb:
 73 |             return 1
[92/109] Compiling MetalTools MTLPixelFormat+ColorSpace.swift
/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: '.unspecialized'
 72 |         case .a8Unorm, .r8Unorm, .r8Snorm, .r8Uint, .r8Sint, .stencil8, .r8Unorm_srgb:
 73 |             return 1
[93/109] Compiling MetalTools MTLPixelFormat+Extensions.swift
/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: '.unspecialized'
 72 |         case .a8Unorm, .r8Unorm, .r8Snorm, .r8Uint, .r8Sint, .stencil8, .r8Unorm_srgb:
 73 |             return 1
[94/109] Compiling MetalTools MTLRegion+Area.swift
/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: '.unspecialized'
 72 |         case .a8Unorm, .r8Unorm, .r8Snorm, .r8Uint, .r8Sint, .stencil8, .r8Unorm_srgb:
 73 |             return 1
[95/109] Compiling MetalTools MTLRegion+Clamp.swift
/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: '.unspecialized'
 72 |         case .a8Unorm, .r8Unorm, .r8Snorm, .r8Uint, .r8Sint, .stencil8, .r8Unorm_srgb:
 73 |             return 1
[96/109] Compiling MetalTools MTLRegion+Codable.swift
/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: '.unspecialized'
 72 |         case .a8Unorm, .r8Unorm, .r8Snorm, .r8Uint, .r8Sint, .stencil8, .r8Unorm_srgb:
 73 |             return 1
[97/109] Compiling MetalTools MTLComputeCommandEncoder+Dispatch.swift
[98/109] Compiling MetalTools MTLComputePipelineState+Threads.swift
[99/109] Compiling MetalTools MTLDevice+Convenience.swift
[100/109] Compiling MetalTools MTLDevice+Features.swift
[101/109] Compiling MetalTools MTLDevice+IsDiscrete.swift
[102/109] Compiling MetalTools MTLDevice+MTLTexture.swift
[103/109] Compiling MetalTools MTLFunctionConstantValues+SetValue.swift
[104/109] Compiling MetalTools MTLTexture+Array.swift
[105/109] Compiling MetalTools MTLTexture+Codable.swift
[106/109] Compiling MetalTools MTLTexture+Extensions.swift
[107/109] Compiling MetalTools MTLTexture+Image.swift
[108/109] Compiling MetalTools MTLTextureDescriptor+Copy.swift
[109/109] Compiling MetalTools MTLTextureDescriptor+Encodable.swift
[110/139] Compiling MetalComputeTools TextureNormalization.swift
[111/139] Compiling MetalComputeTools TextureResize.swift
[112/139] Compiling MetalComputeTools TextureWeightedMix.swift
[113/142] Compiling MetalComputeTools RGBAToYCbCr.swift
[114/142] Compiling MetalComputeTools StdMeanNormalization.swift
[115/142] Compiling MetalComputeTools TextureAddConstant.swift
[116/142] Compiling MetalComputeTools TextureMaskedMix.swift
[117/142] Compiling MetalComputeTools TextureMax.swift
[118/142] Compiling MetalComputeTools TextureMean.swift
[119/142] Compiling MetalComputeTools MPSUnaryImageKernels.swift
[120/142] Compiling MetalComputeTools MaskGuidedBlur.swift
[121/142] Compiling MetalComputeTools QuantizeDistanceField.swift
[122/142] Compiling MetalComputeTools TextureAffineCrop.swift
[123/142] Compiling MetalComputeTools TextureCopy.swift
[124/142] Compiling MetalComputeTools TextureDifferenceHighlight.swift
[125/142] Emitting module MetalComputeTools
[126/142] Compiling MetalComputeTools float3x3+Extensions.swift
[127/142] Compiling MetalComputeTools BitonicSort.swift
[128/142] Compiling MetalComputeTools BitonicSortFinalPass.swift
[129/142] Compiling MetalComputeTools BitonicSortFirstPass.swift
[130/142] Compiling MetalComputeTools BitonicSortGeneralPass.swift
[131/142] Compiling MetalComputeTools EuclideanDistance.swift
[132/142] Compiling MetalComputeTools IntegralImage.swift
[133/142] Compiling MetalComputeTools LookUpTable.swift
[134/142] Compiling MetalComputeTools TextureDivideByConstant.swift
[135/142] Compiling MetalComputeTools TextureInterpolation.swift
[136/142] Compiling MetalComputeTools TextureMask.swift
[137/142] Compiling MetalComputeTools TextureMin.swift
[138/142] Compiling MetalComputeTools TextureMix.swift
[139/142] Compiling MetalComputeTools TextureMultiplyAdd.swift
[140/142] Compiling MetalComputeTools YCbCrToRGBA.swift
[141/142] Compiling MetalComputeTools MetalTools.swift
[142/142] Compiling MetalComputeTools resource_bundle_accessor.swift
[143/161] Compiling MetalRenderingTools GlyphDescriptor.swift
[144/161] Compiling MetalRenderingTools MTLFontAtlasProvider.swift
[145/161] Compiling MetalRenderingTools MTLFontAtlas.swift
[146/161] Compiling MetalRenderingTools MTLFontAtlasCodableContainer.swift
[147/161] Compiling MetalRenderingTools MTLIndexBuffer.swift
[148/161] Compiling MetalRenderingTools TextMesh.swift
[149/161] Emitting module MetalRenderingTools
[150/161] Compiling MetalRenderingTools MTLFontAtlasDescriptor.swift
[151/161] Compiling MetalRenderingTools MetalTools.swift
[152/162] Compiling MetalRenderingTools BoundingBoxesRenderer.swift.swift
[153/162] Compiling MetalRenderingTools LabelRender.swift
[154/162] Compiling MetalRenderingTools SimpleGeometryRender.swift
[155/162] Compiling MetalRenderingTools TextRender.swift
[156/162] Compiling MetalRenderingTools LinesRenderer.swift
[157/162] Compiling MetalRenderingTools MaskRenderer.swift
[158/162] Compiling MetalRenderingTools PointsRenderer.swift
[159/162] Compiling MetalRenderingTools RectangleRender.swift
[160/162] Compiling MetalRenderingTools MTLRenderCommandEncoder+Draw.swift
[161/162] Compiling MetalRenderingTools UIFont+Rect.swift
[162/162] Compiling MetalRenderingTools resource_bundle_accessor.swift
Build complete! (11.29s)
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.