The Swift Package Index logo.Swift Package Index

Build Information

Successful build of forensiclens, reference main (3ec67b), with Swift 6.3 for macOS (SPM) on 13 Oct 2026 12:34:53 UTC.

Swift 6 data race errors: 0

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 5.1.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Deipedra34/ForensicLens.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Deipedra34/ForensicLens
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 3ec67b4 Update benchmark results in README
Cloned https://github.com/Deipedra34/ForensicLens.git
Revision (git rev-parse @):
3ec67b464ce55587b23f09b2a026e8a75424a84c
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/Deipedra34/ForensicLens.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.3
Building package at path:  $PWD
https://github.com/Deipedra34/ForensicLens.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.5.0.app xcrun swift build --arch arm64
Building for debugging...
[0/27] Write sources
[5/27] Write forensiclens-readme-updater-entitlement.plist
[5/27] Write forensiclens-eval-entitlement.plist
[5/27] Write forensiclens-benchmark-entitlement.plist
[5/27] Write forensiclens-cli-entitlement.plist
[9/27] Write sources
[13/27] Write swift-version-69A768CDF2A0BEE1.txt
[14/29] Compiling CStbImage cstbimage.c
[16/35] Compiling ImageDecoding ImageFormat.swift
[17/35] Compiling ImageDecoding PixelBuffer.swift
[18/35] Compiling ImageDecoding ImageDecoder.swift
[19/35] Compiling ImageDecoding ImageData.swift
[20/35] Emitting module ImageDecoding
[21/35] Compiling ImageDecoding ImageEncoder.swift
[22/54] Compiling ForensicLens SuspicionScorer.swift
[23/54] Compiling ForensicLens PixelBuffer+Tiling.swift
[24/54] Compiling ForensicLens SpatialTileMerger.swift
[25/54] Compiling ForensicLens TilePlan.swift
[26/56] Compiling ForensicLens TiledCloneDetection.swift
[27/56] Compiling ForensicLens TilingCoordinator.swift
[28/56] Compiling ForensicLens ForensicLensConfig.swift
[29/56] Compiling ForensicLens ForensicLensEngine.swift
[30/56] Compiling ForensicLens FeatureExtractor.swift
[31/56] Compiling ForensicLens RANSACAffineEstimator.swift
[32/56] Compiling ForensicLens DoubleCompressionAnalyzer.swift
[33/56] Compiling ForensicLens DoubleCompressionMath.swift
[34/56] Compiling ForensicLens ELAAnalyzer.swift
[35/56] Compiling ForensicLens AffineTransform2D.swift
[36/56] Compiling ForensicLens DescriptorMatcher.swift
[37/56] Compiling ForensicLens FeatureCloneDetector.swift
[38/56] Emitting module ForensicLens
[39/56] Compiling ForensicLens Analyzer.swift
[40/56] Compiling ForensicLens CloneDetectionAnalyzer.swift
[41/56] Compiling ForensicLens MetadataAnalyzer.swift
[42/56] Compiling ForensicLens ConfigLoader.swift
[43/56] Emitting module BenchmarkReporting
[44/56] Compiling BenchmarkReporting BenchmarkResult.swift
[45/66] Compiling forensiclens_readme_updater Entrypoint.swift
[46/66] Compiling forensiclens_readme_updater ReadmeUpdater.swift
[47/66] Emitting module forensiclens_readme_updater
[47/66] Write Objects.LinkFileList
[49/66] Compiling HTMLReporting EmbeddedImage.swift
[50/66] Compiling HTMLReporting HTMLReportGenerator.swift
[51/66] Emitting module HTMLReporting
[52/66] Compiling HTMLReporting HTMLTemplate.swift
[53/66] Compiling HTMLReporting HTMLReportIndex.swift
[54/66] Emitting module forensiclens_benchmark
[55/66] Compiling forensiclens_benchmark main.swift
[55/66] Write Objects.LinkFileList
[57/71] Compiling BatchProcessing BatchRunner.swift
[58/71] Compiling BatchProcessing BatchFileScanner.swift
[59/71] Compiling BatchProcessing BatchFileAnalyzer.swift
[60/71] Emitting module BatchProcessing
[61/71] Compiling BatchProcessing BatchHTMLReports.swift
[62/83] Compiling forensiclens_eval LabeledDataset.swift
[63/83] Compiling forensiclens_eval Evaluator.swift
[64/83] Compiling forensiclens_eval ClassificationMetrics.swift
[65/83] Compiling forensiclens_eval EvalCLI.swift
[66/83] Compiling forensiclens_eval Entrypoint.swift
[67/83] Emitting module forensiclens_eval
[68/83] Compiling forensiclens_eval EvaluationReport.swift
[68/83] Write Objects.LinkFileList
[70/83] Compiling forensiclens_cli BatchReportFormatter.swift
[71/83] Compiling forensiclens_cli BatchReport.swift
[72/83] Compiling forensiclens_cli Entrypoint.swift
[73/83] Compiling forensiclens_cli CLI.swift
[74/83] Emitting module forensiclens_cli
[74/83] Write Objects.LinkFileList
[75/83] Linking forensiclens-readme-updater
[76/83] Applying forensiclens-readme-updater
[77/83] Linking forensiclens-benchmark
[78/83] Applying forensiclens-benchmark
[79/83] Linking forensiclens-eval
[80/83] Applying forensiclens-eval
[81/83] Linking forensiclens-cli
[82/83] Applying forensiclens-cli
Build complete! (7.37s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "forensiclens",
  "name" : "forensiclens",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "ForensicLens",
      "targets" : [
        "ForensicLens"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "forensiclens-cli",
      "targets" : [
        "forensiclens-cli"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "forensiclens-eval",
      "targets" : [
        "forensiclens-eval"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "forensiclens-readme-updater",
      "targets" : [
        "forensiclens-readme-updater"
      ],
      "type" : {
        "executable" : null
      }
    },
    {
      "name" : "forensiclens-benchmark",
      "targets" : [
        "forensiclens-benchmark"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "forensiclens_readme_updater",
      "module_type" : "SwiftTarget",
      "name" : "forensiclens-readme-updater",
      "path" : "Sources/forensiclens-readme-updater",
      "product_memberships" : [
        "forensiclens-readme-updater"
      ],
      "sources" : [
        "Entrypoint.swift",
        "ReadmeUpdater.swift"
      ],
      "target_dependencies" : [
        "BenchmarkReporting"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "forensiclens_eval",
      "module_type" : "SwiftTarget",
      "name" : "forensiclens-eval",
      "path" : "Sources/forensiclens-eval",
      "product_memberships" : [
        "forensiclens-eval"
      ],
      "sources" : [
        "ClassificationMetrics.swift",
        "Entrypoint.swift",
        "EvalCLI.swift",
        "EvaluationReport.swift",
        "Evaluator.swift",
        "LabeledDataset.swift"
      ],
      "target_dependencies" : [
        "ForensicLens",
        "ImageDecoding",
        "BatchProcessing"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "forensiclens_cli",
      "module_type" : "SwiftTarget",
      "name" : "forensiclens-cli",
      "path" : "Sources/forensiclens-cli",
      "product_memberships" : [
        "forensiclens-cli"
      ],
      "sources" : [
        "BatchReport.swift",
        "BatchReportFormatter.swift",
        "CLI.swift",
        "Entrypoint.swift"
      ],
      "target_dependencies" : [
        "ForensicLens",
        "ImageDecoding",
        "HTMLReporting",
        "BatchProcessing"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "forensiclens_benchmark",
      "module_type" : "SwiftTarget",
      "name" : "forensiclens-benchmark",
      "path" : "Sources/forensiclens-benchmark",
      "product_memberships" : [
        "forensiclens-benchmark"
      ],
      "sources" : [
        "main.swift"
      ],
      "target_dependencies" : [
        "ForensicLens",
        "ImageDecoding",
        "BenchmarkReporting"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "ImageDecoding",
      "module_type" : "SwiftTarget",
      "name" : "ImageDecoding",
      "path" : "Sources/ImageDecoding",
      "product_memberships" : [
        "ForensicLens",
        "forensiclens-cli",
        "forensiclens-eval",
        "forensiclens-benchmark"
      ],
      "sources" : [
        "ImageData.swift",
        "ImageDecoder.swift",
        "ImageEncoder.swift",
        "ImageFormat.swift",
        "PixelBuffer.swift"
      ],
      "target_dependencies" : [
        "CStbImage"
      ],
      "type" : "library"
    },
    {
      "c99name" : "HTMLReporting",
      "module_type" : "SwiftTarget",
      "name" : "HTMLReporting",
      "path" : "Sources/HTMLReporting",
      "product_memberships" : [
        "forensiclens-cli",
        "forensiclens-eval"
      ],
      "sources" : [
        "EmbeddedImage.swift",
        "HTMLReportGenerator.swift",
        "HTMLReportIndex.swift",
        "HTMLTemplate.swift"
      ],
      "target_dependencies" : [
        "ForensicLens",
        "ImageDecoding"
      ],
      "type" : "library"
    },
    {
      "c99name" : "ForensicLensTests",
      "module_type" : "SwiftTarget",
      "name" : "ForensicLensTests",
      "path" : "Tests/ForensicLensTests",
      "sources" : [
        "BatchCommandTests.swift",
        "CloneDetectionAnalyzerTests.swift",
        "ConfigTests.swift",
        "DoubleCompressionAnalyzerTests.swift",
        "ELAAnalyzerTests.swift",
        "EvaluationMetricsTests.swift",
        "EvaluationToolTests.swift",
        "FailThresholdTests.swift",
        "FeatureCloneDetectionTests.swift",
        "FeatureMatchingCLITests.swift",
        "Fixtures.swift",
        "HTMLReportTests.swift",
        "MetadataAnalyzerTests.swift",
        "RANSACAffineEstimatorTests.swift",
        "ReadmeUpdaterTests.swift",
        "ScoringTests.swift",
        "TilingCLITests.swift",
        "TilingTests.swift"
      ],
      "target_dependencies" : [
        "ForensicLens",
        "ImageDecoding",
        "HTMLReporting",
        "BatchProcessing",
        "forensiclens-cli",
        "forensiclens-readme-updater",
        "forensiclens-eval",
        "BenchmarkReporting"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ForensicLens",
      "module_type" : "SwiftTarget",
      "name" : "ForensicLens",
      "path" : "Sources/ForensicLens",
      "product_memberships" : [
        "ForensicLens",
        "forensiclens-cli",
        "forensiclens-eval",
        "forensiclens-benchmark"
      ],
      "sources" : [
        "Analyzer.swift",
        "Analyzers/CloneDetectionAnalyzer.swift",
        "Analyzers/DoubleCompressionAnalyzer.swift",
        "Analyzers/DoubleCompressionMath.swift",
        "Analyzers/ELAAnalyzer.swift",
        "Analyzers/FeatureMatching/AffineTransform2D.swift",
        "Analyzers/FeatureMatching/DescriptorMatcher.swift",
        "Analyzers/FeatureMatching/FeatureCloneDetector.swift",
        "Analyzers/FeatureMatching/FeatureExtractor.swift",
        "Analyzers/FeatureMatching/RANSACAffineEstimator.swift",
        "Analyzers/MetadataAnalyzer.swift",
        "Config/ConfigLoader.swift",
        "Config/ForensicLensConfig.swift",
        "ForensicLensEngine.swift",
        "Scoring/SuspicionScorer.swift",
        "Tiling/PixelBuffer+Tiling.swift",
        "Tiling/SpatialTileMerger.swift",
        "Tiling/TilePlan.swift",
        "Tiling/TiledCloneDetection.swift",
        "Tiling/TilingCoordinator.swift"
      ],
      "target_dependencies" : [
        "ImageDecoding"
      ],
      "type" : "library"
    },
    {
      "c99name" : "CStbImage",
      "module_type" : "ClangTarget",
      "name" : "CStbImage",
      "path" : "Sources/CStbImage",
      "product_memberships" : [
        "ForensicLens",
        "forensiclens-cli",
        "forensiclens-eval",
        "forensiclens-benchmark"
      ],
      "sources" : [
        "cstbimage.c"
      ],
      "type" : "library"
    },
    {
      "c99name" : "BenchmarkReporting",
      "module_type" : "SwiftTarget",
      "name" : "BenchmarkReporting",
      "path" : "Sources/BenchmarkReporting",
      "product_memberships" : [
        "forensiclens-readme-updater",
        "forensiclens-benchmark"
      ],
      "sources" : [
        "BenchmarkResult.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "BatchProcessing",
      "module_type" : "SwiftTarget",
      "name" : "BatchProcessing",
      "path" : "Sources/BatchProcessing",
      "product_memberships" : [
        "forensiclens-cli",
        "forensiclens-eval"
      ],
      "sources" : [
        "BatchFileAnalyzer.swift",
        "BatchFileScanner.swift",
        "BatchHTMLReports.swift",
        "BatchRunner.swift"
      ],
      "target_dependencies" : [
        "ForensicLens",
        "ImageDecoding",
        "HTMLReporting"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.