Files
react-native/packages/rn-tester/Podfile
T
Riccardo Cipolleschi 5d175c6775 Break Circular Dependency between React-Codegen and React-Fabric (#36210)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/36210

One of the circular dependencies we have in OSS was between React-Codegen and React-Fabric.

React-Codegen generates component which has to depends on React-Fabric because they need to use the files contained in the `react/renderer/view` folder.

React-Fabric contains some components that depends on RNCore, which was generated inside the React-Codegen folder.

This change generates the RNCore components inside the `ReactCommon/react/renderer/components/rncore` folder, breaking the dependency as `rncore` folder is now contained by React-Fabric itself.

**Fun Fact:** That's how it always should have been. There was already a line in the `.gitignore` to exclude the content of `ReactCommon/react/renderer/components/rncore` folder. I guess that with some of the refactoring/previous projects on Codegen, this requirements has slipped.

## Changelog:
[iOS][Breaking] -  generates RNCore components inside the ReactCommon folder and create a new pod for platform-specific ImageManager classes

Reviewed By: sammy-SC, dmytrorykun

Differential Revision: D43304641

fbshipit-source-id: ebb5033ce73dbcd03f880c3e204511fdce04b816
2023-02-20 11:50:10 -08:00

76 lines
2.5 KiB
Ruby

require_relative '../../scripts/react_native_pods'
source 'https://cdn.cocoapods.org/'
platform :ios, min_ios_version_supported
prepare_react_native_project!
IN_CI = ENV['CI'] == 'true'
@prefix_path = "../.."
linkage = ENV['USE_FRAMEWORKS']
USE_FRAMEWORKS = linkage != nil
if USE_FRAMEWORKS
Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
use_frameworks! :linkage => linkage.to_sym
end
def pods(target_name, options = {}, use_flipper: !IN_CI && !USE_FRAMEWORKS)
project 'RNTesterPods.xcodeproj'
fabric_enabled = ENV['USE_FRAMEWORKS'] == 'dynamic' ? false : true
# Hermes is now enabled by default.
# The following line will only disable Hermes if the USE_HERMES envvar is SET to a value other than 1 (e.g. USE_HERMES=0).
hermes_enabled = !ENV.has_key?('USE_HERMES') || ENV['USE_HERMES'] == '1'
puts "Configuring #{target_name} with Fabric #{fabric_enabled ? "enabled" : "disabled"}.#{hermes_enabled ? " Using Hermes engine." : ""}"
if ENV['RCT_NEW_ARCH_ENABLED'] == '1'
# Custom fabric component is only supported when using codegen discovery.
pod 'MyNativeView', :path => "NativeComponentExample"
end
use_react_native!(
path: @prefix_path,
fabric_enabled: fabric_enabled,
hermes_enabled: hermes_enabled,
flipper_configuration: use_flipper ? FlipperConfiguration.enabled : FlipperConfiguration.disabled,
app_path: "#{Dir.pwd}",
config_file_dir: "#{Dir.pwd}/node_modules",
production: !ENV['PRODUCTION'].nil?,
ios_folder: '.',
)
pod 'ReactCommon/turbomodule/samples', :path => "#{@prefix_path}/ReactCommon"
# Additional Pods which aren't included in the default Podfile
pod 'React-RCTPushNotification', :path => "#{@prefix_path}/Libraries/PushNotificationIOS"
pod 'Yoga', :path => "#{@prefix_path}/ReactCommon/yoga", :modular_headers => true
# Additional Pods which are classed as unstable
# RNTester native modules and components
pod 'ScreenshotManager', :path => "NativeModuleExample"
if ENV['RCT_NEW_ARCH_ENABLED'] == '1'
pod 'NativeCxxModuleExample', :path => "NativeCxxModuleExample"
end
end
target 'RNTester' do
pods('RNTester')
end
target 'RNTesterUnitTests' do
pods('RNTesterUnitTests')
pod 'React-RCTTest', :path => "./RCTTest"
end
target 'RNTesterIntegrationTests' do
pods('RNTesterIntegrationTests')
pod 'React-RCTTest', :path => "./RCTTest"
end
post_install do |installer|
react_native_post_install(installer, @prefix_path, :mac_catalyst_enabled => false)
__apply_Xcode_12_5_M1_post_install_workaround(installer)
end