Build Information
Successful build of Cuneiform, reference v0.1.0 (2a9bff), with Swift 6.4 for macOS (SPM) on 24 Sep 2026 00:13:32 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Jramos57/cuneiform.git
Reference: v0.1.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/Jramos57/cuneiform
* tag v0.1.0 -> FETCH_HEAD
HEAD is now at 2a9bffb security: remove personal information and use relative paths
Cloned https://github.com/Jramos57/cuneiform.git
Revision (git rev-parse @):
2a9bffb139e7da34705602a8b9cf95687c6ca6c6
SUCCESS checkout https://github.com/Jramos57/cuneiform.git at v0.1.0
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/Jramos57/cuneiform.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Planning deferred tasks]
[19 / 28]
[20 / 29] Cuneiform
[29 / 75]
[32 / 75]
[37 / 75]
[39 / 75]
[43 / 75]
[45 / 75]
[47 / 75]
[49 / 75]
[52 / 75]
[53 / 75]
[54 / 75]
[55 / 75]
[66 / 75] Cuneiform
[67 / 75] Cuneiform
[72 / 75] Cuneiform
Build complete! (14.11 sec)
Fetching https://github.com/swiftlang/swift-testing.git
[1/43530] Fetching swift-testing
Fetched https://github.com/swiftlang/swift-testing.git (5.42s)
Computing version for https://github.com/swiftlang/swift-testing.git
Computed https://github.com/swiftlang/swift-testing.git at 0.99.0 (6.09s)
Fetching https://github.com/swiftlang/swift-syntax.git
[1/80027] Fetching swift-syntax
Fetched https://github.com/swiftlang/swift-syntax.git (6.54s)
Computing version for https://github.com/swiftlang/swift-syntax.git
Computed https://github.com/swiftlang/swift-syntax.git at 600.0.1 (9.52s)
Creating working copy for https://github.com/swiftlang/swift-syntax.git
Working copy of https://github.com/swiftlang/swift-syntax.git resolved at 600.0.1
Creating working copy for https://github.com/swiftlang/swift-testing.git
Working copy of https://github.com/swiftlang/swift-testing.git resolved at 0.99.0
/Users/admin/builder/spi-builder-workspace/Sources/Cuneiform/SpreadsheetML/Workbook.swift:463:17: [1;33mwarning: [1;39mvariable 'mutablePkg' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m461 |[0;0m let sheetData: Data
[0;36m462 |[0;0m do {
[0;36m463 |[0;0m var mutablePkg = package
[0;36m|[0;0m `- [1;33mwarning: [1;39mvariable 'mutablePkg' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m464 |[0;0m sheetData = try mutablePkg.readPart(sheetPath)
[0;36m465 |[0;0m } catch let err as CuneiformError {
[#VariableNeverMutated]: <https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated>
/Users/admin/builder/spi-builder-workspace/Sources/Cuneiform/SpreadsheetML/FormulaEvaluator.swift:1255:14: [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1101 |[0;0m case "FLOOR", "FLOOR.MATH":
[0;36m1102 |[0;0m return try evaluateFLOOR(args)
[0;36m1103 |[0;0m case [4;39m"TRUNC"[0;0m:
[0;36m|[0;0m `- [1;39mnote: [1;39mfirst occurrence of identical literal pattern is here[0;0m
[0;36m1104 |[0;0m return try evaluateTRUNC(args)
[0;36m1105 |[0;0m case "SIGN":
[0;36m:[0;0m
[0;36m1253 |[0;0m case "LENB":
[0;36m1254 |[0;0m return try evaluateLEN(args)
[0;36m1255 |[0;0m case [4;39m"TRUNC"[0;0m:
[0;36m|[0;0m `- [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1256 |[0;0m return try evaluateTRUNC(args)
[0;36m1257 |[0;0m case "SIGN":
/Users/admin/builder/spi-builder-workspace/Sources/Cuneiform/SpreadsheetML/FormulaEvaluator.swift:1257:14: [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1103 |[0;0m case "TRUNC":
[0;36m1104 |[0;0m return try evaluateTRUNC(args)
[0;36m1105 |[0;0m case [4;39m"SIGN"[0;0m:
[0;36m|[0;0m `- [1;39mnote: [1;39mfirst occurrence of identical literal pattern is here[0;0m
[0;36m1106 |[0;0m return try evaluateSIGN(args)
[0;36m1107 |[0;0m case "FACT":
[0;36m:[0;0m
[0;36m1255 |[0;0m case "TRUNC":
[0;36m1256 |[0;0m return try evaluateTRUNC(args)
[0;36m1257 |[0;0m case [4;39m"SIGN"[0;0m:
[0;36m|[0;0m `- [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1258 |[0;0m return try evaluateSIGN(args)
[0;36m1259 |[0;0m case "RANDBETWEEN":
/Users/admin/builder/spi-builder-workspace/Sources/Cuneiform/SpreadsheetML/FormulaEvaluator.swift:1259:14: [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1125 |[0;0m case "RAND":
[0;36m1126 |[0;0m return evaluateRAND(args)
[0;36m1127 |[0;0m case [4;39m"RANDBETWEEN"[0;0m:
[0;36m|[0;0m `- [1;39mnote: [1;39mfirst occurrence of identical literal pattern is here[0;0m
[0;36m1128 |[0;0m return try evaluateRANDBETWEEN(args)
[0;36m1129 |[0;0m case "COMBIN":
[0;36m:[0;0m
[0;36m1257 |[0;0m case "SIGN":
[0;36m1258 |[0;0m return try evaluateSIGN(args)
[0;36m1259 |[0;0m case [4;39m"RANDBETWEEN"[0;0m:
[0;36m|[0;0m `- [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1260 |[0;0m return try evaluateRANDBETWEEN(args)
[0;36m1261 |[0;0m // Batch 24: Statistical distributions
/Users/admin/builder/spi-builder-workspace/Sources/Cuneiform/SpreadsheetML/FormulaEvaluator.swift:1280:14: [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1012 |[0;0m case "STANDARDIZE":
[0;36m1013 |[0;0m return try evaluateSTANDARDIZE(args)
[0;36m1014 |[0;0m case [4;39m"CONFIDENCE.NORM"[0;0m:
[0;36m|[0;0m `- [1;39mnote: [1;39mfirst occurrence of identical literal pattern is here[0;0m
[0;36m1015 |[0;0m return try evaluateCONFIDENCE_NORM(args)
[0;36m1016 |[0;0m case "CONFIDENCE.T":
[0;36m:[0;0m
[0;36m1278 |[0;0m case "LOGNORM.INV":
[0;36m1279 |[0;0m return try evaluateLOGNORMINV(args)
[0;36m1280 |[0;0m case [4;39m"CONFIDENCE.NORM"[0;0m, "CONFIDENCE":
[0;36m|[0;0m `- [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1281 |[0;0m return try evaluateCONFIDENCENORM(args)
[0;36m1282 |[0;0m case "CRITBINOM":
/Users/admin/builder/spi-builder-workspace/Sources/Cuneiform/SpreadsheetML/FormulaEvaluator.swift:1358:14: [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m992 |[0;0m case "STEYX":
[0;36m993 |[0;0m return try evaluateSTEYX(args)
[0;36m994 |[0;0m case [4;39m"COVARIANCE.P"[0;0m:
[0;36m|[0;0m `- [1;39mnote: [1;39mfirst occurrence of identical literal pattern is here[0;0m
[0;36m995 |[0;0m return try evaluateCOVARIANCE_P(args)
[0;36m996 |[0;0m case "COVARIANCE.S":
[0;36m:[0;0m
[0;36m1356 |[0;0m case "INTERCEPT":
[0;36m1357 |[0;0m return try evaluateINTERCEPT(args)
[0;36m1358 |[0;0m case [4;39m"COVARIANCE.P"[0;0m, "COVAR":
[0;36m|[0;0m `- [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1359 |[0;0m return try evaluateCOVAR(args)
[0;36m1360 |[0;0m // Batch 28: Legacy statistical test functions
/Users/admin/builder/spi-builder-workspace/Sources/Cuneiform/SpreadsheetML/FormulaEvaluator.swift:1463:14: [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1016 |[0;0m case "CONFIDENCE.T":
[0;36m1017 |[0;0m return try evaluateCONFIDENCE_T(args)
[0;36m1018 |[0;0m case "FORECAST", [4;39m"FORECAST.LINEAR"[0;0m:
[0;36m|[0;0m `- [1;39mnote: [1;39mfirst occurrence of identical literal pattern is here[0;0m
[0;36m1019 |[0;0m return try evaluateFORECAST(args)
[0;36m1020 |[0;0m case "FORECAST.ETS":
[0;36m:[0;0m
[0;36m1461 |[0;0m return try evaluateAGGREGATE(args)
[0;36m1462 |[0;0m // Batch 32: Statistical and regression functions
[0;36m1463 |[0;0m case [4;39m"FORECAST.LINEAR"[0;0m:
[0;36m|[0;0m `- [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1464 |[0;0m return try evaluateFORECAST(args) // Alias for existing FORECAST
[0;36m1465 |[0;0m case "GROWTH":
/Users/admin/builder/spi-builder-workspace/Sources/Cuneiform/SpreadsheetML/FormulaEvaluator.swift:1505:14: [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1278 |[0;0m case "LOGNORM.INV":
[0;36m1279 |[0;0m return try evaluateLOGNORMINV(args)
[0;36m1280 |[0;0m case "CONFIDENCE.NORM", [4;39m"CONFIDENCE"[0;0m:
[0;36m|[0;0m `- [1;39mnote: [1;39mfirst occurrence of identical literal pattern is here[0;0m
[0;36m1281 |[0;0m return try evaluateCONFIDENCENORM(args)
[0;36m1282 |[0;0m case "CRITBINOM":
[0;36m:[0;0m
[0;36m1503 |[0;0m return try evaluateERROR_TYPE(args)
[0;36m1504 |[0;0m // Batch 34: Legacy distribution and statistical functions
[0;36m1505 |[0;0m case [4;39m"CONFIDENCE"[0;0m:
[0;36m|[0;0m `- [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1506 |[0;0m return try evaluateCONFIDENCE(args)
[0;36m1507 |[0;0m case "FISHER":
/Users/admin/builder/spi-builder-workspace/Sources/Cuneiform/SpreadsheetML/FormulaEvaluator.swift:1511:14: [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1046 |[0;0m case "BINOM.INV":
[0;36m1047 |[0;0m return try evaluateBINOM_INV(args)
[0;36m1048 |[0;0m case "POISSON.DIST", [4;39m"POISSON"[0;0m:
[0;36m|[0;0m `- [1;39mnote: [1;39mfirst occurrence of identical literal pattern is here[0;0m
[0;36m1049 |[0;0m return try evaluatePOISSON_DIST(args)
[0;36m1050 |[0;0m case "EXPON.DIST":
[0;36m:[0;0m
[0;36m1509 |[0;0m case "FISHERINV":
[0;36m1510 |[0;0m return try evaluateFISHERINV(args)
[0;36m1511 |[0;0m case [4;39m"POISSON"[0;0m:
[0;36m|[0;0m `- [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1512 |[0;0m return try evaluatePOISSON(args)
[0;36m1513 |[0;0m case "EXPONDIST":
/Users/admin/builder/spi-builder-workspace/Sources/Cuneiform/SpreadsheetML/FormulaEvaluator.swift:1556:14: [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1344 |[0;0m return try evaluateNEGBINOMDIST(args)
[0;36m1345 |[0;0m // Batch 27: Cube stubs, Web, and statistical functions
[0;36m1346 |[0;0m case [4;39m"CUBEVALUE"[0;0m, "CUBEMEMBER", "CUBESET", "CUBERANKEDMEMBER", "CUBEKPIMEMBER", "CUBESETCOUNT", "CUBEMEMBERPROPERTY":
[0;36m|[0;0m `- [1;39mnote: [1;39mfirst occurrence of identical literal pattern is here[0;0m
[0;36m1347 |[0;0m return .error("N/A") // Requires OLAP cube connection
[0;36m1348 |[0;0m case "WEBSERVICE", "FILTERXML":
[0;36m:[0;0m
[0;36m1554 |[0;0m case "RTD":
[0;36m1555 |[0;0m return try evaluateRTD(args)
[0;36m1556 |[0;0m case [4;39m"CUBEVALUE"[0;0m:
[0;36m|[0;0m `- [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1557 |[0;0m return try evaluateCUBEVALUE(args)
[0;36m1558 |[0;0m case "CUBEMEMBERPROPERTY":
/Users/admin/builder/spi-builder-workspace/Sources/Cuneiform/SpreadsheetML/FormulaEvaluator.swift:1558:14: [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1344 |[0;0m return try evaluateNEGBINOMDIST(args)
[0;36m1345 |[0;0m // Batch 27: Cube stubs, Web, and statistical functions
[0;36m1346 |[0;0m case "CUBEVALUE", "CUBEMEMBER", "CUBESET", "CUBERANKEDMEMBER", "CUBEKPIMEMBER", "CUBESETCOUNT", [4;39m"CUBEMEMBERPROPERTY"[0;0m:
[0;36m|[0;0m `- [1;39mnote: [1;39mfirst occurrence of identical literal pattern is here[0;0m
[0;36m1347 |[0;0m return .error("N/A") // Requires OLAP cube connection
[0;36m1348 |[0;0m case "WEBSERVICE", "FILTERXML":
[0;36m:[0;0m
[0;36m1556 |[0;0m case "CUBEVALUE":
[0;36m1557 |[0;0m return try evaluateCUBEVALUE(args)
[0;36m1558 |[0;0m case [4;39m"CUBEMEMBERPROPERTY"[0;0m:
[0;36m|[0;0m `- [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1559 |[0;0m return try evaluateCUBEMEMBERPROPERTY(args)
[0;36m1560 |[0;0m case "CUBERANKEDMEMBER":
/Users/admin/builder/spi-builder-workspace/Sources/Cuneiform/SpreadsheetML/FormulaEvaluator.swift:1560:14: [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1344 |[0;0m return try evaluateNEGBINOMDIST(args)
[0;36m1345 |[0;0m // Batch 27: Cube stubs, Web, and statistical functions
[0;36m1346 |[0;0m case "CUBEVALUE", "CUBEMEMBER", "CUBESET", [4;39m"CUBERANKEDMEMBER"[0;0m, "CUBEKPIMEMBER", "CUBESETCOUNT", "CUBEMEMBERPROPERTY":
[0;36m|[0;0m `- [1;39mnote: [1;39mfirst occurrence of identical literal pattern is here[0;0m
[0;36m1347 |[0;0m return .error("N/A") // Requires OLAP cube connection
[0;36m1348 |[0;0m case "WEBSERVICE", "FILTERXML":
[0;36m:[0;0m
[0;36m1558 |[0;0m case "CUBEMEMBERPROPERTY":
[0;36m1559 |[0;0m return try evaluateCUBEMEMBERPROPERTY(args)
[0;36m1560 |[0;0m case [4;39m"CUBERANKEDMEMBER"[0;0m:
[0;36m|[0;0m `- [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1561 |[0;0m return try evaluateCUBERANKEDMEMBER(args)
[0;36m1562 |[0;0m case "AVERAGEA":
/Users/admin/builder/spi-builder-workspace/Sources/Cuneiform/SpreadsheetML/FormulaEvaluator.swift:1564:14: [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m703 |[0;0m case "COUNT":
[0;36m704 |[0;0m return try evaluateCOUNT(args)
[0;36m705 |[0;0m case [4;39m"COUNTA"[0;0m:
[0;36m|[0;0m `- [1;39mnote: [1;39mfirst occurrence of identical literal pattern is here[0;0m
[0;36m706 |[0;0m return try evaluateCOUNTA(args)
[0;36m707 |[0;0m case "AND":
[0;36m:[0;0m
[0;36m1562 |[0;0m case "AVERAGEA":
[0;36m1563 |[0;0m return try evaluateAVERAGEA(args)
[0;36m1564 |[0;0m case [4;39m"COUNTA"[0;0m:
[0;36m|[0;0m `- [1;33mwarning: [1;39mliteral value is already handled by previous pattern; consider removing it[0;0m
[0;36m1565 |[0;0m return try evaluateCOUNTA(args)
[0;36m1566 |[0;0m case "COUNTBLANK":
/Users/admin/builder/spi-builder-workspace/Sources/Cuneiform/SpreadsheetML/FormulaEvaluator.swift:3479:13: [1;33mwarning: [1;39mvariable 'numbers' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m3477 |[0;0m
[0;36m3478 |[0;0m let refVal = try evaluate(args[1])
[0;36m3479 |[0;0m var numbers = flattenToNumbers(refVal)
[0;36m|[0;0m `- [1;33mwarning: [1;39mvariable 'numbers' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m3480 |[0;0m
[0;36m3481 |[0;0m guard !numbers.isEmpty else {
/Users/admin/builder/spi-builder-workspace/Sources/Cuneiform/SpreadsheetML/FormulaEvaluator.swift:9452:13: [1;33mwarning: [1;39mdefault will never be executed[0;0m
[0;36m9450 |[0;0m case .error(let e):
[0;36m9451 |[0;0m return .error(e)
[0;36m9452 |[0;0m default:
[0;36m|[0;0m `- [1;33mwarning: [1;39mdefault will never be executed[0;0m
[0;36m9453 |[0;0m continue
[0;36m9454 |[0;0m }
/Users/admin/builder/spi-builder-workspace/Sources/Cuneiform/SpreadsheetML/FormulaEvaluator.swift:9499:13: [1;33mwarning: [1;39mdefault will never be executed[0;0m
[0;36m9497 |[0;0m case .error(let e):
[0;36m9498 |[0;0m return .error(e)
[0;36m9499 |[0;0m default:
[0;36m|[0;0m `- [1;33mwarning: [1;39mdefault will never be executed[0;0m
[0;36m9500 |[0;0m continue
[0;36m9501 |[0;0m }
[#VariableNeverMutated]: <https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated>
Build complete.
{
"default_localization" : "en",
"dependencies" : [
{
"identity" : "swift-testing",
"requirement" : {
"range" : [
{
"lower_bound" : "0.12.0",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/swiftlang/swift-testing.git"
}
],
"manifest_display_name" : "Cuneiform",
"name" : "Cuneiform",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "ios",
"version" : "16.0"
},
{
"name" : "tvos",
"version" : "16.0"
},
{
"name" : "watchos",
"version" : "9.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "Cuneiform",
"targets" : [
"Cuneiform"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "CuneiformTests",
"module_type" : "SwiftTarget",
"name" : "CuneiformTests",
"path" : "Tests/CuneiformTests",
"product_dependencies" : [
"Testing"
],
"sources" : [
"AdvancedQueryTests.swift",
"AutoFilterTests.swift",
"CellFormulaTests.swift",
"ChartBuilderTests.swift",
"ChartIntegrationTests.swift",
"ChartParserTests.swift",
"CommentsParserTests.swift",
"CommentsWriteTests.swift",
"ConditionalFormattingTests.swift",
"CuneiformTests.swift",
"DataValidationExpandedTests.swift",
"DataValidationHelpersTests.swift",
"DataValidationReadTests.swift",
"DataValidationVariantTests.swift",
"DependencyGraphTests.swift",
"FormulaEvaluatorTests.swift",
"FormulaFunctionsExtendedTests.swift",
"FormulaParserTests.swift",
"HyperlinksReadTests.swift",
"HyperlinksWriteTests.swift",
"LargeWorkbookStressTests.swift",
"NamedRangesReadTests.swift",
"NamedRangesWriteTests.swift",
"OPCPackageTests.swift",
"PageSetupTests.swift",
"PerformanceBenchmarks.swift",
"Phase41StylesTests.swift",
"PivotTableParserTests.swift",
"RichTextTests.swift",
"SharedStringsOptimizationTests.swift",
"SharedStringsTests.swift",
"SheetProtectionParserTests.swift",
"SheetProtectionWriteTests.swift",
"StylesParserTests.swift",
"StylingTests.swift",
"TableIntegrationTests.swift",
"TableParserTests.swift",
"TableWriteTests.swift",
"WorkbookIntegrationTests.swift",
"WorkbookParserTests.swift",
"WorkbookProtectionParserTests.swift",
"WorkbookProtectionWriteTests.swift",
"WorkbookWriterTests.swift",
"WorksheetParserTests.swift",
"WorksheetWriteExtrasTests.swift"
],
"target_dependencies" : [
"Cuneiform"
],
"type" : "test"
},
{
"c99name" : "Cuneiform",
"module_type" : "SwiftTarget",
"name" : "Cuneiform",
"path" : "Sources/Cuneiform",
"product_memberships" : [
"Cuneiform"
],
"sources" : [
"Core/ContentType.swift",
"Core/Errors.swift",
"Core/PartPath.swift",
"Core/Relationship.swift",
"Cuneiform.swift",
"Package/ContentTypesParser.swift",
"Package/OPCBuilders.swift",
"Package/OPCPackage.swift",
"Package/RelationshipsParser.swift",
"Package/ZipArchive.swift",
"Package/ZipWriter.swift",
"SpreadsheetML/CellFormula.swift",
"SpreadsheetML/CellValue.swift",
"SpreadsheetML/ChartBuilder.swift",
"SpreadsheetML/ChartParser.swift",
"SpreadsheetML/CommentsBuilder.swift",
"SpreadsheetML/CommentsParser.swift",
"SpreadsheetML/DependencyGraph.swift",
"SpreadsheetML/FormulaEvaluator.swift",
"SpreadsheetML/FormulaParser.swift",
"SpreadsheetML/PageSetup.swift",
"SpreadsheetML/PivotTableParser.swift",
"SpreadsheetML/RichText.swift",
"SpreadsheetML/SharedStringsParser.swift",
"SpreadsheetML/Sheet.swift",
"SpreadsheetML/SpreadsheetMLBuilders.swift",
"SpreadsheetML/StylesParser.swift",
"SpreadsheetML/TableParser.swift",
"SpreadsheetML/VMLCommentsBuilder.swift",
"SpreadsheetML/Workbook.swift",
"SpreadsheetML/WorkbookParser.swift",
"SpreadsheetML/WorkbookWriter.swift",
"SpreadsheetML/WorksheetParser.swift"
],
"type" : "library"
}
],
"tools_version" : "6.0"
}
Done.