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_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1' 14folly_compiler_flags = folly_flags + ' ' + '-Wno-comma -Wno-shorten-64-to-32' 15folly_version = '2021.07.22.00' 16boost_compiler_flags = '-Wno-documentation' 17 18header_search_paths = [ 19 "\"$(PODS_TARGET_SRCROOT)/ReactCommon\"", 20 "\"$(PODS_ROOT)/boost\"", 21 "\"$(PODS_ROOT)/DoubleConversion\"", 22 "\"$(PODS_ROOT)/RCT-Folly\"", 23 "\"$(PODS_ROOT)/Headers/Private/React-Core\"", 24 "\"$(PODS_ROOT)/Headers/Public/React-Codegen\"", 25 "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Codegen/React_Codegen.framework/Headers\"", 26] 27 28if ENV['USE_FRAMEWORKS'] 29 header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\"" 30 header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/textlayoutmanager/platform/ios\"" 31 header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/textinput/iostextinput\"" 32 header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/imagemanager/platform/ios\"" 33 header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers\"" 34 header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\"" 35 header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-ImageManager/React_ImageManager.framework/Headers\"" 36 header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\"" 37 header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-debug/React_debug.framework/Headers\"" 38 header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers\"" 39 header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-runtimescheduler/React_runtimescheduler.framework/Headers\"" 40end 41 42Pod::Spec.new do |s| 43 s.name = "ABI49_0_0React-RCTFabric" 44 s.version = version 45 s.summary = "RCTFabric for React Native." 46 s.homepage = "https://reactnative.dev/" 47 s.license = package["license"] 48 s.author = "Meta Platforms, Inc. and its affiliates" 49 s.platforms = { :ios => "12.4" } 50 s.source = { :path => "." } 51 s.source_files = "Fabric/**/*.{c,h,m,mm,S,cpp}" 52 s.exclude_files = "**/tests/*", 53 "**/android/*", 54 s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags 55 s.header_dir = "ABI49_0_0React" 56 s.module_name = "ABI49_0_0RCTFabric" 57 s.framework = "JavaScriptCore" 58 s.pod_target_xcconfig = { 59 "HEADER_SEARCH_PATHS" => header_search_paths, 60 "OTHER_CFLAGS" => "$(inherited) -DRN_FABRIC_ENABLED" + " " + folly_flags, 61 "CLANG_CXX_LANGUAGE_STANDARD" => "c++17" 62 }.merge!(ENV['USE_FRAMEWORKS'] != nil ? { 63 "PUBLIC_HEADERS_FOLDER_PATH" => "$(CONTENTS_FOLDER_PATH)/Headers/React" 64 }: {}) 65 66 s.dependency "ABI49_0_0React-Core", version 67 s.dependency "ABI49_0_0React-Fabric", version 68 s.dependency "ABI49_0_0React-RCTImage", version 69 s.dependency "ABI49_0_0React-ImageManager" 70 s.dependency "RCT-Folly/Fabric", folly_version 71 s.dependency "glog" 72 s.dependency "ABI49_0_0Yoga" 73 s.dependency "ABI49_0_0React-RCTText" 74 s.dependency "ABI49_0_0React-utils" 75 s.dependency "ABI49_0_0React-runtimescheduler" 76 77 if ENV["USE_HERMES"] == nil || ENV["USE_HERMES"] == "1" 78 s.dependency "ABI49_0_0hermes-engine" 79 else 80 s.dependency "ABI49_0_0React-jsi" 81 end 82 83 s.test_spec 'Tests' do |test_spec| 84 test_spec.source_files = "Tests/**/*.{mm}" 85 test_spec.framework = "XCTest" 86 end 87end 88