Added ProjectFormat enum with specific for each version fields (#1566)

* Added ProjectFormat enum with specific for each version fields

* Added ability to specify project format version via `projectFormat` option

---------

Co-authored-by: Yonas Kolb <yonaskolb@users.noreply.github.com>
This commit is contained in:
Vasily Anisimov
2026-03-05 13:46:56 +11:00
committed by GitHub
co-authored by Yonas Kolb
parent 167d11998a
commit decc743795
10 changed files with 62 additions and 10 deletions
+37
View File
@@ -0,0 +1,37 @@
public extension ProjectFormat {
static let `default`: ProjectFormat = .xcode16_0
}
public enum ProjectFormat: String {
case xcode16_3
case xcode16_0
case xcode15_3
case xcode15_0
case xcode14_0
public var objectVersion: UInt {
switch self {
case .xcode16_3: 90
case .xcode16_0: 77
case .xcode15_3: 63
case .xcode15_0: 60
case .xcode14_0: 56
}
}
public var preferredProjectObjectVersion: UInt? {
switch self {
case .xcode16_3, .xcode16_0: objectVersion
case .xcode15_3, .xcode15_0, .xcode14_0: nil
}
}
public var compatibilityVersion: String? {
switch self {
case .xcode16_3, .xcode16_0: nil
case .xcode15_3: "Xcode 15.3"
case .xcode15_0: "Xcode 15.0"
case .xcode14_0: "Xcode 14.0"
}
}
}