forked from maplibre/maplibre-react-native
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMapLibreReactNative.podspec
More file actions
79 lines (68 loc) · 2.29 KB
/
MapLibreReactNative.podspec
File metadata and controls
79 lines (68 loc) · 2.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
require "json"
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
# Global Variable Defaults
$MLRN_NATIVE_VERSION ||= "6.22.1"
$MLRN_SPM_SPEC ||= {
url: "https://github.com/maplibre/maplibre-gl-native-distribution",
requirement: {
kind: "exactVersion",
version: $MLRN_NATIVE_VERSION
},
product_name: "MapLibre"
}
$MLRN = Object.new
def $MLRN._add_spm_to_target(project, target, url, requirement, product_name)
pkg_class = Xcodeproj::Project::Object::XCRemoteSwiftPackageReference
ref_class = Xcodeproj::Project::Object::XCSwiftPackageProductDependency
pkg = project.root_object.package_references.find { |p| p.class == pkg_class && p.repositoryURL == url }
if !pkg
pkg = project.new(pkg_class)
pkg.repositoryURL = url
project.root_object.package_references << pkg
end
pkg.requirement = requirement
ref = target.package_product_dependencies.find { |r| r.class == ref_class && r.package == pkg && r.product_name == product_name }
if !ref
ref = project.new(ref_class)
ref.package = pkg
ref.product_name = product_name
target.package_product_dependencies << ref
end
end
def $MLRN.post_install(installer)
spm_spec = $MLRN_SPM_SPEC
project = installer.pods_project
self._add_spm_to_target(
project,
project.targets.find { |t| t.name == "MapLibreReactNative"},
spm_spec[:url],
spm_spec[:requirement],
spm_spec[:product_name]
)
installer.aggregate_targets.group_by(&:user_project).each do |project, targets|
targets.each do |target|
target.user_targets.each do |user_target|
self._add_spm_to_target(
project,
user_target,
spm_spec[:url],
spm_spec[:requirement],
spm_spec[:product_name]
)
end
end
end
end
Pod::Spec.new do |s|
s.name = "MapLibreReactNative"
s.version = package["version"]
s.summary = package["description"]
s.homepage = package["homepage"]
s.license = package["license"]
s.authors = package["author"]
s.platforms = { :ios => min_ios_version_supported }
s.source = { :git => "https://github.com/maplibre/maplibre-react-native.git", :tag => "#{s.version}" }
s.source_files = "ios/**/*.{h,m,mm,cpp}"
s.private_header_files = "ios/**/*.h"
install_modules_dependencies(s)
end