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 fx-upscale, reference main (d9ee19), with Swift 6.2 (beta) for macOS (SPM) on 8 Jul 2025 11:38:48 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/finnvoor/fx-upscale.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/finnvoor/fx-upscale
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at d9ee19a Update CI (#24)
Cloned https://github.com/finnvoor/fx-upscale.git
Revision (git rev-parse @):
d9ee19afb85c5de9818ea32a7857fdf140b62ded
SUCCESS checkout https://github.com/finnvoor/fx-upscale.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.2
Building package at path:  $PWD
https://github.com/finnvoor/fx-upscale.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64
[1/1] Compiling plugin GenerateManual
[2/2] Compiling plugin GenerateDoccReference
Building for debugging...
[2/12] Write sources
[2/12] Write fx-upscale-entitlement.plist
[8/12] Write swift-version-1EA4D86E10B52AF.txt
[10/34] Compiling ArgumentParserToolInfo ToolInfo.swift
[11/34] Emitting module ArgumentParserToolInfo
[12/80] Compiling SwiftTUI String+ANSI.swift
[13/80] Compiling SwiftTUI Window.swift
[14/80] Compiling SwiftTUI Key.swift
[15/80] Compiling SwiftTUI Termios.swift
[16/80] Compiling SwiftTUI ActivityIndicator.swift
[17/80] Emitting module SwiftTUI
[18/80] Compiling SwiftTUI CommandLine.swift
[19/80] Compiling SwiftTUI Cursor.swift
[20/80] Compiling SwiftTUI ProgressBar.swift
[21/80] Compiling ArgumentParser CommandConfiguration.swift
[22/80] Compiling ArgumentParser CommandGroup.swift
[23/80] Compiling ArgumentParser EnumerableFlag.swift
[24/80] Compiling ArgumentParser ExpressibleByArgument.swift
[25/80] Compiling ArgumentParser ParsableArguments.swift
[26/84] Compiling ArgumentParser SequenceExtensions.swift
[27/84] Compiling ArgumentParser StringExtensions.swift
[28/84] Compiling ArgumentParser SwiftExtensions.swift
[29/84] Compiling ArgumentParser Tree.swift
[30/84] Compiling ArgumentParser CodingKeyValidator.swift
[31/84] Compiling ArgumentParser BashCompletionsGenerator.swift
[32/84] Compiling ArgumentParser CompletionsGenerator.swift
[33/84] Compiling ArgumentParser FishCompletionsGenerator.swift
[34/84] Compiling ArgumentParser ZshCompletionsGenerator.swift
[35/84] Compiling ArgumentParser Argument.swift
[36/84] Compiling ArgumentParser NonsenseFlagsValidator.swift
[37/84] Compiling ArgumentParser ParsableArgumentsValidation.swift
[38/84] Compiling ArgumentParser PositionalArgumentsValidator.swift
[39/84] Compiling ArgumentParser UniqueNamesValidator.swift
[40/84] Compiling ArgumentParser MessageInfo.swift
[41/84] Compiling ArgumentParser UsageGenerator.swift
[42/84] Compiling ArgumentParser CollectionExtensions.swift
[43/84] Compiling ArgumentParser Mutex.swift
[44/84] Compiling ArgumentParser Platform.swift
[45/84] Compiling ArgumentParser Flag.swift
[46/84] Compiling ArgumentParser NameSpecification.swift
[47/84] Compiling ArgumentParser Option.swift
[48/84] Compiling ArgumentParser OptionGroup.swift
[49/84] Compiling ArgumentParser AsyncParsableCommand.swift
[50/84] Compiling ArgumentParser InputKey.swift
[51/84] Compiling ArgumentParser InputOrigin.swift
[52/84] Compiling ArgumentParser Name.swift
[53/84] Compiling ArgumentParser Parsed.swift
[54/84] Compiling ArgumentParser ParsedValues.swift
[55/84] Emitting module ArgumentParser
[56/84] Compiling ArgumentParser ParserError.swift
[57/84] Compiling ArgumentParser SplitArguments.swift
[58/84] Compiling ArgumentParser DumpHelpGenerator.swift
[59/84] Compiling ArgumentParser HelpCommand.swift
[60/84] Compiling ArgumentParser HelpGenerator.swift
[61/84] Compiling ArgumentParser ArgumentDiscussion.swift
[62/84] Compiling ArgumentParser ArgumentHelp.swift
[63/84] Compiling ArgumentParser ArgumentVisibility.swift
[64/84] Compiling ArgumentParser CompletionKind.swift
[65/84] Compiling ArgumentParser Errors.swift
[66/84] Compiling ArgumentParser ParsableCommand.swift
[67/84] Compiling ArgumentParser ArgumentDecoder.swift
[68/84] Compiling ArgumentParser ArgumentDefinition.swift
[69/84] Compiling ArgumentParser ArgumentSet.swift
[70/84] Compiling ArgumentParser CommandParser.swift
[71/84] Compiling Upscaling MTLTexture+Extensions.swift
[72/85] Compiling Upscaling CVPixelBuffer+Extensions.swift
[73/85] Compiling Upscaling MTLFXSpatialScaler+Extensions.swift
[74/85] Compiling Upscaling MTLFXSpatialScalerDescriptor+Extensions.swift
[75/85] Compiling Upscaling AVVideoCodecType+Extensions.swift
[78/85] Compiling Upscaling CMFormatDescription+Extensions.swift
[79/85] Emitting module Upscaling
[80/85] Compiling Upscaling URL+Extensions.swift
[81/85] Compiling Upscaling Upscaler.swift
[82/85] Compiling Upscaling UpscalingExportSession.swift
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:344:23: warning: capture of 'assetWriterInput' with non-sendable type 'AVAssetWriterInput' in a '@Sendable' closure [#SendableClosureCaptures]
342 |             )
343 |             assetWriterInput.requestMediaDataWhenReady(on: queue) {
344 |                 while assetWriterInput.isReadyForMoreMediaData {
    |                       `- warning: capture of 'assetWriterInput' with non-sendable type 'AVAssetWriterInput' in a '@Sendable' closure [#SendableClosureCaptures]
345 |                     if let nextSampleBuffer = assetReaderOutput.copyNextSampleBuffer() {
346 |                         if nextSampleBuffer.presentationTimeStamp.isNumeric {
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:38:12: note: class 'AVAssetWriterInput' does not conform to the 'Sendable' protocol
 36 | /// As of macOS 10.10 and iOS 8.0 AVAssetWriterInput can also be used to create tracks that are not self-contained. Such tracks reference sample data that is located in another file. This is currently supported only for instances of AVAssetWriterInput attached to an instance of AVAssetWriter that writes files of type AVFileTypeQuickTimeMovie.
 37 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
 38 | @interface AVAssetWriterInput : NSObject
    |            `- note: class 'AVAssetWriterInput' does not conform to the 'Sendable' protocol
 39 | {
 40 | @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:1:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
  1 | import AVFoundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
  2 | import VideoToolbox
  3 |
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:345:47: warning: capture of 'assetReaderOutput' with non-sendable type 'AVAssetReaderOutput' in a '@Sendable' closure [#SendableClosureCaptures]
343 |             assetWriterInput.requestMediaDataWhenReady(on: queue) {
344 |                 while assetWriterInput.isReadyForMoreMediaData {
345 |                     if let nextSampleBuffer = assetReaderOutput.copyNextSampleBuffer() {
    |                                               `- warning: capture of 'assetReaderOutput' with non-sendable type 'AVAssetReaderOutput' in a '@Sendable' closure [#SendableClosureCaptures]
346 |                         if nextSampleBuffer.presentationTimeStamp.isNumeric {
347 |                             progress.completedUnitCount = Int64(nextSampleBuffer.presentationTimeStamp.seconds)
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReaderOutput.h:42:12: note: class 'AVAssetReaderOutput' does not conform to the 'Sendable' protocol
 40 |  */
 41 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
 42 | @interface AVAssetReaderOutput : NSObject
    |            `- note: class 'AVAssetReaderOutput' does not conform to the 'Sendable' protocol
 43 | {
 44 | @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:381:23: warning: capture of 'assetWriterInput' with non-sendable type 'AVAssetWriterInput' in a '@Sendable' closure [#SendableClosureCaptures]
379 |             )
380 |             assetWriterInput.requestMediaDataWhenReady(on: queue) {
381 |                 while assetWriterInput.isReadyForMoreMediaData {
    |                       `- warning: capture of 'assetWriterInput' with non-sendable type 'AVAssetWriterInput' in a '@Sendable' closure [#SendableClosureCaptures]
382 |                     if let nextSampleBuffer = assetReaderOutput.copyNextSampleBuffer() {
383 |                         if nextSampleBuffer.presentationTimeStamp.isNumeric {
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:38:12: note: class 'AVAssetWriterInput' does not conform to the 'Sendable' protocol
 36 | /// As of macOS 10.10 and iOS 8.0 AVAssetWriterInput can also be used to create tracks that are not self-contained. Such tracks reference sample data that is located in another file. This is currently supported only for instances of AVAssetWriterInput attached to an instance of AVAssetWriter that writes files of type AVFileTypeQuickTimeMovie.
 37 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
 38 | @interface AVAssetWriterInput : NSObject
    |            `- note: class 'AVAssetWriterInput' does not conform to the 'Sendable' protocol
 39 | {
 40 | @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:382:47: warning: capture of 'assetReaderOutput' with non-sendable type 'AVAssetReaderOutput' in a '@Sendable' closure [#SendableClosureCaptures]
380 |             assetWriterInput.requestMediaDataWhenReady(on: queue) {
381 |                 while assetWriterInput.isReadyForMoreMediaData {
382 |                     if let nextSampleBuffer = assetReaderOutput.copyNextSampleBuffer() {
    |                                               `- warning: capture of 'assetReaderOutput' with non-sendable type 'AVAssetReaderOutput' in a '@Sendable' closure [#SendableClosureCaptures]
383 |                         if nextSampleBuffer.presentationTimeStamp.isNumeric {
384 |                             let timestamp = Int64(nextSampleBuffer.presentationTimeStamp.seconds)
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReaderOutput.h:42:12: note: class 'AVAssetReaderOutput' does not conform to the 'Sendable' protocol
 40 |  */
 41 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
 42 | @interface AVAssetReaderOutput : NSObject
    |            `- note: class 'AVAssetReaderOutput' does not conform to the 'Sendable' protocol
 43 | {
 44 | @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:390:55: warning: capture of 'upscaler' with non-sendable type 'Upscaler' in a '@Sendable' closure [#SendableClosureCaptures]
388 |                         }
389 |                         if let imageBuffer = nextSampleBuffer.imageBuffer {
390 |                             let upscaledImageBuffer = upscaler.upscale(
    |                                                       `- warning: capture of 'upscaler' with non-sendable type 'Upscaler' in a '@Sendable' closure [#SendableClosureCaptures]
391 |                                 imageBuffer,
392 |                                 pixelBufferPool: adaptor.pixelBufferPool
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/Upscaler.swift:11:20: note: class 'Upscaler' does not conform to the 'Sendable' protocol
  9 | // MARK: - Upscaler
 10 |
 11 | public final class Upscaler {
    |                    `- note: class 'Upscaler' does not conform to the 'Sendable' protocol
 12 |     // MARK: Lifecycle
 13 |
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:392:50: warning: capture of 'adaptor' with non-sendable type 'AVAssetWriterInputPixelBufferAdaptor' in a '@Sendable' closure [#SendableClosureCaptures]
390 |                             let upscaledImageBuffer = upscaler.upscale(
391 |                                 imageBuffer,
392 |                                 pixelBufferPool: adaptor.pixelBufferPool
    |                                                  `- warning: capture of 'adaptor' with non-sendable type 'AVAssetWriterInputPixelBufferAdaptor' in a '@Sendable' closure [#SendableClosureCaptures]
393 |                             )
394 |                             guard adaptor.append(
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:552:12: note: class 'AVAssetWriterInputPixelBufferAdaptor' does not conform to the 'Sendable' protocol
550 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
551 | #endif
552 | @interface AVAssetWriterInputPixelBufferAdaptor : NSObject
    |            `- note: class 'AVAssetWriterInputPixelBufferAdaptor' does not conform to the 'Sendable' protocol
553 | {
554 | @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:434:23: warning: capture of 'assetWriterInput' with non-sendable type 'AVAssetWriterInput' in a '@Sendable' closure [#SendableClosureCaptures]
432 |             )
433 |             assetWriterInput.requestMediaDataWhenReady(on: queue) {
434 |                 while assetWriterInput.isReadyForMoreMediaData {
    |                       `- warning: capture of 'assetWriterInput' with non-sendable type 'AVAssetWriterInput' in a '@Sendable' closure [#SendableClosureCaptures]
435 |                     if let nextSampleBuffer = assetReaderOutput.copyNextSampleBuffer() {
436 |                         if nextSampleBuffer.presentationTimeStamp.isNumeric {
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:38:12: note: class 'AVAssetWriterInput' does not conform to the 'Sendable' protocol
 36 | /// As of macOS 10.10 and iOS 8.0 AVAssetWriterInput can also be used to create tracks that are not self-contained. Such tracks reference sample data that is located in another file. This is currently supported only for instances of AVAssetWriterInput attached to an instance of AVAssetWriter that writes files of type AVFileTypeQuickTimeMovie.
 37 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
 38 | @interface AVAssetWriterInput : NSObject
    |            `- note: class 'AVAssetWriterInput' does not conform to the 'Sendable' protocol
 39 | {
 40 | @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:435:47: warning: capture of 'assetReaderOutput' with non-sendable type 'AVAssetReaderOutput' in a '@Sendable' closure [#SendableClosureCaptures]
433 |             assetWriterInput.requestMediaDataWhenReady(on: queue) {
434 |                 while assetWriterInput.isReadyForMoreMediaData {
435 |                     if let nextSampleBuffer = assetReaderOutput.copyNextSampleBuffer() {
    |                                               `- warning: capture of 'assetReaderOutput' with non-sendable type 'AVAssetReaderOutput' in a '@Sendable' closure [#SendableClosureCaptures]
436 |                         if nextSampleBuffer.presentationTimeStamp.isNumeric {
437 |                             let timestamp = Int64(nextSampleBuffer.presentationTimeStamp.seconds)
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReaderOutput.h:42:12: note: class 'AVAssetReaderOutput' does not conform to the 'Sendable' protocol
 40 |  */
 41 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
 42 | @interface AVAssetReaderOutput : NSObject
    |            `- note: class 'AVAssetReaderOutput' does not conform to the 'Sendable' protocol
 43 | {
 44 | @private
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:457:62: warning: capture of 'upscaler' with non-sendable type 'Upscaler' in a '@Sendable' closure [#SendableClosureCaptures]
455 |                                 return
456 |                             }
457 |                             let upscaledLeftEyePixelBuffer = upscaler.upscale(
    |                                                              `- warning: capture of 'upscaler' with non-sendable type 'Upscaler' in a '@Sendable' closure [#SendableClosureCaptures]
458 |                                 leftEyePixelBuffer,
459 |                                 pixelBufferPool: adaptor.pixelBufferPool
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/Upscaler.swift:11:20: note: class 'Upscaler' does not conform to the 'Sendable' protocol
  9 | // MARK: - Upscaler
 10 |
 11 | public final class Upscaler {
    |                    `- note: class 'Upscaler' does not conform to the 'Sendable' protocol
 12 |     // MARK: Lifecycle
 13 |
/Users/admin/builder/spi-builder-workspace/Sources/Upscaling/UpscalingExportSession.swift:459:50: warning: capture of 'adaptor' with non-sendable type 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' in a '@Sendable' closure [#SendableClosureCaptures]
457 |                             let upscaledLeftEyePixelBuffer = upscaler.upscale(
458 |                                 leftEyePixelBuffer,
459 |                                 pixelBufferPool: adaptor.pixelBufferPool
    |                                                  `- warning: capture of 'adaptor' with non-sendable type 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' in a '@Sendable' closure [#SendableClosureCaptures]
460 |                             )
461 |                             let upscaledRightEyePixelBuffer = upscaler.upscale(
/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:645:12: note: class 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' does not conform to the 'Sendable' protocol
643 | API_AVAILABLE(macos(14.0), ios(17.0), visionos(1.0)) API_UNAVAILABLE(tvos, watchos)
644 | #endif
645 | @interface AVAssetWriterInputTaggedPixelBufferGroupAdaptor : NSObject
    |            `- note: class 'AVAssetWriterInputTaggedPixelBufferGroupAdaptor' does not conform to the 'Sendable' protocol
646 | AV_INIT_UNAVAILABLE
647 |
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[83/87] Compiling fx_upscale FXUpscale.swift
[84/87] Emitting module fx_upscale
[84/87] Write Objects.LinkFileList
[85/87] Linking fx-upscale
[86/87] Applying fx-upscale
Build complete! (16.65s)
Fetching https://github.com/Finnvoor/SwiftTUI.git
Fetching https://github.com/apple/swift-argument-parser.git
[1/80] Fetching swifttui
[81/15604] Fetching swifttui, swift-argument-parser
Fetched https://github.com/apple/swift-argument-parser.git from cache (1.54s)
Fetched https://github.com/Finnvoor/SwiftTUI.git from cache (1.54s)
Computing version for https://github.com/Finnvoor/SwiftTUI.git
Computed https://github.com/Finnvoor/SwiftTUI.git at 1.0.4 (1.95s)
Computing version for https://github.com/apple/swift-argument-parser.git
Computed https://github.com/apple/swift-argument-parser.git at 1.6.1 (0.42s)
Creating working copy for https://github.com/Finnvoor/SwiftTUI.git
Working copy of https://github.com/Finnvoor/SwiftTUI.git resolved at 1.0.4
Creating working copy for https://github.com/apple/swift-argument-parser.git
Working copy of https://github.com/apple/swift-argument-parser.git resolved at 1.6.1
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-argument-parser",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.2.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-argument-parser.git"
    },
    {
      "identity" : "swifttui",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.4",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/Finnvoor/SwiftTUI.git"
    }
  ],
  "manifest_display_name" : "fx-upscale",
  "name" : "fx-upscale",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "13.0"
    },
    {
      "name" : "ios",
      "version" : "16.0"
    }
  ],
  "products" : [
    {
      "name" : "fx-upscale",
      "targets" : [
        "fx-upscale"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "Upscaling",
      "targets" : [
        "Upscaling"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "fx_upscale",
      "module_type" : "SwiftTarget",
      "name" : "fx-upscale",
      "path" : "Sources/fx-upscale",
      "product_dependencies" : [
        "ArgumentParser",
        "SwiftTUI"
      ],
      "product_memberships" : [
        "fx-upscale"
      ],
      "sources" : [
        "FXUpscale.swift"
      ],
      "target_dependencies" : [
        "Upscaling"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "UpscalingTests",
      "module_type" : "SwiftTarget",
      "name" : "UpscalingTests",
      "path" : "Tests/UpscalingTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/UpscalingTests/Resources/ladybird.jpg",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "UpscalingTests.swift"
      ],
      "target_dependencies" : [
        "Upscaling"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Upscaling",
      "module_type" : "SwiftTarget",
      "name" : "Upscaling",
      "path" : "Sources/Upscaling",
      "product_memberships" : [
        "fx-upscale",
        "Upscaling"
      ],
      "sources" : [
        "CoreImage/UpscalingFilter.swift",
        "CoreImage/UpscalingImageProcessorKernel.swift",
        "Extensions/AVVideoCodecType+Extensions.swift",
        "Extensions/CMFormatDescription+Extensions.swift",
        "Extensions/CVPixelBuffer+Extensions.swift",
        "Extensions/MTLFXSpatialScaler+Extensions.swift",
        "Extensions/MTLFXSpatialScalerDescriptor+Extensions.swift",
        "Extensions/MTLTexture+Extensions.swift",
        "Extensions/URL+Extensions.swift",
        "Upscaler.swift",
        "UpscalingExportSession.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.