UNPKG

14.2 kBPlain TextView Raw
1# coding: utf-8
2require "json"
3
4package = JSON.parse(File.read(File.join(__dir__, "package.json")))
5version = package['version']
6
7source = { :git => 'https://github.com/facebook/react-native.git' }
8if version == '1000.0.0'
9 # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
10 source[:commit] = `git rev-parse HEAD`.strip
11else
12 source[:tag] = "v#{version}"
13end
14
15folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1'
16folly_version = '2016.10.31.00'
17
18Pod::Spec.new do |s|
19 s.name = "React"
20 s.version = version
21 s.summary = package["description"]
22 s.description = <<-DESC
23 React Native apps are built using the React JS
24 framework, and render directly to native UIKit
25 elements using a fully asynchronous architecture.
26 There is no browser and no HTML. We have picked what
27 we think is the best set of features from these and
28 other technologies to build what we hope to become
29 the best product development framework available,
30 with an emphasis on iteration speed, developer
31 delight, continuity of technology, and absolutely
32 beautiful and fast products with no compromises in
33 quality or capability.
34 DESC
35 s.homepage = "http://facebook.github.io/react-native/"
36 s.license = package["license"]
37 s.author = "Facebook"
38 s.source = source
39 s.default_subspec = "Core"
40 s.requires_arc = true
41 s.platforms = { :ios => "9.0", :tvos => "9.2" }
42 s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => "c++14" }
43 s.preserve_paths = "package.json", "LICENSE", "LICENSE-docs"
44 s.cocoapods_version = ">= 1.2.0"
45
46 s.subspec "Core" do |ss|
47 ss.dependency "yoga", "#{package["version"]}.React"
48 ss.source_files = "React/**/*.{c,h,m,mm,S,cpp}"
49 ss.exclude_files = "**/__tests__/*",
50 "IntegrationTests/*",
51 "React/DevSupport/*",
52 "React/Inspector/*",
53 "ReactCommon/yoga/*",
54 "React/Cxx*/*",
55 "React/Fabric/**/*"
56 ss.ios.exclude_files = "React/**/RCTTV*.*"
57 ss.tvos.exclude_files = "React/Modules/RCTClipboard*",
58 "React/Views/RCTDatePicker*",
59 "React/Views/RCTPicker*",
60 "React/Views/RCTRefreshControl*",
61 "React/Views/RCTSlider*",
62 "React/Views/RCTSwitch*",
63 "React/Views/RCTWebView*"
64 ss.header_dir = "React"
65 ss.framework = "JavaScriptCore"
66 ss.libraries = "stdc++"
67 ss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\"" }
68 end
69
70 s.subspec "CxxBridge" do |ss|
71 ss.dependency "Folly", folly_version
72 ss.dependency "React/Core"
73 ss.dependency "React/cxxreact"
74 ss.compiler_flags = folly_compiler_flags
75 ss.private_header_files = "React/Cxx*/*.h"
76 ss.source_files = "React/Cxx*/*.{h,m,mm}"
77 end
78
79 s.subspec "DevSupport" do |ss|
80 ss.dependency "React/Core"
81 ss.dependency "React/RCTWebSocket"
82 ss.source_files = "React/DevSupport/*",
83 "React/Inspector/*"
84 end
85
86 s.subspec "RCTFabric" do |ss|
87 ss.dependency "Folly", folly_version
88 ss.dependency "React/Core"
89 ss.dependency "React/fabric"
90 ss.compiler_flags = folly_compiler_flags
91 ss.source_files = "React/Fabric/**/*.{c,h,m,mm,S,cpp}"
92 ss.exclude_files = "**/tests/*"
93 ss.header_dir = "React"
94 ss.framework = "JavaScriptCore"
95 ss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\"" }
96 end
97
98 s.subspec "tvOS" do |ss|
99 ss.dependency "React/Core"
100 ss.source_files = "React/**/RCTTV*.{h,m}"
101 end
102
103 s.subspec "jschelpers" do |ss|
104 ss.dependency "Folly", folly_version
105 ss.dependency "React/PrivateDatabase"
106 ss.compiler_flags = folly_compiler_flags
107 ss.source_files = "ReactCommon/jschelpers/*.{cpp,h}"
108 ss.private_header_files = "ReactCommon/jschelpers/*.h"
109 ss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\"" }
110 ss.framework = "JavaScriptCore"
111 end
112
113 s.subspec "jsinspector" do |ss|
114 ss.source_files = "ReactCommon/jsinspector/*.{cpp,h}"
115 ss.private_header_files = "ReactCommon/jsinspector/*.h"
116 ss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\"" }
117 end
118
119 s.subspec "PrivateDatabase" do |ss|
120 ss.source_files = "ReactCommon/privatedata/*.{cpp,h}"
121 ss.private_header_files = "ReactCommon/privatedata/*.h"
122 ss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\"" }
123 end
124
125 s.subspec "cxxreact" do |ss|
126 ss.dependency "React/jschelpers"
127 ss.dependency "React/jsinspector"
128 ss.dependency "boost-for-react-native", "1.63.0"
129 ss.dependency "Folly", folly_version
130 ss.compiler_flags = folly_compiler_flags
131 ss.source_files = "ReactCommon/cxxreact/*.{cpp,h}"
132 ss.exclude_files = "ReactCommon/cxxreact/SampleCxxModule.*"
133 ss.private_header_files = "ReactCommon/cxxreact/*.h"
134 ss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\" \"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/Folly\"" }
135 end
136
137 s.subspec "fabric" do |ss|
138 ss.subspec "activityindicator" do |sss|
139 sss.dependency "Folly", folly_version
140 sss.compiler_flags = folly_compiler_flags
141 sss.source_files = "ReactCommon/fabric/activityindicator/**/*.{cpp,h}"
142 sss.exclude_files = "**/tests/*"
143 sss.header_dir = "fabric/activityindicator"
144 sss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\" \"$(PODS_ROOT)/Folly\"" }
145 end
146
147 ss.subspec "attributedstring" do |sss|
148 sss.dependency "Folly", folly_version
149 sss.compiler_flags = folly_compiler_flags
150 sss.source_files = "ReactCommon/fabric/attributedstring/**/*.{cpp,h}"
151 sss.exclude_files = "**/tests/*"
152 sss.header_dir = "fabric/attributedstring"
153 sss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\" \"$(PODS_ROOT)/Folly\"" }
154 end
155
156 ss.subspec "core" do |sss|
157 sss.dependency "Folly", folly_version
158 sss.compiler_flags = folly_compiler_flags
159 sss.source_files = "ReactCommon/fabric/core/**/*.{cpp,h}"
160 sss.exclude_files = "**/tests/*"
161 sss.header_dir = "fabric/core"
162 sss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\" \"$(PODS_ROOT)/Folly\"" }
163 end
164
165 ss.subspec "debug" do |sss|
166 sss.dependency "Folly", folly_version
167 sss.compiler_flags = folly_compiler_flags
168 sss.source_files = "ReactCommon/fabric/debug/**/*.{cpp,h}"
169 sss.exclude_files = "**/tests/*"
170 sss.header_dir = "fabric/debug"
171 sss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\" \"$(PODS_ROOT)/Folly\"" }
172 end
173
174 ss.subspec "graphics" do |sss|
175 sss.dependency "Folly", folly_version
176 sss.compiler_flags = folly_compiler_flags
177 sss.source_files = "ReactCommon/fabric/graphics/**/*.{cpp,h}"
178 sss.exclude_files = "**/tests/*"
179 sss.header_dir = "fabric/graphics"
180 sss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\" \"$(PODS_ROOT)/Folly\"" }
181 end
182
183 ss.subspec "scrollview" do |sss|
184 sss.dependency "Folly", folly_version
185 sss.compiler_flags = folly_compiler_flags
186 sss.source_files = "ReactCommon/fabric/scrollview/**/*.{cpp,h}"
187 sss.exclude_files = "**/tests/*"
188 sss.header_dir = "fabric/scrollview"
189 sss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\" \"$(PODS_ROOT)/Folly\"" }
190 end
191
192 ss.subspec "text" do |sss|
193 sss.dependency "Folly", folly_version
194 sss.compiler_flags = folly_compiler_flags
195 sss.source_files = "ReactCommon/fabric/text/**/*.{cpp,h}"
196 sss.exclude_files = "**/tests/*"
197 sss.header_dir = "fabric/text"
198 sss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\" \"$(PODS_ROOT)/Folly\"" }
199 end
200
201 ss.subspec "textlayoutmanager" do |sss|
202 sss.dependency "Folly", folly_version
203 sss.compiler_flags = folly_compiler_flags
204 sss.source_files = "ReactCommon/fabric/textlayoutmanager/**/*.{cpp,h,mm}"
205 sss.exclude_files = "**/tests/*"
206 sss.header_dir = "fabric/textlayoutmanager"
207 sss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\" \"$(PODS_ROOT)/Folly\"" }
208 end
209
210 ss.subspec "uimanager" do |sss|
211 sss.dependency "Folly", folly_version
212 sss.compiler_flags = folly_compiler_flags
213 sss.source_files = "ReactCommon/fabric/uimanager/**/*.{cpp,h}"
214 sss.exclude_files = "**/tests/*"
215 sss.header_dir = "fabric/uimanager"
216 sss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\" \"$(PODS_ROOT)/Folly\"" }
217 end
218
219 ss.subspec "view" do |sss|
220 sss.dependency "Folly", folly_version
221 sss.dependency "yoga"
222 sss.compiler_flags = folly_compiler_flags
223 sss.source_files = "ReactCommon/fabric/view/**/*.{cpp,h}"
224 sss.exclude_files = "**/tests/*"
225 sss.header_dir = "fabric/view"
226 sss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\" \"$(PODS_ROOT)/Folly\"" }
227 end
228 end
229
230 # Fabric sample target for sample app purpose.
231 s.subspec "RCTFabricSample" do |ss|
232 ss.dependency "Folly", folly_version
233 ss.compiler_flags = folly_compiler_flags
234 ss.source_files = "ReactCommon/fabric/sample/**/*.{cpp,h}"
235 ss.exclude_files = "**/tests/*"
236 ss.header_dir = "fabric/sample"
237 ss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\" \"$(PODS_ROOT)/Folly\"" }
238 end
239
240 s.subspec "ART" do |ss|
241 ss.dependency "React/Core"
242 ss.source_files = "Libraries/ART/**/*.{h,m}"
243 end
244
245 s.subspec "RCTActionSheet" do |ss|
246 ss.dependency "React/Core"
247 ss.source_files = "Libraries/ActionSheetIOS/*.{h,m}"
248 end
249
250 s.subspec "RCTAnimation" do |ss|
251 ss.dependency "React/Core"
252 ss.source_files = "Libraries/NativeAnimation/{Drivers/*,Nodes/*,*}.{h,m}"
253 ss.header_dir = "RCTAnimation"
254 end
255
256 s.subspec "RCTBlob" do |ss|
257 ss.dependency "React/Core"
258 ss.source_files = "Libraries/Blob/*.{h,m,mm}"
259 ss.preserve_paths = "Libraries/Blob/*.js"
260 end
261
262 s.subspec "RCTCameraRoll" do |ss|
263 ss.dependency "React/Core"
264 ss.dependency 'React/RCTImage'
265 ss.source_files = "Libraries/CameraRoll/*.{h,m}"
266 end
267
268 s.subspec "RCTGeolocation" do |ss|
269 ss.dependency "React/Core"
270 ss.source_files = "Libraries/Geolocation/*.{h,m}"
271 end
272
273 s.subspec "RCTImage" do |ss|
274 ss.dependency "React/Core"
275 ss.dependency "React/RCTNetwork"
276 ss.source_files = "Libraries/Image/*.{h,m}"
277 end
278
279 s.subspec "RCTNetwork" do |ss|
280 ss.dependency "React/Core"
281 ss.source_files = "Libraries/Network/*.{h,m,mm}"
282 end
283
284 s.subspec "RCTPushNotification" do |ss|
285 ss.dependency "React/Core"
286 ss.source_files = "Libraries/PushNotificationIOS/*.{h,m}"
287 end
288
289 s.subspec "RCTSettings" do |ss|
290 ss.dependency "React/Core"
291 ss.source_files = "Libraries/Settings/*.{h,m}"
292 end
293
294 s.subspec "RCTText" do |ss|
295 ss.dependency "React/Core"
296 ss.source_files = "Libraries/Text/**/*.{h,m}"
297 end
298
299 s.subspec "RCTVibration" do |ss|
300 ss.dependency "React/Core"
301 ss.source_files = "Libraries/Vibration/*.{h,m}"
302 end
303
304 s.subspec "RCTWebSocket" do |ss|
305 ss.dependency "React/Core"
306 ss.dependency "React/RCTBlob"
307 ss.dependency "React/fishhook"
308 ss.source_files = "Libraries/WebSocket/*.{h,m}"
309 end
310
311 s.subspec "fishhook" do |ss|
312 ss.header_dir = "fishhook"
313 ss.source_files = "Libraries/fishhook/*.{h,c}"
314 end
315
316 s.subspec "RCTLinkingIOS" do |ss|
317 ss.dependency "React/Core"
318 ss.source_files = "Libraries/LinkingIOS/*.{h,m}"
319 end
320
321 s.subspec "RCTTest" do |ss|
322 ss.dependency "React/Core"
323 ss.source_files = "Libraries/RCTTest/**/*.{h,m}"
324 ss.frameworks = "XCTest"
325 end
326
327 s.subspec "_ignore_me_subspec_for_linting_" do |ss|
328 ss.dependency "React/Core"
329 ss.dependency "React/CxxBridge"
330 end
331end