Skip to content

Commit 3b0e2a0

Browse files
committed
abstract getting apple_frame_import
1 parent 2ec613f commit 3b0e2a0

File tree

5 files changed

+15
-22
lines changed

5 files changed

+15
-22
lines changed

Sources/PodToBUILD/BuildFile.swift

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,17 +45,13 @@ public func makeLoadNodes(forConvertibles skylarkConvertibles: [SkylarkConvertib
4545
let hasAppleBundleImport = skylarkConvertibles.first(where: { $0 is AppleBundleImport }) != nil
4646
let hasAppleResourceBundle = skylarkConvertibles.first(where: { $0 is AppleResourceBundle }) != nil
4747
let hasAppleFrameworkImport = skylarkConvertibles.first(where: { $0 is AppleFrameworkImport }) != nil
48-
let isDynamicFramework = GetBuildOptions().isDynamicFramework
49-
let isXCFramework = GetBuildOptions().isXCFramework
48+
let appleFrameworkImport = appleFrameworkImport(isDynamicFramework: GetBuildOptions().isDynamicFramework, isXCFramework: GetBuildOptions().isXCFramework)
5049

5150
return .lines( [
5251
hasSwift ? SkylarkNode.skylark("load('@build_bazel_rules_swift//swift:swift.bzl', 'swift_library')") : nil,
5352
hasAppleBundleImport ? SkylarkNode.skylark("load('@build_bazel_rules_apple//apple:resources.bzl', 'apple_bundle_import')") : nil,
5453
hasAppleResourceBundle ? SkylarkNode.skylark("load('@build_bazel_rules_apple//apple:resources.bzl', 'apple_resource_bundle')") : nil,
55-
hasAppleFrameworkImport && isDynamicFramework && !isXCFramework ? SkylarkNode.skylark("load('@build_bazel_rules_apple//apple:apple.bzl', 'apple_dynamic_framework_import')") : nil,
56-
hasAppleFrameworkImport && !isDynamicFramework && !isXCFramework ? SkylarkNode.skylark("load('@build_bazel_rules_apple//apple:apple.bzl', 'apple_static_framework_import')") : nil,
57-
hasAppleFrameworkImport && isDynamicFramework && isXCFramework ? SkylarkNode.skylark("load('@build_bazel_rules_apple//apple:apple.bzl', 'apple_dynamic_xcframework_import')") : nil,
58-
hasAppleFrameworkImport && !isDynamicFramework && isXCFramework ? SkylarkNode.skylark("load('@build_bazel_rules_apple//apple:apple.bzl', 'apple_static_xcframework_import')") : nil,
54+
hasAppleFrameworkImport ? SkylarkNode.skylark("load('@build_bazel_rules_apple//apple:apple.bzl', '\(appleFrameworkImport)')") : nil,
5955
].compactMap { $0 }
6056
)
6157
}

Sources/PodToBUILD/BuildOptions.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public struct BasicBuildOptions: BuildOptions {
4343
public let vendorize: Bool
4444
public let childPaths: [String]
4545
public let isDynamicFramework: Bool
46-
public let isXCFramework:Bool
46+
public let isXCFramework: Bool
4747

4848
public init(podName: String = "",
4949
path: String = ".",

Sources/PodToBUILD/ObjcLibrary.swift

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -105,23 +105,11 @@ public struct AppleFrameworkImport: BazelTarget {
105105
// visibility = ["visibility:public"]
106106
// )
107107
public func toSkylark() -> SkylarkNode {
108-
let isDynamicFramework = GetBuildOptions().isDynamicFramework
109108
let isXCFramework = GetBuildOptions().isXCFramework
110-
111-
let frameworkType : String
112-
113-
if isXCFramework && isDynamicFramework {
114-
frameworkType = "apple_dynamic_xcframework_import"
115-
} else if isXCFramework && !isDynamicFramework {
116-
frameworkType = "apple_static_xcframework_import"
117-
} else if !isXCFramework && isDynamicFramework {
118-
frameworkType = "apple_dynamic_framework_import"
119-
} else {
120-
frameworkType = "apple_static_framework_import"
121-
}
109+
let appleFrameworkImport = appleFrameworkImport(isDynamicFramework: GetBuildOptions().isDynamicFramework, isXCFramework: isXCFramework)
122110

123111
return SkylarkNode.functionCall(
124-
name: frameworkType,
112+
name: appleFrameworkImport,
125113
arguments: [SkylarkFunctionArgument]([
126114
.named(name: "name", value: .string(name)),
127115
.named(name: isXCFramework ? "xcframework_imports": "framework_imports",

Sources/PodToBUILD/RuleUtils.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,3 +158,12 @@ public func bazelLabel(fromString string: String) -> String {
158158
}
159159

160160

161+
/// framework import for apple framework import
162+
/// - Parameters:
163+
/// - isDynamicFramework: whether internal framework is dynamic or static
164+
/// - isXCFramework: if it is XCFramework
165+
/// - Returns: apple framework import string such as "apple_static_xcframework_import"
166+
public func appleFrameworkImport(isDynamicFramework: Bool, isXCFramework: Bool) -> String {
167+
return "apple_" + (isDynamicFramework ? "dynamic_" : "static_") + (isXCFramework ? "xcframework_" : "framework_") + "import"
168+
}
169+

Sources/RepoToolsCore/RepoActions.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public enum SerializedRepoToolsAction {
9595
static func tryParseInit(args: [String]) -> BasicBuildOptions {
9696
// First arg is the path, we don't care about it
9797
// The right most option will be the winner.
98-
var options: [String: CLIArgumentType] = [
98+
let options: [String: CLIArgumentType] = [
9999
"--path": .string,
100100
"--user_option": .stringList,
101101
"--global_copt": .string,

0 commit comments

Comments
 (0)