Skip to content

Commit

Permalink
Fix duplication across and rncore and FBReactNativeComponentSpec (#43385
Browse files Browse the repository at this point in the history
)

Summary:
Pull Request resolved: #43385

`rncore` and `FBReactNativeComponentSpec` contain the same symbols, which leads to conflicts when we try to merge them into a single shared library. Cleanup the duplication and standardize on `FBReactNativeComponentSpec` everywhere. I've left the Android OSS targets as is, to avoid breaking deps.

Changelog: [Internal]

Reviewed By: cortinico, dmytrorykun

Differential Revision: D54630694

fbshipit-source-id: 75cb961ded9fd75508755c0530e29409fef801cf
  • Loading branch information
javache authored and facebook-github-bot committed Mar 18, 2024
1 parent d53cc2b commit ef77087
Show file tree
Hide file tree
Showing 27 changed files with 169 additions and 84 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ vendor/
/packages/react-native/React/FBReactNativeSpec/FBReactNativeSpec
/packages/react-native-codegen/lib
/packages/react-native-codegen/tmp/
/packages/react-native/ReactCommon/react/renderer/components/FBReactNativeComponentSpec/
/packages/react-native/ReactCommon/react/renderer/components/rncore/
/packages/rn-tester/NativeModuleExample/ScreenshotManagerSpec*
/**/RCTThirdPartyFabricComponentsProvider.*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,8 @@ std::shared_ptr<TurboModule> ${libraryName}_ModuleProvider(const std::string &mo
// Note: this CMakeLists.txt template includes dependencies for both NativeModule and components.
const CMakeListsTemplate = ({
libraryName,
}: $ReadOnly<{libraryName: string}>) => {
targetName,
}: $ReadOnly<{libraryName: string, targetName: string}>) => {
return `# Copyright (c) Meta Platforms, Inc. and affiliates.
#
# This source code is licensed under the MIT license found in the
Expand All @@ -75,20 +76,20 @@ set(CMAKE_VERBOSE_MAKEFILE on)
file(GLOB react_codegen_SRCS CONFIGURE_DEPENDS *.cpp react/renderer/components/${libraryName}/*.cpp)
add_library(
react_codegen_${libraryName}
react_codegen_${targetName}
SHARED
\${react_codegen_SRCS}
)
target_include_directories(react_codegen_${libraryName} PUBLIC . react/renderer/components/${libraryName})
target_include_directories(react_codegen_${targetName} PUBLIC . react/renderer/components/${libraryName})
target_link_libraries(
react_codegen_${libraryName}
react_codegen_${targetName}
fbjni
folly_runtime
glog
jsi
${libraryName !== 'rncore' ? 'react_codegen_rncore' : ''}
${targetName !== 'rncore' ? 'react_codegen_rncore' : ''}
react_debug
react_nativemodule_core
react_render_componentregistry
Expand All @@ -105,7 +106,7 @@ target_link_libraries(
)
target_compile_options(
react_codegen_${libraryName}
react_codegen_${targetName}
PRIVATE
-DLOG_TAG=\\"ReactNative\\"
-fexceptions
Expand Down Expand Up @@ -142,9 +143,12 @@ module.exports = {
modules: modules,
libraryName: libraryName.replace(/-/g, '_'),
});
// Use rncore as target name for backwards compat
const targetName =
libraryName === 'FBReactNativeComponentSpec' ? 'rncore' : libraryName;
return new Map([
[`jni/${fileName}`, replacedTemplate],
['jni/CMakeLists.txt', CMakeListsTemplate({libraryName: libraryName})],
['jni/CMakeLists.txt', CMakeListsTemplate({libraryName, targetName})],
]);
},
};
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@

#import <React/RCTConversions.h>

#import <react/renderer/components/rncore/ComponentDescriptors.h>
#import <react/renderer/components/rncore/EventEmitters.h>
#import <react/renderer/components/rncore/Props.h>
#import <react/renderer/components/FBReactNativeComponentSpec/ComponentDescriptors.h>
#import <react/renderer/components/FBReactNativeComponentSpec/EventEmitters.h>
#import <react/renderer/components/FBReactNativeComponentSpec/Props.h>

#import "RCTFabricComponentsPlugins.h"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

#import <React/RCTViewComponentView.h>

#import <react/renderer/components/rncore/RCTComponentViewHelpers.h>
#import <react/renderer/components/FBReactNativeComponentSpec/RCTComponentViewHelpers.h>

@interface RCTDebuggingOverlayComponentView : RCTViewComponentView <RCTDebuggingOverlayViewProtocol>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@
#import <React/RCTDefines.h>
#import <React/RCTLog.h>

#import <react/renderer/components/rncore/ComponentDescriptors.h>
#import <react/renderer/components/rncore/EventEmitters.h>
#import <react/renderer/components/rncore/Props.h>
#import <react/renderer/components/rncore/RCTComponentViewHelpers.h>
#import <react/renderer/components/FBReactNativeComponentSpec/ComponentDescriptors.h>
#import <react/renderer/components/FBReactNativeComponentSpec/EventEmitters.h>
#import <react/renderer/components/FBReactNativeComponentSpec/Props.h>
#import <react/renderer/components/FBReactNativeComponentSpec/RCTComponentViewHelpers.h>

#import "RCTFabricComponentsPlugins.h"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
#import <React/RCTSurfaceTouchHandler.h>
#import <React/RCTUtils.h>
#import <React/UIView+React.h>
#import <react/renderer/components/FBReactNativeComponentSpec/Props.h>
#import <react/renderer/components/inputaccessory/InputAccessoryComponentDescriptor.h>
#import <react/renderer/components/rncore/Props.h>
#import "RCTInputAccessoryContentView.h"

#import "RCTFabricComponentsPlugins.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
#import <React/RCTBridge+Private.h>
#import <React/RCTModalManager.h>
#import <React/UIView+React.h>
#import <react/renderer/components/FBReactNativeComponentSpec/EventEmitters.h>
#import <react/renderer/components/FBReactNativeComponentSpec/Props.h>
#import <react/renderer/components/modal/ModalHostViewComponentDescriptor.h>
#import <react/renderer/components/modal/ModalHostViewState.h>
#import <react/renderer/components/rncore/EventEmitters.h>
#import <react/renderer/components/rncore/Props.h>

#import "RCTConversions.h"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@

#import "RCTPullToRefreshViewComponentView.h"

#import <react/renderer/components/rncore/ComponentDescriptors.h>
#import <react/renderer/components/rncore/EventEmitters.h>
#import <react/renderer/components/rncore/Props.h>
#import <react/renderer/components/rncore/RCTComponentViewHelpers.h>
#import <react/renderer/components/FBReactNativeComponentSpec/ComponentDescriptors.h>
#import <react/renderer/components/FBReactNativeComponentSpec/EventEmitters.h>
#import <react/renderer/components/FBReactNativeComponentSpec/Props.h>
#import <react/renderer/components/FBReactNativeComponentSpec/RCTComponentViewHelpers.h>

#import <React/RCTConversions.h>
#import <React/RCTRefreshableProtocol.h>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@

#import <React/RCTConversions.h>

#import <react/renderer/components/rncore/ComponentDescriptors.h>
#import <react/renderer/components/rncore/EventEmitters.h>
#import <react/renderer/components/rncore/Props.h>
#import <react/renderer/components/rncore/RCTComponentViewHelpers.h>
#import <react/renderer/components/FBReactNativeComponentSpec/ComponentDescriptors.h>
#import <react/renderer/components/FBReactNativeComponentSpec/EventEmitters.h>
#import <react/renderer/components/FBReactNativeComponentSpec/Props.h>
#import <react/renderer/components/FBReactNativeComponentSpec/RCTComponentViewHelpers.h>

#import "RCTFabricComponentsPlugins.h"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@

#import "RCTUnimplementedNativeComponentView.h"

#import <react/renderer/components/rncore/ComponentDescriptors.h>
#import <react/renderer/components/rncore/EventEmitters.h>
#import <react/renderer/components/rncore/Props.h>
#import <react/renderer/components/FBReactNativeComponentSpec/ComponentDescriptors.h>
#import <react/renderer/components/FBReactNativeComponentSpec/EventEmitters.h>
#import <react/renderer/components/FBReactNativeComponentSpec/Props.h>

using namespace facebook::react;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@

#import "RCTUnimplementedViewComponentView.h"

#import <react/renderer/components/rncore/ComponentDescriptors.h>
#import <react/renderer/components/rncore/EventEmitters.h>
#import <react/renderer/components/rncore/Props.h>
#import <react/renderer/components/FBReactNativeComponentSpec/ComponentDescriptors.h>
#import <react/renderer/components/FBReactNativeComponentSpec/EventEmitters.h>
#import <react/renderer/components/FBReactNativeComponentSpec/Props.h>

#import <react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h>
#import <react/renderer/components/unimplementedview/UnimplementedViewShadowNode.h>
Expand Down
4 changes: 1 addition & 3 deletions packages/react-native/ReactAndroid/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -769,9 +769,7 @@ dependencies {
}

react {
// TODO: The library name is chosen for parity with Fabric components & iOS
// This should be changed to a more generic name, e.g. `ReactCoreSpec`.
libraryName = "rncore"
libraryName = "FBReactNativeComponentSpec"
jsRootDir = file("../src")
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@
#include <fbjni/fbjni.h>

#include <react/renderer/componentregistry/ComponentDescriptorRegistry.h>
#include <react/renderer/components/FBReactNativeComponentSpec/ComponentDescriptors.h>
#include <react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h>
#include <react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h>
#include <react/renderer/components/image/ImageComponentDescriptor.h>
#include <react/renderer/components/modal/ModalHostViewComponentDescriptor.h>
#include <react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h>
#include <react/renderer/components/rncore/ComponentDescriptors.h>
#include <react/renderer/components/scrollview/ScrollViewComponentDescriptor.h>
#include <react/renderer/components/text/ParagraphComponentDescriptor.h>
#include <react/renderer/components/text/RawTextComponentDescriptor.h>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include <fbjni/fbjni.h>
#include <react/debug/react_native_assert.h>
#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
#include <react/renderer/components/rncore/ComponentDescriptors.h>
#include <react/renderer/components/FBReactNativeComponentSpec/ComponentDescriptors.h>

namespace facebook::react {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@

#include <algorithm>

#include <FBReactNativeSpec.h>
#include <react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h>
#include <react/nativemodule/microtasks/NativeMicrotasks.h>
#include <rncore.h>

namespace facebook::react {

Expand Down Expand Up @@ -95,7 +95,7 @@ std::shared_ptr<TurboModule> DefaultTurboModuleManagerDelegate::getTurboModule(
return resolvedModule;
}
}
return rncore_ModuleProvider(name, params);
return FBReactNativeSpec_ModuleProvider(name, params);
}

} // namespace facebook::react
12 changes: 6 additions & 6 deletions packages/react-native/ReactCommon/React-Fabric.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -156,11 +156,11 @@ Pod::Spec.new do |s|
sss.header_dir = "react/renderer/components/modal"
end

ss.subspec "rncore" do |sss|
ss.subspec "FBReactNativeComponentSpec" do |sss|
sss.dependency folly_dep_name, folly_version
sss.compiler_flags = folly_compiler_flags
sss.source_files = "react/renderer/components/rncore/**/*.{m,mm,cpp,h}"
sss.header_dir = "react/renderer/components/rncore"
sss.source_files = "react/renderer/components/FBReactNativeComponentSpec/**/*.{m,mm,cpp,h}"
sss.header_dir = "react/renderer/components/FBReactNativeComponentSpec"
end

ss.subspec "root" do |sss|
Expand Down Expand Up @@ -304,13 +304,13 @@ Pod::Spec.new do |s|

s.script_phases = [
{
:name => '[RN]Check rncore',
:name => '[RN] Check FBReactNativeComponentSpec codegen',
:execution_position => :before_compile,
:script => <<-EOS
echo "Checking whether Codegen has run..."
rncorePath="$REACT_NATIVE_PATH/ReactCommon/react/renderer/components/rncore"
codegen_path="$REACT_NATIVE_PATH/ReactCommon/react/renderer/components/FBReactNativeComponentSpec"
if [[ ! -d "$rncorePath" ]]; then
if [[ ! -d "$codegen_path" ]]; then
echo 'error: Codegen did not run properly in your project. Please reinstall cocoapods with `bundle exec pod install`.'
exit 1
fi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@

#pragma once

#include <react/renderer/components/FBReactNativeComponentSpec/EventEmitters.h>
#include <react/renderer/components/FBReactNativeComponentSpec/Props.h>
#include <react/renderer/components/inputaccessory/InputAccessoryState.h>
#include <react/renderer/components/rncore/EventEmitters.h>
#include <react/renderer/components/rncore/Props.h>
#include <react/renderer/components/view/ConcreteViewShadowNode.h>

namespace facebook::react {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@

#pragma once

#include <react/renderer/components/FBReactNativeComponentSpec/EventEmitters.h>
#include <react/renderer/components/FBReactNativeComponentSpec/Props.h>
#include <react/renderer/components/modal/ModalHostViewState.h>
#include <react/renderer/components/rncore/EventEmitters.h>
#include <react/renderer/components/rncore/Props.h>
#include <react/renderer/components/view/ConcreteViewShadowNode.h>

namespace facebook::react {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

#include <fbjni/fbjni.h>
#include <react/jni/ReadableNativeMap.h>
#include <react/renderer/components/progressbar/conversions.h>
#include <react/renderer/core/conversions.h>

using namespace facebook::jni;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@

#pragma once

#include <react/renderer/components/progressbar/conversions.h>
#include <react/renderer/components/rncore/Props.h>
#include <react/renderer/components/FBReactNativeComponentSpec/Props.h>
#include <react/renderer/core/ConcreteComponentDescriptor.h>
#include <react/renderer/core/LayoutConstraints.h>
#include <react/utils/ContextContainer.h>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@

#pragma once

#include <react/renderer/components/FBReactNativeComponentSpec/EventEmitters.h>
#include <react/renderer/components/FBReactNativeComponentSpec/Props.h>
#include <react/renderer/components/progressbar/AndroidProgressBarMeasurementsManager.h>
#include <react/renderer/components/rncore/EventEmitters.h>
#include <react/renderer/components/rncore/Props.h>
#include <react/renderer/components/view/ConcreteViewShadowNode.h>

namespace facebook::react {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#pragma once

#include <folly/dynamic.h>
#include <react/renderer/components/rncore/Props.h>
#include <react/renderer/components/FBReactNativeComponentSpec/Props.h>
#include <react/renderer/core/propsConversions.h>

namespace facebook::react {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@

#pragma once

#include <react/renderer/components/rncore/EventEmitters.h>
#include <react/renderer/components/rncore/Props.h>
#include <react/renderer/components/FBReactNativeComponentSpec/EventEmitters.h>
#include <react/renderer/components/FBReactNativeComponentSpec/Props.h>
#include <react/renderer/components/safeareaview/SafeAreaViewState.h>
#include <react/renderer/components/view/ConcreteViewShadowNode.h>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

#include "AndroidSwitchMeasurementsManager.h"

#include <react/renderer/components/rncore/EventEmitters.h>
#include <react/renderer/components/rncore/Props.h>
#include <react/renderer/components/FBReactNativeComponentSpec/EventEmitters.h>
#include <react/renderer/components/FBReactNativeComponentSpec/Props.h>
#include <react/renderer/components/view/ConcreteViewShadowNode.h>

namespace facebook::react {
Expand Down
2 changes: 1 addition & 1 deletion packages/react-native/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@
"jsSrcsDir": "src"
},
{
"name": "rncore",
"name": "FBReactNativeComponentSpec",
"type": "components",
"ios": {},
"android": {},
Expand Down
Loading

0 comments on commit ef77087

Please sign in to comment.