1# Copyright (c) Meta Platforms, Inc. and affiliates. 2# 3# This source code is licensed under the MIT license found in the 4# LICENSE file in the root directory of this source tree. 5 6require "json" 7 8package = JSON.parse(File.read(File.join(__dir__, "..", "package.json"))) 9version = package['version'] 10 11 12 13folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32 -Wno-gnu-zero-variadic-macro-arguments' 14folly_version = '2021.07.22.00' 15folly_dep_name = 'RCT-Folly/Fabric' 16boost_compiler_flags = '-Wno-documentation' 17react_native_path = ".." 18 19Pod::Spec.new do |s| 20 s.name = "ABI49_0_0React-Fabric" 21 s.version = version 22 s.summary = "Fabric for React Native." 23 s.homepage = "https://reactnative.dev/" 24 s.license = package["license"] 25 s.author = "Meta Platforms, Inc. and its affiliates" 26 s.platforms = { :ios => "12.4" } 27 s.source = { :path => "." } 28 s.source_files = "dummyFile.cpp" 29 s.pod_target_xcconfig = { "USE_HEADERMAP" => "YES", 30 "CLANG_CXX_LANGUAGE_STANDARD" => "c++17" } 31 32 if ENV['USE_FRAMEWORKS'] 33 s.header_mappings_dir = File.absolute_path('./') 34 s.module_name = 'ABI49_0_0React_Fabric' 35 end 36 37 s.dependency folly_dep_name, folly_version 38 s.dependency "ABI49_0_0React-graphics", version 39 s.dependency "ABI49_0_0React-jsiexecutor", version 40 s.dependency "ABI49_0_0RCTRequired", version 41 s.dependency "ABI49_0_0RCTTypeSafety", version 42 s.dependency "ABI49_0_0ReactCommon/turbomodule/core", version 43 s.dependency "ABI49_0_0React-jsi", version 44 s.dependency "ABI49_0_0React-logger" 45 s.dependency "glog" 46 s.dependency "DoubleConversion" 47 s.dependency "ABI49_0_0React-Core" 48 s.dependency "ABI49_0_0React-debug" 49 s.dependency "ABI49_0_0React-utils" 50 s.dependency "ABI49_0_0React-runtimescheduler" 51 52 if ENV["USE_HERMES"] == nil || ENV["USE_HERMES"] == "1" 53 s.dependency "ABI49_0_0hermes-engine" 54 else 55 s.dependency "ABI49_0_0React-jsi" 56 end 57 58 s.subspec "animations" do |ss| 59 ss.dependency folly_dep_name, folly_version 60 ss.compiler_flags = folly_compiler_flags 61 ss.source_files = "react/renderer/animations/**/*.{m,mm,cpp,h}" 62 ss.exclude_files = "react/renderer/animations/tests" 63 ss.header_dir = "ABI49_0_0react/renderer/animations" 64 end 65 66 s.subspec "attributedstring" do |ss| 67 ss.dependency folly_dep_name, folly_version 68 ss.compiler_flags = folly_compiler_flags 69 ss.source_files = "react/renderer/attributedstring/**/*.{m,mm,cpp,h}" 70 ss.exclude_files = "react/renderer/attributedstring/tests" 71 ss.header_dir = "ABI49_0_0react/renderer/attributedstring" 72 end 73 74 s.subspec "butter" do |ss| 75 ss.dependency folly_dep_name, folly_version 76 ss.compiler_flags = folly_compiler_flags 77 ss.source_files = "butter/**/*.{m,mm,cpp,h}" 78 ss.exclude_files = "butter/tests" 79 ss.header_dir = "ABI49_0_0butter" 80 end 81 82 s.subspec "config" do |ss| 83 ss.source_files = "react/config/*.{m,mm,cpp,h}" 84 ss.header_dir = "ABI49_0_0react/config" 85 end 86 87 s.subspec "core" do |ss| 88 header_search_path = [ 89 "\"$(PODS_ROOT)/boost\"", 90 "\"$(PODS_TARGET_SRCROOT)/ReactCommon\"", 91 "\"$(PODS_ROOT)/RCT-Folly\"", 92 ] 93 94 if ENV['USE_FRAMEWORKS'] 95 header_search_path = header_search_path + [ 96 "\"$(PODS_TARGET_SRCROOT)\"", 97 "\"$(PODS_ROOT)/DoubleConversion\"", 98 "\"$(PODS_CONFIGURATION_BUILD_DIR)/React-Codegen/React_Codegen.framework/Headers\"", 99 "\"$(PODS_CONFIGURATION_BUILD_DIR)/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\"", 100 "\"$(PODS_TARGET_SRCROOT)/react/renderer/textlayoutmanager/platform/ios\"", 101 "\"$(PODS_TARGET_SRCROOT)/react/renderer/components/textinput/iostextinput\"" 102 ] 103 end 104 105 ss.dependency folly_dep_name, folly_version 106 ss.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags 107 ss.source_files = "react/renderer/core/**/*.{m,mm,cpp,h}" 108 ss.exclude_files = "react/renderer/core/tests" 109 ss.header_dir = "ABI49_0_0react/renderer/core" 110 ss.pod_target_xcconfig = { 111 "HEADER_SEARCH_PATHS" => header_search_path.join(" ") 112 } 113 end 114 115 s.subspec "componentregistry" do |ss| 116 ss.dependency folly_dep_name, folly_version 117 ss.compiler_flags = folly_compiler_flags 118 ss.source_files = "react/renderer/componentregistry/**/*.{m,mm,cpp,h}" 119 ss.header_dir = "ABI49_0_0react/renderer/componentregistry" 120 end 121 122 s.subspec "componentregistrynative" do |ss| 123 ss.dependency folly_dep_name, folly_version 124 ss.compiler_flags = folly_compiler_flags 125 ss.source_files = "react/renderer/componentregistry/native/**/*.{m,mm,cpp,h}" 126 ss.header_dir = "ABI49_0_0react/renderer/componentregistry/native" 127 end 128 129 s.subspec "components" do |ss| 130 ss.subspec "activityindicator" do |sss| 131 sss.dependency folly_dep_name, folly_version 132 sss.compiler_flags = folly_compiler_flags 133 sss.source_files = "react/renderer/components/activityindicator/**/*.{m,mm,cpp,h}" 134 sss.exclude_files = "react/renderer/components/activityindicator/tests" 135 sss.header_dir = "ABI49_0_0react/renderer/components/activityindicator" 136 end 137 138 ss.subspec "image" do |sss| 139 sss.dependency folly_dep_name, folly_version 140 sss.compiler_flags = folly_compiler_flags 141 sss.source_files = "react/renderer/components/image/**/*.{m,mm,cpp,h}" 142 sss.exclude_files = "react/renderer/components/image/tests" 143 sss.header_dir = "ABI49_0_0react/renderer/components/image" 144 end 145 146 ss.subspec "inputaccessory" do |sss| 147 sss.dependency folly_dep_name, folly_version 148 sss.compiler_flags = folly_compiler_flags 149 sss.source_files = "react/renderer/components/inputaccessory/**/*.{m,mm,cpp,h}" 150 sss.exclude_files = "react/renderer/components/inputaccessory/tests" 151 sss.header_dir = "ABI49_0_0react/renderer/components/inputaccessory" 152 end 153 154 ss.subspec "legacyviewmanagerinterop" do |sss| 155 sss.dependency folly_dep_name, folly_version 156 sss.compiler_flags = folly_compiler_flags 157 sss.source_files = "react/renderer/components/legacyviewmanagerinterop/**/*.{m,mm,cpp,h}" 158 sss.exclude_files = "react/renderer/components/legacyviewmanagerinterop/tests" 159 sss.header_dir = "ABI49_0_0react/renderer/components/legacyviewmanagerinterop" 160 sss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/Headers/Private/React-Core\"" } 161 end 162 163 ss.subspec "modal" do |sss| 164 sss.dependency folly_dep_name, folly_version 165 sss.compiler_flags = folly_compiler_flags 166 sss.source_files = "react/renderer/components/modal/**/*.{m,mm,cpp,h}" 167 sss.exclude_files = "react/renderer/components/modal/tests" 168 sss.header_dir = "ABI49_0_0react/renderer/components/modal" 169 end 170 171 ss.subspec "rncore" do |sss| 172 sss.dependency folly_dep_name, folly_version 173 sss.compiler_flags = folly_compiler_flags 174 sss.source_files = "react/renderer/components/rncore/**/*.{m,mm,cpp,h}" 175 sss.header_dir = "ABI49_0_0react/renderer/components/rncore" 176 end 177 178 ss.subspec "root" do |sss| 179 sss.dependency folly_dep_name, folly_version 180 sss.compiler_flags = folly_compiler_flags 181 sss.source_files = "react/renderer/components/root/**/*.{m,mm,cpp,h}" 182 sss.exclude_files = "react/renderer/components/root/tests" 183 sss.header_dir = "ABI49_0_0react/renderer/components/root" 184 end 185 186 ss.subspec "safeareaview" do |sss| 187 sss.dependency folly_dep_name, folly_version 188 sss.compiler_flags = folly_compiler_flags 189 sss.source_files = "react/renderer/components/safeareaview/**/*.{m,mm,cpp,h}" 190 sss.exclude_files = "react/renderer/components/safeareaview/tests" 191 sss.header_dir = "ABI49_0_0react/renderer/components/safeareaview" 192 193 end 194 195 ss.subspec "scrollview" do |sss| 196 sss.dependency folly_dep_name, folly_version 197 sss.compiler_flags = folly_compiler_flags 198 sss.source_files = "react/renderer/components/scrollview/**/*.{m,mm,cpp,h}" 199 sss.exclude_files = "react/renderer/components/scrollview/tests" 200 sss.header_dir = "ABI49_0_0react/renderer/components/scrollview" 201 202 end 203 204 ss.subspec "text" do |sss| 205 sss.dependency folly_dep_name, folly_version 206 sss.compiler_flags = folly_compiler_flags 207 sss.source_files = "react/renderer/components/text/**/*.{m,mm,cpp,h}" 208 sss.exclude_files = "react/renderer/components/text/tests" 209 sss.header_dir = "ABI49_0_0react/renderer/components/text" 210 211 end 212 213 ss.subspec "textinput" do |sss| 214 sss.dependency folly_dep_name, folly_version 215 sss.compiler_flags = folly_compiler_flags 216 sss.source_files = "react/renderer/components/textinput/iostextinput/**/*.{m,mm,cpp,h}" 217 sss.exclude_files = "react/renderer/components/textinput/iostextinput/tests" 218 sss.header_dir = "ABI49_0_0react/renderer/components/iostextinput" 219 220 end 221 222 ss.subspec "unimplementedview" do |sss| 223 sss.dependency folly_dep_name, folly_version 224 sss.compiler_flags = folly_compiler_flags 225 sss.source_files = "react/renderer/components/unimplementedview/**/*.{m,mm,cpp,h}" 226 sss.exclude_files = "react/renderer/components/unimplementedview/tests" 227 sss.header_dir = "ABI49_0_0react/renderer/components/unimplementedview" 228 229 end 230 231 ss.subspec "view" do |sss| 232 sss.dependency folly_dep_name, folly_version 233 sss.dependency "ABI49_0_0Yoga" 234 sss.compiler_flags = folly_compiler_flags 235 sss.source_files = "react/renderer/components/view/**/*.{m,mm,cpp,h}" 236 sss.exclude_files = "react/renderer/components/view/tests" 237 sss.header_dir = "ABI49_0_0react/renderer/components/view" 238 239 end 240 end 241 242 s.subspec "debug_renderer" do |ss| 243 ss.dependency folly_dep_name, folly_version 244 ss.compiler_flags = folly_compiler_flags 245 ss.source_files = "react/renderer/debug/**/*.{m,mm,cpp,h}" 246 ss.exclude_files = "react/renderer/debug/tests" 247 ss.header_dir = "ABI49_0_0react/renderer/debug" 248 end 249 250 s.subspec "imagemanager" do |ss| 251 ss.dependency folly_dep_name, folly_version 252 ss.compiler_flags = folly_compiler_flags 253 ss.source_files = "react/renderer/imagemanager/*.{m,mm,cpp,h}" 254 ss.header_dir = "ABI49_0_0react/renderer/imagemanager" 255 end 256 257 s.subspec "mapbuffer" do |ss| 258 ss.dependency folly_dep_name, folly_version 259 ss.compiler_flags = folly_compiler_flags 260 ss.source_files = "react/renderer/mapbuffer/**/*.{m,mm,cpp,h}" 261 ss.exclude_files = "react/renderer/mapbuffer/tests" 262 ss.header_dir = "ABI49_0_0react/renderer/mapbuffer" 263 end 264 265 s.subspec "mounting" do |ss| 266 ss.dependency folly_dep_name, folly_version 267 ss.compiler_flags = folly_compiler_flags 268 ss.source_files = "react/renderer/mounting/**/*.{m,mm,cpp,h}" 269 ss.exclude_files = "react/renderer/mounting/tests" 270 ss.header_dir = "ABI49_0_0react/renderer/mounting" 271 end 272 273 s.subspec "scheduler" do |ss| 274 ss.dependency folly_dep_name, folly_version 275 ss.compiler_flags = folly_compiler_flags 276 ss.source_files = "react/renderer/scheduler/**/*.{m,mm,cpp,h}" 277 ss.header_dir = "ABI49_0_0react/renderer/scheduler" 278 end 279 280 s.subspec "templateprocessor" do |ss| 281 ss.dependency folly_dep_name, folly_version 282 ss.compiler_flags = folly_compiler_flags 283 ss.source_files = "react/renderer/templateprocessor/**/*.{m,mm,cpp,h}" 284 ss.exclude_files = "react/renderer/templateprocessor/tests" 285 ss.header_dir = "ABI49_0_0react/renderer/templateprocessor" 286 end 287 288 s.subspec "textlayoutmanager" do |ss| 289 ss.dependency folly_dep_name, folly_version 290 ss.dependency "ABI49_0_0React-Fabric/uimanager" 291 ss.compiler_flags = folly_compiler_flags 292 ss.source_files = "react/renderer/textlayoutmanager/platform/ios/**/*.{m,mm,cpp,h}", 293 "react/renderer/textlayoutmanager/*.{m,mm,cpp,h}" 294 ss.exclude_files = "react/renderer/textlayoutmanager/tests", 295 "react/renderer/textlayoutmanager/platform/android", 296 "react/renderer/textlayoutmanager/platform/cxx" 297 ss.header_dir = "ABI49_0_0react/renderer/textlayoutmanager" 298 end 299 300 s.subspec "uimanager" do |ss| 301 ss.dependency folly_dep_name, folly_version 302 ss.compiler_flags = folly_compiler_flags 303 ss.source_files = "react/renderer/uimanager/**/*.{m,mm,cpp,h}" 304 ss.exclude_files = "react/renderer/uimanager/tests" 305 ss.header_dir = "ABI49_0_0react/renderer/uimanager" 306 end 307 308 s.subspec "telemetry" do |ss| 309 ss.dependency folly_dep_name, folly_version 310 ss.compiler_flags = folly_compiler_flags 311 ss.source_files = "react/renderer/telemetry/**/*.{m,mm,cpp,h}" 312 ss.exclude_files = "react/renderer/telemetry/tests" 313 ss.header_dir = "ABI49_0_0react/renderer/telemetry" 314 315 end 316 317 s.subspec "leakchecker" do |ss| 318 ss.dependency folly_dep_name, folly_version 319 ss.compiler_flags = folly_compiler_flags 320 ss.source_files = "react/renderer/leakchecker/**/*.{cpp,h}" 321 ss.exclude_files = "react/renderer/leakchecker/tests" 322 ss.header_dir = "ABI49_0_0react/renderer/leakchecker" 323 ss.pod_target_xcconfig = { "GCC_WARN_PEDANTIC" => "YES" } 324 end 325end 326