mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
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
76 lines
2.5 KiB
Ruby
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
|