Skip to content

Commit

Permalink
Refactor to avoid pulling in ZippyJSON in Cocoapods
Browse files Browse the repository at this point in the history
  • Loading branch information
dfed committed Jan 3, 2025
1 parent cd5ccf5 commit 8d538aa
Showing 1 changed file with 50 additions and 62 deletions.
112 changes: 50 additions & 62 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -29,72 +29,36 @@ let package = Package(
name: "InstallSafeDITool",
targets: ["InstallSafeDITool"]
),
] + (
Context.environment["SAFEDI_COCOAPODS_PROTOCOL_PLUGIN"] != nil ? [
.executable(
name: "SafeDIMacros",
targets: ["SafeDIMacros"]
)
] : []
]
.appending(
.executable(name: "SafeDIMacros", targets: ["SafeDIMacros"]),
if: isBuildingForCocoapods
),
dependencies: [
.package(url: "https://github.com/apple/swift-argument-parser.git", from: "1.2.0"),
.package(url: "https://github.com/apple/swift-collections.git", from: "1.0.0"),
.package(url: "https://github.com/swiftlang/swift-syntax.git", from: "600.0.0"),
.package(url: "https://github.com/michaeleisel/ZippyJSON.git", from: "1.2.0"),
.package(url: "https://github.com/pointfreeco/swift-macro-testing.git", from: "0.5.0"),
],
]
.appending(
.package(url: "https://github.com/michaeleisel/ZippyJSON.git", from: "1.2.0"),
if: !isBuildingForCocoapods
),
targets: [
// Macros
.target(
name: "SafeDI",
dependencies: ["SafeDIMacros"],
swiftSettings: [
.swiftLanguageMode(.v6),
]
swiftSettings: commonSwiftSettings
),
.testTarget(
name: "SafeDITests",
dependencies: [
"SafeDI",
"SafeDICore",
],
swiftSettings: [
.swiftLanguageMode(.v6),
]
swiftSettings: commonSwiftSettings
),
Context.environment["SAFEDI_COCOAPODS_PROTOCOL_PLUGIN"] != nil
?
.executableTarget(
name: "SafeDIMacros",
dependencies: [
"SafeDICore",
.product(name: "SwiftCompilerPlugin", package: "swift-syntax"),
.product(name: "SwiftDiagnostics", package: "swift-syntax"),
.product(name: "SwiftSyntax", package: "swift-syntax"),
.product(name: "SwiftSyntaxBuilder", package: "swift-syntax"),
.product(name: "SwiftSyntaxMacros", package: "swift-syntax"),
],
swiftSettings: [
.swiftLanguageMode(.v6),
]
)
:
.macro(
name: "SafeDIMacros",
dependencies: [
"SafeDICore",
.product(name: "SwiftCompilerPlugin", package: "swift-syntax"),
.product(name: "SwiftDiagnostics", package: "swift-syntax"),
.product(name: "SwiftSyntax", package: "swift-syntax"),
.product(name: "SwiftSyntaxBuilder", package: "swift-syntax"),
.product(name: "SwiftSyntaxMacros", package: "swift-syntax"),
],
swiftSettings: [
.swiftLanguageMode(.v6),
]
),

.testTarget(
name: "SafeDIMacrosTests",
dependencies: [
Expand All @@ -103,9 +67,7 @@ let package = Package(
.product(name: "SwiftSyntaxMacrosTestSupport", package: "swift-syntax"),
.product(name: "MacroTesting", package: "swift-macro-testing"),
],
swiftSettings: [
.swiftLanguageMode(.v6),
]
swiftSettings: commonSwiftSettings
),

// Plugins
Expand All @@ -123,9 +85,7 @@ let package = Package(
.byNameItem(name: "ZippyJSON", condition: .when(platforms: [.iOS, .tvOS, .macOS])),
"SafeDICore",
],
swiftSettings: [
.swiftLanguageMode(.v6),
]
swiftSettings: commonSwiftSettings
),
.testTarget(
name: "SafeDIToolTests",
Expand All @@ -134,9 +94,7 @@ let package = Package(
.byNameItem(name: "ZippyJSON", condition: .when(platforms: [.iOS, .tvOS, .macOS])),
"SafeDITool",
],
swiftSettings: [
.swiftLanguageMode(.v6),
]
swiftSettings: commonSwiftSettings
),
.plugin(
name: "InstallSafeDITool",
Expand All @@ -162,16 +120,46 @@ let package = Package(
.product(name: "SwiftSyntax", package: "swift-syntax"),
.product(name: "SwiftSyntaxBuilder", package: "swift-syntax"),
],
swiftSettings: [
.swiftLanguageMode(.v6),
]
swiftSettings: commonSwiftSettings
),
.testTarget(
name: "SafeDICoreTests",
dependencies: ["SafeDICore"],
swiftSettings: [
.swiftLanguageMode(.v6),
]
swiftSettings: commonSwiftSettings
),
]
.appending(.executableTarget(
name: "SafeDIMacros",
dependencies: safeDIMacrosDependencies,
swiftSettings: commonSwiftSettings
), if: isBuildingForCocoapods)
.appending(.macro(
name: "SafeDIMacros",
dependencies: safeDIMacrosDependencies,
swiftSettings: commonSwiftSettings
), if: !isBuildingForCocoapods)
)

let isBuildingForCocoapods = Context.environment["SAFEDI_COCOAPODS_PROTOCOL_PLUGIN"] != nil

let commonSwiftSettings: [SwiftSetting] = [
.swiftLanguageMode(.v6),
]
let safeDIMacrosDependencies: [Target.Dependency] = [
"SafeDICore",
.product(name: "SwiftCompilerPlugin", package: "swift-syntax"),
.product(name: "SwiftDiagnostics", package: "swift-syntax"),
.product(name: "SwiftSyntax", package: "swift-syntax"),
.product(name: "SwiftSyntaxBuilder", package: "swift-syntax"),
.product(name: "SwiftSyntaxMacros", package: "swift-syntax"),
]

extension Array {
func appending(_ element: Element, if condition: Bool) -> [Element] {
if condition {
self + [element]
} else {
self
}
}
}

0 comments on commit 8d538aa

Please sign in to comment.