mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Extracting Platform Specific TM code to break dependency cycle between ReactCommon and React-Core (#36461)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/36461 This change breaks a dependency cycle between `ReactCommon` and `React-Core`. `React-Core` depends on `ReactCommon` to have access to the various `TurboModule` native files. `ReactCommon` depends on `React-Core` because the content of the `core/platform/ios` folder and the `samples` folder needs to access the `RCTBridge` and other files in Core. To break the circular dependency, we introduced two new `podspecs`: * `React-NativeModulesApple` for the content of `core/platform/ios`. * `ReactCommon-Samples` for the content of the `samples` folder. In this way, the new dependencies are linear as `React-NativeModulesApple` and `ReactCommon-Samples` depends on `React-Core` and `ReactCommon` and `React-Core` only depends on `ReactCommon`. While doing this, we also make sure that all the include path are aligned, to limit the amount of breaking changes. ## Changelog: [iOS][Breaking] - Split the `ReactCommon/react/nativemodule/core/platform/ios` and `ReactCommon/react/nativemodule/samples` in two separate pods to break circular dependencies. Reviewed By: mdvacca Differential Revision: D44023865 fbshipit-source-id: a97569506350db5735ac5534b1592471de196cbe
This commit is contained in:
committed by
Facebook GitHub Bot
parent
320e51f4c4
commit
21d530208f
@@ -45,7 +45,6 @@ Pod::Spec.new do |s|
|
||||
s.subspec "turbomodule" do |ss|
|
||||
ss.dependency "React-callinvoker", version
|
||||
ss.dependency "React-perflogger", version
|
||||
ss.dependency "React-Core", version
|
||||
ss.dependency "React-cxxreact", version
|
||||
ss.dependency "React-jsi", version
|
||||
ss.dependency "RCT-Folly", folly_version
|
||||
@@ -68,18 +67,7 @@ Pod::Spec.new do |s|
|
||||
end
|
||||
|
||||
ss.subspec "core" do |sss|
|
||||
sss.source_files = "react/nativemodule/core/ReactCommon/**/*.{cpp,h}",
|
||||
"react/nativemodule/core/platform/ios/**/*.{mm,cpp,h}"
|
||||
excluded_files = ENV['USE_FRAMEWORKS'] == nil ?
|
||||
"react/nativemodule/core/ReactCommon/LongLivedObject.h" :
|
||||
"react/nativemodule/core/ReactCommon/{LongLivedObject,CallbackWrapper}.h"
|
||||
sss.exclude_files = excluded_files
|
||||
end
|
||||
|
||||
ss.subspec "samples" do |sss|
|
||||
sss.source_files = "react/nativemodule/samples/ReactCommon/**/*.{cpp,h}",
|
||||
"react/nativemodule/samples/platform/ios/**/*.{mm,cpp,h}"
|
||||
sss.dependency "ReactCommon/turbomodule/core", version
|
||||
sss.source_files = "react/nativemodule/core/ReactCommon/**/*.{cpp,h}"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user