Class: Pod::Swift::PackageDescription::Target
Instance Attribute Summary
#parent, #raw
Instance Method Summary
collapse
#[], #dup_with_attrs, from_file, from_s, #initialize, #inspect, #name, #pkg_name, #root
Instance Method Details
#binary? ⇒ Boolean
17
18
19
20
21
|
# File 'lib/cocoapods-spm/swift/package/target.rb', line 17
def binary?
return @binary unless @binary.nil?
@binary = type == "binary"
end
|
#binary_basename ⇒ Object
81
82
83
84
85
86
87
88
|
# File 'lib/cocoapods-spm/swift/package/target.rb', line 81
def binary_basename
return nil unless binary?
@binary_basename ||= begin
paths = (root.artifacts_dir / name).glob("*.xcframework/*/*.{a,framework}")
paths[0].basename.to_s unless paths.empty?
end
end
|
#built_framework_path ⇒ Object
77
78
79
|
# File 'lib/cocoapods-spm/swift/package/target.rb', line 77
def built_framework_path
"${BUILT_PRODUCTS_DIR}/PackageFrameworks/#{framework_name}.framework"
end
|
#clang_modulemap_arg ⇒ Object
35
36
37
38
39
|
# File 'lib/cocoapods-spm/swift/package/target.rb', line 35
def clang_modulemap_arg
return nil if .nil?
"-fmodule-map-file=\"${GENERATED_MODULEMAP_DIR}/#{name}.modulemap\""
end
|
#dynamic? ⇒ Boolean
23
24
25
|
# File 'lib/cocoapods-spm/swift/package/target.rb', line 23
def dynamic?
@dynamic
end
|
#framework_name ⇒ Object
27
28
29
|
# File 'lib/cocoapods-spm/swift/package/target.rb', line 27
def framework_name
@product_name || name
end
|
#linker_flags ⇒ Object
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/cocoapods-spm/swift/package/target.rb', line 45
def linker_flags
return ["-framework \"#{framework_name}\""] if dynamic?
return ["-l\"#{name}.o\""] unless binary?
case binary_basename
when /(\S+)\.framework/ then ["-framework \"#{$1}\""]
when /lib(\S+)\.a/ then ["-library \"#{$1}\""]
when /(\S+\.a)/ then ["\"${PODS_CONFIGURATION_BUILD_DIR}/#{$1}\""]
else []
end
end
|
#macro? ⇒ Boolean
13
14
15
|
# File 'lib/cocoapods-spm/swift/package/target.rb', line 13
def macro?
type == "macro"
end
|
31
32
33
|
# File 'lib/cocoapods-spm/swift/package/target.rb', line 31
def
raw["publicHeadersPath"]
end
|
#resolve_dependencies(pkg_desc_cache) ⇒ Object
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# File 'lib/cocoapods-spm/swift/package/target.rb', line 57
def resolve_dependencies(pkg_desc_cache)
raw.fetch("dependencies", []).flat_map do |hash|
type = ["byName", "target", "product"].find { |k| hash.key?(k) }
if type.nil?
raise Informative, "Unexpected dependency type. Must be either `byName`, `target`, or `product`."
end
name = hash[type][0]
pkg_name = hash.key?("product") ? hash["product"][1] : self.pkg_name
pkg_desc = pkg_desc_cache[pkg_name]
find_by_target = -> { pkg_desc.targets.select { |t| t.name == name } }
find_by_product = -> { pkg_desc.targets_of_product(name) }
next find_by_target.call if hash.key?("target")
next find_by_product.call if hash.key?("product")
next find_by_target.call || find_by_product.call
end
end
|
#resources ⇒ Object
41
42
43
|
# File 'lib/cocoapods-spm/swift/package/target.rb', line 41
def resources
raw.fetch("resources", []).flat_map { |h| Resources.new(h, parent: self) }
end
|
#type ⇒ Object
9
10
11
|
# File 'lib/cocoapods-spm/swift/package/target.rb', line 9
def type
raw["type"]
end
|
#use_default_xcode_linking? ⇒ Boolean
90
91
92
|
# File 'lib/cocoapods-spm/swift/package/target.rb', line 90
def use_default_xcode_linking?
root.use_default_xcode_linking?
end
|