1 |
|
2 | require "json"
|
3 |
|
4 | package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
5 | version = package['version']
|
6 |
|
7 | source = { :git => 'https://github.com/facebook/react-native.git' }
|
8 | if version == '1000.0.0'
|
9 |
|
10 | source[:commit] = `git rev-parse HEAD`.strip
|
11 | else
|
12 | source[:tag] = "v#{version}"
|
13 | end
|
14 |
|
15 | folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1'
|
16 | folly_version = '2016.10.31.00'
|
17 |
|
18 | Pod::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 |
|
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
|
331 | end
|