From 51e6bf7a5bc0757f183d8be8b46c22d827aaad64 Mon Sep 17 00:00:00 2001 From: Maxime Bentin Date: Fri, 1 Aug 2025 17:12:32 +0200 Subject: [PATCH] feat: extend the BuildAction to allow setting the architecture --- .../Models/BuildAction+Architectures.swift | 7 +++++++ Sources/XcodeGraph/Models/BuildAction.swift | 5 ++++- .../Models/BuildAction.ArchitecturesTests.swift | 14 ++++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 Sources/XcodeGraph/Models/BuildAction+Architectures.swift create mode 100644 Tests/XcodeGraphTests/Models/BuildAction.ArchitecturesTests.swift diff --git a/Sources/XcodeGraph/Models/BuildAction+Architectures.swift b/Sources/XcodeGraph/Models/BuildAction+Architectures.swift new file mode 100644 index 00000000..e3949047 --- /dev/null +++ b/Sources/XcodeGraph/Models/BuildAction+Architectures.swift @@ -0,0 +1,7 @@ +extension BuildAction { + public enum Architectures: Equatable, Codable, Sendable { + case matchRunDestination + case universal + case useTargetSettings + } +} diff --git a/Sources/XcodeGraph/Models/BuildAction.swift b/Sources/XcodeGraph/Models/BuildAction.swift index 16dd96fa..1a512c04 100644 --- a/Sources/XcodeGraph/Models/BuildAction.swift +++ b/Sources/XcodeGraph/Models/BuildAction.swift @@ -10,6 +10,7 @@ public struct BuildAction: Equatable, Codable, Sendable { public var parallelizeBuild: Bool public var runPostActionsOnFailure: Bool public var findImplicitDependencies: Bool + public var overrideArchitectures: Architectures // MARK: - Init @@ -19,7 +20,8 @@ public struct BuildAction: Equatable, Codable, Sendable { postActions: [ExecutionAction] = [], parallelizeBuild: Bool = true, runPostActionsOnFailure: Bool = false, - findImplicitDependencies: Bool = true + findImplicitDependencies: Bool = true, + overrideArchitectures: Architectures = .useTargetSettings ) { self.targets = targets self.preActions = preActions @@ -27,6 +29,7 @@ public struct BuildAction: Equatable, Codable, Sendable { self.parallelizeBuild = parallelizeBuild self.runPostActionsOnFailure = runPostActionsOnFailure self.findImplicitDependencies = findImplicitDependencies + self.overrideArchitectures = overrideArchitectures } } diff --git a/Tests/XcodeGraphTests/Models/BuildAction.ArchitecturesTests.swift b/Tests/XcodeGraphTests/Models/BuildAction.ArchitecturesTests.swift new file mode 100644 index 00000000..cd7487e4 --- /dev/null +++ b/Tests/XcodeGraphTests/Models/BuildAction.ArchitecturesTests.swift @@ -0,0 +1,14 @@ +import Foundation +import XCTest + +@testable import XcodeGraph + +final class BuildActionArchitecturesTests: XCTestCase { + func test_codable() { + // Given + let subject = BuildAction.Architectures.universal + + // Then + XCTAssertCodable(subject) + } +}