Files
XcodeGen/Sources/ProjectSpec/CacheFile.swift
T
Yonas Kolb c32aa4cc94 Synced folders (#1541)
* update xcodeproj to 8.27.7

* add syncedFolder source type

* drop xcode 15 support

* Rely on fileReference instead of adding new synchronizedRootGroup (#1557)

* fix: don't include untracked children in cache

---------

Co-authored-by: Kirill Yakimovich <kirill.yakimovich@gmail.com>
2025-07-17 15:15:43 +10:00

34 lines
841 B
Swift

import Foundation
import XcodeGenCore
import Version
public class CacheFile {
public let string: String
init?(version: Version, projectDictionary: [String: Any], project: Project) throws {
guard #available(OSX 10.13, *) else { return nil }
let files = Set(project.allTrackedFiles)
.map { ((try? $0.relativePath(from: project.basePath)) ?? $0).string }
.sorted { $0.localizedStandardCompare($1) == .orderedAscending }
.joined(separator: "\n")
let data = try JSONSerialization.data(withJSONObject: projectDictionary, options: [.sortedKeys, .prettyPrinted])
let spec = String(data: data, encoding: .utf8)!
string = """
# XCODEGEN VERSION
\(version)
# SPEC
\(spec)
# FILES
\(files)"
"""
}
}