From 8db181abfcd5449995afa0e770f03ef5b6b9178b Mon Sep 17 00:00:00 2001 From: Kevin Gozali Date: Mon, 21 Dec 2020 22:41:06 -0800 Subject: [PATCH] RNTester Android: generate Fabric JNI files during build time Summary: Generate Fabric C++ files along side TM spec files for RNTester. The combined .so then has both TM and Fabric files. This commit also removed the checked-in JNI files. Changelog: [Internal] Reviewed By: mdvacca Differential Revision: D25674313 fbshipit-source-id: 8091d5a00f42849a74cab50e8d24f4010d500e5b --- ReactAndroid/Android-prebuilt.mk | 63 +++ .../com/facebook/react/fabric/jni/Android.mk | 4 +- .../react/viewmanagers/jni/Android.mk | 29 - .../components/rncore/ComponentDescriptors.h | 31 - .../components/rncore/EventEmitters.cpp | 148 ----- .../components/rncore/EventEmitters.h | 229 -------- .../renderer/components/rncore/Props.cpp | 191 ------- .../react/renderer/components/rncore/Props.h | 529 ------------------ .../components/rncore/ShadowNodes.cpp | 28 - .../renderer/components/rncore/ShadowNodes.h | 117 ---- .../src/main/jni/react/jni/Android.mk | 1 - .../renderer/components/modal/Android.mk | 2 +- .../renderer/components/picker/Android.mk | 2 +- .../components/progressbar/Android.mk | 2 +- .../renderer/components/slider/Android.mk | 2 +- .../renderer/components/switch/Android.mk | 2 +- .../src/generators/RNCodegen.js | 17 +- .../generators/modules/GenerateModuleJniH.js | 11 +- .../GenerateModuleJniH-test.js.snap | 36 +- .../android/app/src/main/jni/Android.mk | 2 +- scripts/generate-native-modules-specs-cli.js | 15 + 21 files changed, 120 insertions(+), 1341 deletions(-) delete mode 100644 ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/Android.mk delete mode 100644 ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/ComponentDescriptors.h delete mode 100644 ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/EventEmitters.cpp delete mode 100644 ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/EventEmitters.h delete mode 100644 ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/Props.cpp delete mode 100644 ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/Props.h delete mode 100644 ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/ShadowNodes.cpp delete mode 100644 ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/ShadowNodes.h diff --git a/ReactAndroid/Android-prebuilt.mk b/ReactAndroid/Android-prebuilt.mk index 11b770a06f8..6a704c2bc08 100644 --- a/ReactAndroid/Android-prebuilt.mk +++ b/ReactAndroid/Android-prebuilt.mk @@ -64,6 +64,18 @@ LOCAL_EXPORT_C_INCLUDES := $(THIRD_PARTY_NDK_DIR)/glog/exported LOCAL_SHARED_LIBRARIES := libglog include $(PREBUILT_SHARED_LIBRARY) +# yoga +include $(CLEAR_VARS) +LOCAL_MODULE := yoga +LOCAL_SRC_FILES := $(REACT_NDK_EXPORT_DIR)/$(TARGET_ARCH_ABI)/libyoga.so +LOCAL_EXPORT_C_INCLUDES := \ + $(FIRST_PARTY_NDK_DIR)/yogajni/jni \ + $(REACT_COMMON_DIR)/yoga +# Note: Sync with yogajni/Android.mk +LOCAL_CFLAGS += -fvisibility=hidden -fexceptions -frtti -O3 +LOCAL_LDLIBS += -landroid -llog +include $(PREBUILT_SHARED_LIBRARY) + # react_nativemodule_core include $(CLEAR_VARS) LOCAL_MODULE := react_nativemodule_core @@ -85,6 +97,57 @@ LOCAL_EXPORT_C_INCLUDES := \ $(REACT_ANDROID_SRC_DIR)/java/com/facebook/react/turbomodule/core/jni include $(PREBUILT_SHARED_LIBRARY) +# react_render_core +include $(CLEAR_VARS) +LOCAL_MODULE := react_render_core +LOCAL_SRC_FILES := $(REACT_NDK_EXPORT_DIR)/$(TARGET_ARCH_ABI)/libreact_render_core.so +LOCAL_EXPORT_C_INCLUDES := \ + $(REACT_COMMON_DIR) \ + $(REACT_COMMON_DIR)/react/renderer/core +include $(PREBUILT_SHARED_LIBRARY) + +# react_render_debug +include $(CLEAR_VARS) +LOCAL_MODULE := react_render_debug +LOCAL_SRC_FILES := $(REACT_NDK_EXPORT_DIR)/$(TARGET_ARCH_ABI)/libreact_render_debug.so +LOCAL_EXPORT_C_INCLUDES := \ + $(REACT_COMMON_DIR)/react/renderer/debug +include $(PREBUILT_SHARED_LIBRARY) + +# react_render_graphics +include $(CLEAR_VARS) +LOCAL_MODULE := react_render_graphics +LOCAL_SRC_FILES := $(REACT_NDK_EXPORT_DIR)/$(TARGET_ARCH_ABI)/libreact_render_graphics.so +LOCAL_EXPORT_C_INCLUDES := \ + $(REACT_COMMON_DIR)/react/renderer/graphics \ + $(REACT_COMMON_DIR)/react/renderer/graphics/platform/cxx +include $(PREBUILT_SHARED_LIBRARY) + +# react_render_imagemanager +include $(CLEAR_VARS) +LOCAL_MODULE := react_render_imagemanager +LOCAL_SRC_FILES := $(REACT_NDK_EXPORT_DIR)/$(TARGET_ARCH_ABI)/libreact_render_imagemanager.so +LOCAL_EXPORT_C_INCLUDES := \ + $(REACT_COMMON_DIR)/react/renderer/imagemanager \ + $(REACT_COMMON_DIR)/react/renderer/imagemanager/platform/cxx +include $(PREBUILT_SHARED_LIBRARY) + +# react_render_mounting +include $(CLEAR_VARS) +LOCAL_MODULE := react_render_mounting +LOCAL_SRC_FILES := $(REACT_NDK_EXPORT_DIR)/$(TARGET_ARCH_ABI)/libreact_render_mounting.so +LOCAL_EXPORT_C_INCLUDES := \ + $(REACT_COMMON_DIR)/react/renderer/mounting +include $(PREBUILT_SHARED_LIBRARY) + +# react_render_components_view +include $(CLEAR_VARS) +LOCAL_MODULE := react_render_components_view +LOCAL_SRC_FILES := $(REACT_NDK_EXPORT_DIR)/$(TARGET_ARCH_ABI)/libreact_render_components_view.so +LOCAL_EXPORT_C_INCLUDES := \ + $(REACT_COMMON_DIR)/react/renderer/components/view +include $(PREBUILT_SHARED_LIBRARY) + # react_codegen_rncore include $(CLEAR_VARS) LOCAL_MODULE := react_codegen_rncore diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk index 593a8cf3081..793daed7427 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk @@ -11,7 +11,7 @@ LOCAL_MODULE := fabricjni LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) -LOCAL_SHARED_LIBRARIES := libreactconfig libreact_render_components_slider libreact_render_components_progressbar libreact_render_components_switch libreact_render_components_modal libyoga libglog libfb libfbjni libglog_init libfolly_json libfolly_futures libreact_render_mounting libreactnativeutilsjni libreact_utils libreact_render_debug libreact_render_graphics libreact_render_core libreact_render_mapbuffer react_render_componentregistry libreact_render_components_view libreact_render_components_unimplementedview libreact_render_components_root libreact_render_components_scrollview libbetter libreact_render_attributedstring libreact_render_uimanager libreact_render_templateprocessor libreact_render_scheduler libreact_render_animations libreact_render_imagemanager libreact_render_textlayoutmanager libreact_render_viewmanagers react_render_components_text libreact_render_components_image react_render_components_textinput react_render_components_picker +LOCAL_SHARED_LIBRARIES := libreactconfig libreact_render_components_slider libreact_render_components_progressbar libreact_render_components_switch libreact_render_components_modal libyoga libglog libfb libfbjni libglog_init libfolly_json libfolly_futures libreact_render_mounting libreactnativeutilsjni libreact_utils libreact_render_debug libreact_render_graphics libreact_render_core libreact_render_mapbuffer react_render_componentregistry libreact_render_components_view libreact_render_components_unimplementedview libreact_render_components_root libreact_render_components_scrollview libbetter libreact_render_attributedstring libreact_render_uimanager libreact_render_templateprocessor libreact_render_scheduler libreact_render_animations libreact_render_imagemanager libreact_render_textlayoutmanager libreact_codegen_rncore react_render_components_text libreact_render_components_image react_render_components_textinput react_render_components_picker LOCAL_STATIC_LIBRARIES := @@ -60,5 +60,3 @@ $(call import-module,react/renderer/scheduler) $(call import-module,react/renderer/templateprocessor) $(call import-module,react/renderer/textlayoutmanager) $(call import-module,react/renderer/uimanager) - -# $(call import-module,react/fabric/viewmanagers/jni) diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/Android.mk b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/Android.mk deleted file mode 100644 index cc37b42fdbe..00000000000 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/Android.mk +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (c) Facebook, Inc. and its affiliates. -# -# This source code is licensed under the MIT license found in the -# LICENSE file in the root directory of this source tree. - -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE := react_render_viewmanagers - -LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp $(LOCAL_PATH)/react/renderer/components/rncore/*.cpp) - -LOCAL_SHARED_LIBRARIES := libreact_render_components_view libfolly_json libreact_render_core libreact_render_graphics - -LOCAL_STATIC_LIBRARIES := - -LOCAL_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/react/renderer/components/rncore/ - -LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) - -LOCAL_CFLAGS := \ - -DLOG_TAG=\"Fabric\" - -LOCAL_CFLAGS += -fexceptions -frtti -std=c++14 -Wall - -include $(BUILD_SHARED_LIBRARY) - -$(call import-module,react/renderer/components/view) diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/ComponentDescriptors.h b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/ComponentDescriptors.h deleted file mode 100644 index cc3c195dd3a..00000000000 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/ComponentDescriptors.h +++ /dev/null @@ -1,31 +0,0 @@ - -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @generated by codegen project: GenerateComponentDescriptorH.js - */ - -#pragma once - -#include -#include - -namespace facebook { -namespace react { - -using ActivityIndicatorViewComponentDescriptor = ConcreteComponentDescriptor; -using DatePickerComponentDescriptor = ConcreteComponentDescriptor; -using AndroidDrawerLayoutComponentDescriptor = ConcreteComponentDescriptor; -using RCTMaskedViewComponentDescriptor = ConcreteComponentDescriptor; -using RCTProgressViewComponentDescriptor = ConcreteComponentDescriptor; -using AndroidSwipeRefreshLayoutComponentDescriptor = ConcreteComponentDescriptor; -using PullToRefreshViewComponentDescriptor = ConcreteComponentDescriptor; -using RCTSegmentedControlComponentDescriptor = ConcreteComponentDescriptor; -using SwitchComponentDescriptor = ConcreteComponentDescriptor; -using UnimplementedNativeViewComponentDescriptor = ConcreteComponentDescriptor; - -} // namespace react -} // namespace facebook diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/EventEmitters.cpp b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/EventEmitters.cpp deleted file mode 100644 index ee226666fb4..00000000000 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/EventEmitters.cpp +++ /dev/null @@ -1,148 +0,0 @@ - -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @generated by codegen project: GenerateEventEmitterCpp.js - */ - -#include - -namespace facebook { -namespace react { - - -void DatePickerEventEmitter::onChange(OnChange event) const { - dispatchEvent("change", [event=std::move(event)](jsi::Runtime &runtime) { - auto payload = jsi::Object(runtime); - payload.setProperty(runtime, "timestamp", event.timestamp); - return payload; - }); -} -void AndroidDrawerLayoutEventEmitter::onDrawerSlide(OnDrawerSlide event) const { - dispatchEvent("drawerSlide", [event=std::move(event)](jsi::Runtime &runtime) { - auto payload = jsi::Object(runtime); - payload.setProperty(runtime, "offset", event.offset); - return payload; - }); -} -void AndroidDrawerLayoutEventEmitter::onDrawerStateChanged(OnDrawerStateChanged event) const { - dispatchEvent("drawerStateChanged", [event=std::move(event)](jsi::Runtime &runtime) { - auto payload = jsi::Object(runtime); - payload.setProperty(runtime, "drawerState", event.drawerState); - return payload; - }); -} -void AndroidDrawerLayoutEventEmitter::onDrawerOpen(OnDrawerOpen event) const { - dispatchEvent("drawerOpen", [event=std::move(event)](jsi::Runtime &runtime) { - auto payload = jsi::Object(runtime); - - return payload; - }); -} -void AndroidDrawerLayoutEventEmitter::onDrawerClose(OnDrawerClose event) const { - dispatchEvent("drawerClose", [event=std::move(event)](jsi::Runtime &runtime) { - auto payload = jsi::Object(runtime); - - return payload; - }); -} - - - -void AndroidSwipeRefreshLayoutEventEmitter::onRefresh(OnRefresh event) const { - dispatchEvent("refresh", [event=std::move(event)](jsi::Runtime &runtime) { - auto payload = jsi::Object(runtime); - - return payload; - }); -} -void PullToRefreshViewEventEmitter::onRefresh(OnRefresh event) const { - dispatchEvent("refresh", [event=std::move(event)](jsi::Runtime &runtime) { - auto payload = jsi::Object(runtime); - - return payload; - }); -} - -void RCTSegmentedControlEventEmitter::onChange(OnChange event) const { - dispatchEvent("change", [event=std::move(event)](jsi::Runtime &runtime) { - auto payload = jsi::Object(runtime); - payload.setProperty(runtime, "value", event.value); -payload.setProperty(runtime, "selectedSegmentIndex", event.selectedSegmentIndex); - return payload; - }); -} -void SliderEventEmitter::onChange(OnChange event) const { - dispatchEvent("change", [event=std::move(event)](jsi::Runtime &runtime) { - auto payload = jsi::Object(runtime); - payload.setProperty(runtime, "value", event.value); -payload.setProperty(runtime, "fromUser", event.fromUser); - return payload; - }); -} -void SliderEventEmitter::onValueChange(OnValueChange event) const { - dispatchEvent("valueChange", [event=std::move(event)](jsi::Runtime &runtime) { - auto payload = jsi::Object(runtime); - payload.setProperty(runtime, "value", event.value); -payload.setProperty(runtime, "fromUser", event.fromUser); - return payload; - }); -} -void SliderEventEmitter::onSlidingComplete(OnSlidingComplete event) const { - dispatchEvent("slidingComplete", [event=std::move(event)](jsi::Runtime &runtime) { - auto payload = jsi::Object(runtime); - payload.setProperty(runtime, "value", event.value); -payload.setProperty(runtime, "fromUser", event.fromUser); - return payload; - }); -} -void AndroidSwitchEventEmitter::onChange(OnChange event) const { - dispatchEvent("change", [event=std::move(event)](jsi::Runtime &runtime) { - auto payload = jsi::Object(runtime); - payload.setProperty(runtime, "value", event.value); - return payload; - }); -} -void SwitchEventEmitter::onChange(OnChange event) const { - dispatchEvent("change", [event=std::move(event)](jsi::Runtime &runtime) { - auto payload = jsi::Object(runtime); - payload.setProperty(runtime, "value", event.value); - return payload; - }); -} - - -void ModalHostViewEventEmitter::onRequestClose(OnRequestClose event) const { - dispatchEvent("requestClose", [event=std::move(event)](jsi::Runtime &runtime) { - auto payload = jsi::Object(runtime); - - return payload; - }); -} -void ModalHostViewEventEmitter::onShow(OnShow event) const { - dispatchEvent("show", [event=std::move(event)](jsi::Runtime &runtime) { - auto payload = jsi::Object(runtime); - - return payload; - }); -} -void ModalHostViewEventEmitter::onDismiss(OnDismiss event) const { - dispatchEvent("dismiss", [event=std::move(event)](jsi::Runtime &runtime) { - auto payload = jsi::Object(runtime); - - return payload; - }); -} -void ModalHostViewEventEmitter::onOrientationChange(OnOrientationChange event) const { - dispatchEvent("orientationChange", [event=std::move(event)](jsi::Runtime &runtime) { - auto payload = jsi::Object(runtime); - payload.setProperty(runtime, "orientation", toString(event.orientation)); - return payload; - }); -} - -} // namespace react -} // namespace facebook diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/EventEmitters.h b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/EventEmitters.h deleted file mode 100644 index 16cc009e715..00000000000 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/EventEmitters.h +++ /dev/null @@ -1,229 +0,0 @@ - -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @generated by codegen project: GenerateEventEmitterH.js - */ -#pragma once - -#include - -namespace facebook { -namespace react { - -class ActivityIndicatorViewEventEmitter : public ViewEventEmitter { - public: - using ViewEventEmitter::ViewEventEmitter; - - - - -}; -class DatePickerEventEmitter : public ViewEventEmitter { - public: - using ViewEventEmitter::ViewEventEmitter; - - struct OnChange { - Float timestamp; - }; - - void onChange(OnChange value) const; -}; -class AndroidDrawerLayoutEventEmitter : public ViewEventEmitter { - public: - using ViewEventEmitter::ViewEventEmitter; - - struct OnDrawerSlide { - Float offset; - }; - - struct OnDrawerStateChanged { - int drawerState; - }; - - struct OnDrawerOpen { - - }; - - struct OnDrawerClose { - - }; - - void onDrawerSlide(OnDrawerSlide value) const; - - void onDrawerStateChanged(OnDrawerStateChanged value) const; - - void onDrawerOpen(OnDrawerOpen value) const; - - void onDrawerClose(OnDrawerClose value) const; -}; -class RCTMaskedViewEventEmitter : public ViewEventEmitter { - public: - using ViewEventEmitter::ViewEventEmitter; - - - - -}; -class AndroidProgressBarEventEmitter : public ViewEventEmitter { - public: - using ViewEventEmitter::ViewEventEmitter; - - - - -}; -class RCTProgressViewEventEmitter : public ViewEventEmitter { - public: - using ViewEventEmitter::ViewEventEmitter; - - - - -}; -class AndroidSwipeRefreshLayoutEventEmitter : public ViewEventEmitter { - public: - using ViewEventEmitter::ViewEventEmitter; - - struct OnRefresh { - - }; - - void onRefresh(OnRefresh value) const; -}; -class PullToRefreshViewEventEmitter : public ViewEventEmitter { - public: - using ViewEventEmitter::ViewEventEmitter; - - struct OnRefresh { - - }; - - void onRefresh(OnRefresh value) const; -}; -class SafeAreaViewEventEmitter : public ViewEventEmitter { - public: - using ViewEventEmitter::ViewEventEmitter; - - - - -}; -class RCTSegmentedControlEventEmitter : public ViewEventEmitter { - public: - using ViewEventEmitter::ViewEventEmitter; - - struct OnChange { - int value; - int selectedSegmentIndex; - }; - - void onChange(OnChange value) const; -}; -class SliderEventEmitter : public ViewEventEmitter { - public: - using ViewEventEmitter::ViewEventEmitter; - - struct OnChange { - double value; - bool fromUser; - }; - - struct OnValueChange { - double value; - bool fromUser; - }; - - struct OnSlidingComplete { - double value; - bool fromUser; - }; - - void onChange(OnChange value) const; - - void onValueChange(OnValueChange value) const; - - void onSlidingComplete(OnSlidingComplete value) const; -}; -class AndroidSwitchEventEmitter : public ViewEventEmitter { - public: - using ViewEventEmitter::ViewEventEmitter; - - struct OnChange { - bool value; - }; - - void onChange(OnChange value) const; -}; -class SwitchEventEmitter : public ViewEventEmitter { - public: - using ViewEventEmitter::ViewEventEmitter; - - struct OnChange { - bool value; - }; - - void onChange(OnChange value) const; -}; -class InputAccessoryEventEmitter : public ViewEventEmitter { - public: - using ViewEventEmitter::ViewEventEmitter; - - - - -}; -class UnimplementedNativeViewEventEmitter : public ViewEventEmitter { - public: - using ViewEventEmitter::ViewEventEmitter; - - - - -}; -class ModalHostViewEventEmitter : public ViewEventEmitter { - public: - using ViewEventEmitter::ViewEventEmitter; - - struct OnRequestClose { - - }; - - struct OnShow { - - }; - - struct OnDismiss { - - }; - - enum class OnOrientationChangeOrientation { - Portrait, - Landscape - }; - - static char const *toString(const OnOrientationChangeOrientation value) { - switch (value) { - case OnOrientationChangeOrientation::Portrait: return "portrait"; - case OnOrientationChangeOrientation::Landscape: return "landscape"; - } - } - - struct OnOrientationChange { - OnOrientationChangeOrientation orientation; - }; - - void onRequestClose(OnRequestClose value) const; - - void onShow(OnShow value) const; - - void onDismiss(OnDismiss value) const; - - void onOrientationChange(OnOrientationChange value) const; -}; - -} // namespace react -} // namespace facebook diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/Props.cpp b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/Props.cpp deleted file mode 100644 index fcce261612f..00000000000 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/Props.cpp +++ /dev/null @@ -1,191 +0,0 @@ - -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @generated by codegen project: GeneratePropsCpp.js - */ - -#include -#include -#include - -namespace facebook { -namespace react { - -ActivityIndicatorViewProps::ActivityIndicatorViewProps( - const ActivityIndicatorViewProps &sourceProps, - const RawProps &rawProps): ViewProps(sourceProps, rawProps), - - hidesWhenStopped(convertRawProp(rawProps, "hidesWhenStopped", sourceProps.hidesWhenStopped, {false})), - animating(convertRawProp(rawProps, "animating", sourceProps.animating, {false})), - color(convertRawProp(rawProps, "color", sourceProps.color, {})), - size(convertRawProp(rawProps, "size", sourceProps.size, {ActivityIndicatorViewSize::Small})) - {} -DatePickerProps::DatePickerProps( - const DatePickerProps &sourceProps, - const RawProps &rawProps): ViewProps(sourceProps, rawProps), - - date(convertRawProp(rawProps, "date", sourceProps.date, {0.0})), - initialDate(convertRawProp(rawProps, "initialDate", sourceProps.initialDate, {0.0})), - locale(convertRawProp(rawProps, "locale", sourceProps.locale, {})), - maximumDate(convertRawProp(rawProps, "maximumDate", sourceProps.maximumDate, {0.0})), - minimumDate(convertRawProp(rawProps, "minimumDate", sourceProps.minimumDate, {0.0})), - minuteInterval(convertRawProp(rawProps, "minuteInterval", sourceProps.minuteInterval, {DatePickerMinuteInterval::MinuteInterval1})), - mode(convertRawProp(rawProps, "mode", sourceProps.mode, {DatePickerMode::Date})), - timeZoneOffsetInMinutes(convertRawProp(rawProps, "timeZoneOffsetInMinutes", sourceProps.timeZoneOffsetInMinutes, {0.0})) - {} -AndroidDrawerLayoutProps::AndroidDrawerLayoutProps( - const AndroidDrawerLayoutProps &sourceProps, - const RawProps &rawProps): ViewProps(sourceProps, rawProps), - - keyboardDismissMode(convertRawProp(rawProps, "keyboardDismissMode", sourceProps.keyboardDismissMode, {AndroidDrawerLayoutKeyboardDismissMode::None})), - drawerBackgroundColor(convertRawProp(rawProps, "drawerBackgroundColor", sourceProps.drawerBackgroundColor, {})), - drawerPosition(convertRawProp(rawProps, "drawerPosition", sourceProps.drawerPosition, {AndroidDrawerLayoutDrawerPosition::Left})), - drawerWidth(convertRawProp(rawProps, "drawerWidth", sourceProps.drawerWidth, {})), - drawerLockMode(convertRawProp(rawProps, "drawerLockMode", sourceProps.drawerLockMode, {AndroidDrawerLayoutDrawerLockMode::Unlocked})), - statusBarBackgroundColor(convertRawProp(rawProps, "statusBarBackgroundColor", sourceProps.statusBarBackgroundColor, {})) - {} -RCTMaskedViewProps::RCTMaskedViewProps( - const RCTMaskedViewProps &sourceProps, - const RawProps &rawProps): ViewProps(sourceProps, rawProps) - - - {} -AndroidProgressBarProps::AndroidProgressBarProps( - const AndroidProgressBarProps &sourceProps, - const RawProps &rawProps): ViewProps(sourceProps, rawProps), - - styleAttr(convertRawProp(rawProps, "styleAttr", sourceProps.styleAttr, {})), - typeAttr(convertRawProp(rawProps, "typeAttr", sourceProps.typeAttr, {})), - indeterminate(convertRawProp(rawProps, "indeterminate", sourceProps.indeterminate, {false})), - progress(convertRawProp(rawProps, "progress", sourceProps.progress, {0.0})), - animating(convertRawProp(rawProps, "animating", sourceProps.animating, {true})), - color(convertRawProp(rawProps, "color", sourceProps.color, {})), - testID(convertRawProp(rawProps, "testID", sourceProps.testID, {""})) - {} -RCTProgressViewProps::RCTProgressViewProps( - const RCTProgressViewProps &sourceProps, - const RawProps &rawProps): ViewProps(sourceProps, rawProps), - - progressViewStyle(convertRawProp(rawProps, "progressViewStyle", sourceProps.progressViewStyle, {RCTProgressViewProgressViewStyle::Default})), - progress(convertRawProp(rawProps, "progress", sourceProps.progress, {0.0})), - progressTintColor(convertRawProp(rawProps, "progressTintColor", sourceProps.progressTintColor, {})), - trackTintColor(convertRawProp(rawProps, "trackTintColor", sourceProps.trackTintColor, {})), - progressImage(convertRawProp(rawProps, "progressImage", sourceProps.progressImage, {})), - trackImage(convertRawProp(rawProps, "trackImage", sourceProps.trackImage, {})) - {} -AndroidSwipeRefreshLayoutProps::AndroidSwipeRefreshLayoutProps( - const AndroidSwipeRefreshLayoutProps &sourceProps, - const RawProps &rawProps): ViewProps(sourceProps, rawProps), - - enabled(convertRawProp(rawProps, "enabled", sourceProps.enabled, {true})), - colors(convertRawProp(rawProps, "colors", sourceProps.colors, {})), - progressBackgroundColor(convertRawProp(rawProps, "progressBackgroundColor", sourceProps.progressBackgroundColor, {})), - size(convertRawProp(rawProps, "size", sourceProps.size, {1})), - progressViewOffset(convertRawProp(rawProps, "progressViewOffset", sourceProps.progressViewOffset, {0.0})), - refreshing(convertRawProp(rawProps, "refreshing", sourceProps.refreshing, {false})) - {} -PullToRefreshViewProps::PullToRefreshViewProps( - const PullToRefreshViewProps &sourceProps, - const RawProps &rawProps): ViewProps(sourceProps, rawProps), - - tintColor(convertRawProp(rawProps, "tintColor", sourceProps.tintColor, {})), - titleColor(convertRawProp(rawProps, "titleColor", sourceProps.titleColor, {})), - title(convertRawProp(rawProps, "title", sourceProps.title, {})), - refreshing(convertRawProp(rawProps, "refreshing", sourceProps.refreshing, {false})) - {} -SafeAreaViewProps::SafeAreaViewProps( - const SafeAreaViewProps &sourceProps, - const RawProps &rawProps): ViewProps(sourceProps, rawProps), - - emulateUnlessSupported(convertRawProp(rawProps, "emulateUnlessSupported", sourceProps.emulateUnlessSupported, {false})) - {} -RCTSegmentedControlProps::RCTSegmentedControlProps( - const RCTSegmentedControlProps &sourceProps, - const RawProps &rawProps): ViewProps(sourceProps, rawProps), - - values(convertRawProp(rawProps, "values", sourceProps.values, {})), - selectedIndex(convertRawProp(rawProps, "selectedIndex", sourceProps.selectedIndex, {0})), - enabled(convertRawProp(rawProps, "enabled", sourceProps.enabled, {true})), - tintColor(convertRawProp(rawProps, "tintColor", sourceProps.tintColor, {})), - textColor(convertRawProp(rawProps, "textColor", sourceProps.textColor, {})), - backgroundColor(convertRawProp(rawProps, "backgroundColor", sourceProps.backgroundColor, {})), - momentary(convertRawProp(rawProps, "momentary", sourceProps.momentary, {false})) - {} -SliderProps::SliderProps( - const SliderProps &sourceProps, - const RawProps &rawProps): ViewProps(sourceProps, rawProps), - - disabled(convertRawProp(rawProps, "disabled", sourceProps.disabled, {false})), - enabled(convertRawProp(rawProps, "enabled", sourceProps.enabled, {true})), - maximumTrackImage(convertRawProp(rawProps, "maximumTrackImage", sourceProps.maximumTrackImage, {})), - maximumTrackTintColor(convertRawProp(rawProps, "maximumTrackTintColor", sourceProps.maximumTrackTintColor, {})), - maximumValue(convertRawProp(rawProps, "maximumValue", sourceProps.maximumValue, {1.0})), - minimumTrackImage(convertRawProp(rawProps, "minimumTrackImage", sourceProps.minimumTrackImage, {})), - minimumTrackTintColor(convertRawProp(rawProps, "minimumTrackTintColor", sourceProps.minimumTrackTintColor, {})), - minimumValue(convertRawProp(rawProps, "minimumValue", sourceProps.minimumValue, {0.0})), - step(convertRawProp(rawProps, "step", sourceProps.step, {0.0})), - testID(convertRawProp(rawProps, "testID", sourceProps.testID, {""})), - thumbImage(convertRawProp(rawProps, "thumbImage", sourceProps.thumbImage, {})), - thumbTintColor(convertRawProp(rawProps, "thumbTintColor", sourceProps.thumbTintColor, {})), - trackImage(convertRawProp(rawProps, "trackImage", sourceProps.trackImage, {})), - value(convertRawProp(rawProps, "value", sourceProps.value, {0.0})) - {} -AndroidSwitchProps::AndroidSwitchProps( - const AndroidSwitchProps &sourceProps, - const RawProps &rawProps): ViewProps(sourceProps, rawProps), - - disabled(convertRawProp(rawProps, "disabled", sourceProps.disabled, {false})), - enabled(convertRawProp(rawProps, "enabled", sourceProps.enabled, {true})), - thumbColor(convertRawProp(rawProps, "thumbColor", sourceProps.thumbColor, {})), - trackColorForFalse(convertRawProp(rawProps, "trackColorForFalse", sourceProps.trackColorForFalse, {})), - trackColorForTrue(convertRawProp(rawProps, "trackColorForTrue", sourceProps.trackColorForTrue, {})), - value(convertRawProp(rawProps, "value", sourceProps.value, {false})), - on(convertRawProp(rawProps, "on", sourceProps.on, {false})), - thumbTintColor(convertRawProp(rawProps, "thumbTintColor", sourceProps.thumbTintColor, {})), - trackTintColor(convertRawProp(rawProps, "trackTintColor", sourceProps.trackTintColor, {})) - {} -SwitchProps::SwitchProps( - const SwitchProps &sourceProps, - const RawProps &rawProps): ViewProps(sourceProps, rawProps), - - disabled(convertRawProp(rawProps, "disabled", sourceProps.disabled, {false})), - value(convertRawProp(rawProps, "value", sourceProps.value, {false})), - tintColor(convertRawProp(rawProps, "tintColor", sourceProps.tintColor, {})), - onTintColor(convertRawProp(rawProps, "onTintColor", sourceProps.onTintColor, {})), - thumbTintColor(convertRawProp(rawProps, "thumbTintColor", sourceProps.thumbTintColor, {})), - thumbColor(convertRawProp(rawProps, "thumbColor", sourceProps.thumbColor, {})), - trackColorForFalse(convertRawProp(rawProps, "trackColorForFalse", sourceProps.trackColorForFalse, {})), - trackColorForTrue(convertRawProp(rawProps, "trackColorForTrue", sourceProps.trackColorForTrue, {})) - {} -InputAccessoryProps::InputAccessoryProps( - const InputAccessoryProps &sourceProps, - const RawProps &rawProps): ViewProps(sourceProps, rawProps), - - backgroundColor(convertRawProp(rawProps, "backgroundColor", sourceProps.backgroundColor, {})) - {} -UnimplementedNativeViewProps::UnimplementedNativeViewProps( - const UnimplementedNativeViewProps &sourceProps, - const RawProps &rawProps): ViewProps(sourceProps, rawProps), - - name(convertRawProp(rawProps, "name", sourceProps.name, {""})) - {} -ModalHostViewProps::ModalHostViewProps( - const ModalHostViewProps &sourceProps, - const RawProps &rawProps): ViewProps(sourceProps, rawProps), - - animationType(convertRawProp(rawProps, "animationType", sourceProps.animationType, {ModalHostViewAnimationType::None})), - presentationStyle(convertRawProp(rawProps, "presentationStyle", sourceProps.presentationStyle, {ModalHostViewPresentationStyle::FullScreen})), - transparent(convertRawProp(rawProps, "transparent", sourceProps.transparent, {false})), - statusBarTranslucent(convertRawProp(rawProps, "statusBarTranslucent", sourceProps.statusBarTranslucent, {false})), - hardwareAccelerated(convertRawProp(rawProps, "hardwareAccelerated", sourceProps.hardwareAccelerated, {false})), - animated(convertRawProp(rawProps, "animated", sourceProps.animated, {false})), - supportedOrientations(convertRawProp(rawProps, "supportedOrientations", sourceProps.supportedOrientations, {static_cast(ModalHostViewSupportedOrientations::Portrait)})), - identifier(convertRawProp(rawProps, "identifier", sourceProps.identifier, {0})) - {} - -} // namespace react -} // namespace facebook diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/Props.h b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/Props.h deleted file mode 100644 index b968f7e2668..00000000000 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/Props.h +++ /dev/null @@ -1,529 +0,0 @@ - -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @generated by codegen project: GeneratePropsH.js - */ -#pragma once - -#include -#include -#include -#include -#include - -namespace facebook { -namespace react { - -enum class ActivityIndicatorViewSize { Small, Large }; - -static inline void fromRawValue(const RawValue &value, ActivityIndicatorViewSize &result) { - auto string = (std::string)value; - if (string == "small") { result = ActivityIndicatorViewSize::Small; return; } - if (string == "large") { result = ActivityIndicatorViewSize::Large; return; } - abort(); -} - -static inline std::string toString(const ActivityIndicatorViewSize &value) { - switch (value) { - case ActivityIndicatorViewSize::Small: return "small"; - case ActivityIndicatorViewSize::Large: return "large"; - } -} - -class ActivityIndicatorViewProps final : public ViewProps { - public: - ActivityIndicatorViewProps() = default; - ActivityIndicatorViewProps(const ActivityIndicatorViewProps &sourceProps, const RawProps &rawProps); - -#pragma mark - Props - - bool hidesWhenStopped{false}; - bool animating{false}; - SharedColor color{}; - ActivityIndicatorViewSize size{ActivityIndicatorViewSize::Small}; -}; - -enum class DatePickerMinuteInterval { MinuteInterval1 = 1, MinuteInterval2 = 2, MinuteInterval3 = 3, MinuteInterval4 = 4, MinuteInterval5 = 5, MinuteInterval6 = 6, MinuteInterval10 = 10, MinuteInterval12 = 12, MinuteInterval15 = 15, MinuteInterval20 = 20, MinuteInterval30 = 30 }; - -static inline void fromRawValue(const RawValue &value, DatePickerMinuteInterval &result) { - assert(value.hasType()); - auto integerValue = (int)value; - switch (integerValue) { - case 1: - result = DatePickerMinuteInterval::MinuteInterval1; - return; - case 2: - result = DatePickerMinuteInterval::MinuteInterval2; - return; - case 3: - result = DatePickerMinuteInterval::MinuteInterval3; - return; - case 4: - result = DatePickerMinuteInterval::MinuteInterval4; - return; - case 5: - result = DatePickerMinuteInterval::MinuteInterval5; - return; - case 6: - result = DatePickerMinuteInterval::MinuteInterval6; - return; - case 10: - result = DatePickerMinuteInterval::MinuteInterval10; - return; - case 12: - result = DatePickerMinuteInterval::MinuteInterval12; - return; - case 15: - result = DatePickerMinuteInterval::MinuteInterval15; - return; - case 20: - result = DatePickerMinuteInterval::MinuteInterval20; - return; - case 30: - result = DatePickerMinuteInterval::MinuteInterval30; - return; - } - abort(); -} - -static inline std::string toString(const DatePickerMinuteInterval &value) { - switch (value) { - case DatePickerMinuteInterval::MinuteInterval1: return "1"; - case DatePickerMinuteInterval::MinuteInterval2: return "2"; - case DatePickerMinuteInterval::MinuteInterval3: return "3"; - case DatePickerMinuteInterval::MinuteInterval4: return "4"; - case DatePickerMinuteInterval::MinuteInterval5: return "5"; - case DatePickerMinuteInterval::MinuteInterval6: return "6"; - case DatePickerMinuteInterval::MinuteInterval10: return "10"; - case DatePickerMinuteInterval::MinuteInterval12: return "12"; - case DatePickerMinuteInterval::MinuteInterval15: return "15"; - case DatePickerMinuteInterval::MinuteInterval20: return "20"; - case DatePickerMinuteInterval::MinuteInterval30: return "30"; - } -} -enum class DatePickerMode { Date, Time, Datetime }; - -static inline void fromRawValue(const RawValue &value, DatePickerMode &result) { - auto string = (std::string)value; - if (string == "date") { result = DatePickerMode::Date; return; } - if (string == "time") { result = DatePickerMode::Time; return; } - if (string == "datetime") { result = DatePickerMode::Datetime; return; } - abort(); -} - -static inline std::string toString(const DatePickerMode &value) { - switch (value) { - case DatePickerMode::Date: return "date"; - case DatePickerMode::Time: return "time"; - case DatePickerMode::Datetime: return "datetime"; - } -} - -class DatePickerProps final : public ViewProps { - public: - DatePickerProps() = default; - DatePickerProps(const DatePickerProps &sourceProps, const RawProps &rawProps); - -#pragma mark - Props - - Float date{0.0}; - Float initialDate{0.0}; - std::string locale{}; - Float maximumDate{0.0}; - Float minimumDate{0.0}; - DatePickerMinuteInterval minuteInterval{DatePickerMinuteInterval::MinuteInterval1}; - DatePickerMode mode{DatePickerMode::Date}; - Float timeZoneOffsetInMinutes{0.0}; -}; - -enum class AndroidDrawerLayoutKeyboardDismissMode { None, OnDrag }; - -static inline void fromRawValue(const RawValue &value, AndroidDrawerLayoutKeyboardDismissMode &result) { - auto string = (std::string)value; - if (string == "none") { result = AndroidDrawerLayoutKeyboardDismissMode::None; return; } - if (string == "on-drag") { result = AndroidDrawerLayoutKeyboardDismissMode::OnDrag; return; } - abort(); -} - -static inline std::string toString(const AndroidDrawerLayoutKeyboardDismissMode &value) { - switch (value) { - case AndroidDrawerLayoutKeyboardDismissMode::None: return "none"; - case AndroidDrawerLayoutKeyboardDismissMode::OnDrag: return "on-drag"; - } -} -enum class AndroidDrawerLayoutDrawerPosition { Left, Right }; - -static inline void fromRawValue(const RawValue &value, AndroidDrawerLayoutDrawerPosition &result) { - auto string = (std::string)value; - if (string == "left") { result = AndroidDrawerLayoutDrawerPosition::Left; return; } - if (string == "right") { result = AndroidDrawerLayoutDrawerPosition::Right; return; } - abort(); -} - -static inline std::string toString(const AndroidDrawerLayoutDrawerPosition &value) { - switch (value) { - case AndroidDrawerLayoutDrawerPosition::Left: return "left"; - case AndroidDrawerLayoutDrawerPosition::Right: return "right"; - } -} -enum class AndroidDrawerLayoutDrawerLockMode { Unlocked, LockedClosed, LockedOpen }; - -static inline void fromRawValue(const RawValue &value, AndroidDrawerLayoutDrawerLockMode &result) { - auto string = (std::string)value; - if (string == "unlocked") { result = AndroidDrawerLayoutDrawerLockMode::Unlocked; return; } - if (string == "locked-closed") { result = AndroidDrawerLayoutDrawerLockMode::LockedClosed; return; } - if (string == "locked-open") { result = AndroidDrawerLayoutDrawerLockMode::LockedOpen; return; } - abort(); -} - -static inline std::string toString(const AndroidDrawerLayoutDrawerLockMode &value) { - switch (value) { - case AndroidDrawerLayoutDrawerLockMode::Unlocked: return "unlocked"; - case AndroidDrawerLayoutDrawerLockMode::LockedClosed: return "locked-closed"; - case AndroidDrawerLayoutDrawerLockMode::LockedOpen: return "locked-open"; - } -} - -class AndroidDrawerLayoutProps final : public ViewProps { - public: - AndroidDrawerLayoutProps() = default; - AndroidDrawerLayoutProps(const AndroidDrawerLayoutProps &sourceProps, const RawProps &rawProps); - -#pragma mark - Props - - AndroidDrawerLayoutKeyboardDismissMode keyboardDismissMode{AndroidDrawerLayoutKeyboardDismissMode::None}; - SharedColor drawerBackgroundColor{}; - AndroidDrawerLayoutDrawerPosition drawerPosition{AndroidDrawerLayoutDrawerPosition::Left}; - Float drawerWidth{}; - AndroidDrawerLayoutDrawerLockMode drawerLockMode{AndroidDrawerLayoutDrawerLockMode::Unlocked}; - SharedColor statusBarBackgroundColor{}; -}; - -class RCTMaskedViewProps final : public ViewProps { - public: - RCTMaskedViewProps() = default; - RCTMaskedViewProps(const RCTMaskedViewProps &sourceProps, const RawProps &rawProps); - -#pragma mark - Props - - -}; - -class AndroidProgressBarProps final : public ViewProps { - public: - AndroidProgressBarProps() = default; - AndroidProgressBarProps(const AndroidProgressBarProps &sourceProps, const RawProps &rawProps); - -#pragma mark - Props - - std::string styleAttr{}; - std::string typeAttr{}; - bool indeterminate{false}; - double progress{0.0}; - bool animating{true}; - SharedColor color{}; - std::string testID{""}; -}; - -enum class RCTProgressViewProgressViewStyle { Default, Bar }; - -static inline void fromRawValue(const RawValue &value, RCTProgressViewProgressViewStyle &result) { - auto string = (std::string)value; - if (string == "default") { result = RCTProgressViewProgressViewStyle::Default; return; } - if (string == "bar") { result = RCTProgressViewProgressViewStyle::Bar; return; } - abort(); -} - -static inline std::string toString(const RCTProgressViewProgressViewStyle &value) { - switch (value) { - case RCTProgressViewProgressViewStyle::Default: return "default"; - case RCTProgressViewProgressViewStyle::Bar: return "bar"; - } -} - -class RCTProgressViewProps final : public ViewProps { - public: - RCTProgressViewProps() = default; - RCTProgressViewProps(const RCTProgressViewProps &sourceProps, const RawProps &rawProps); - -#pragma mark - Props - - RCTProgressViewProgressViewStyle progressViewStyle{RCTProgressViewProgressViewStyle::Default}; - Float progress{0.0}; - SharedColor progressTintColor{}; - SharedColor trackTintColor{}; - ImageSource progressImage{}; - ImageSource trackImage{}; -}; - -class AndroidSwipeRefreshLayoutProps final : public ViewProps { - public: - AndroidSwipeRefreshLayoutProps() = default; - AndroidSwipeRefreshLayoutProps(const AndroidSwipeRefreshLayoutProps &sourceProps, const RawProps &rawProps); - -#pragma mark - Props - - bool enabled{true}; - std::vector colors{}; - SharedColor progressBackgroundColor{}; - int size{1}; - Float progressViewOffset{0.0}; - bool refreshing{false}; -}; - -class PullToRefreshViewProps final : public ViewProps { - public: - PullToRefreshViewProps() = default; - PullToRefreshViewProps(const PullToRefreshViewProps &sourceProps, const RawProps &rawProps); - -#pragma mark - Props - - SharedColor tintColor{}; - SharedColor titleColor{}; - std::string title{}; - bool refreshing{false}; -}; - -class SafeAreaViewProps final : public ViewProps { - public: - SafeAreaViewProps() = default; - SafeAreaViewProps(const SafeAreaViewProps &sourceProps, const RawProps &rawProps); - -#pragma mark - Props - - bool emulateUnlessSupported{false}; -}; - -class RCTSegmentedControlProps final : public ViewProps { - public: - RCTSegmentedControlProps() = default; - RCTSegmentedControlProps(const RCTSegmentedControlProps &sourceProps, const RawProps &rawProps); - -#pragma mark - Props - - std::vector values{}; - int selectedIndex{0}; - bool enabled{true}; - SharedColor tintColor{}; - SharedColor textColor{}; - SharedColor backgroundColor{}; - bool momentary{false}; -}; - -class SliderProps final : public ViewProps { - public: - SliderProps() = default; - SliderProps(const SliderProps &sourceProps, const RawProps &rawProps); - -#pragma mark - Props - - bool disabled{false}; - bool enabled{true}; - ImageSource maximumTrackImage{}; - SharedColor maximumTrackTintColor{}; - double maximumValue{1.0}; - ImageSource minimumTrackImage{}; - SharedColor minimumTrackTintColor{}; - double minimumValue{0.0}; - double step{0.0}; - std::string testID{""}; - ImageSource thumbImage{}; - SharedColor thumbTintColor{}; - ImageSource trackImage{}; - double value{0.0}; -}; - -class AndroidSwitchProps final : public ViewProps { - public: - AndroidSwitchProps() = default; - AndroidSwitchProps(const AndroidSwitchProps &sourceProps, const RawProps &rawProps); - -#pragma mark - Props - - bool disabled{false}; - bool enabled{true}; - SharedColor thumbColor{}; - SharedColor trackColorForFalse{}; - SharedColor trackColorForTrue{}; - bool value{false}; - bool on{false}; - SharedColor thumbTintColor{}; - SharedColor trackTintColor{}; -}; - -class SwitchProps final : public ViewProps { - public: - SwitchProps() = default; - SwitchProps(const SwitchProps &sourceProps, const RawProps &rawProps); - -#pragma mark - Props - - bool disabled{false}; - bool value{false}; - SharedColor tintColor{}; - SharedColor onTintColor{}; - SharedColor thumbTintColor{}; - SharedColor thumbColor{}; - SharedColor trackColorForFalse{}; - SharedColor trackColorForTrue{}; -}; - -class InputAccessoryProps final : public ViewProps { - public: - InputAccessoryProps() = default; - InputAccessoryProps(const InputAccessoryProps &sourceProps, const RawProps &rawProps); - -#pragma mark - Props - - SharedColor backgroundColor{}; -}; - -class UnimplementedNativeViewProps final : public ViewProps { - public: - UnimplementedNativeViewProps() = default; - UnimplementedNativeViewProps(const UnimplementedNativeViewProps &sourceProps, const RawProps &rawProps); - -#pragma mark - Props - - std::string name{""}; -}; - -enum class ModalHostViewAnimationType { None, Slide, Fade }; - -static inline void fromRawValue(const RawValue &value, ModalHostViewAnimationType &result) { - auto string = (std::string)value; - if (string == "none") { result = ModalHostViewAnimationType::None; return; } - if (string == "slide") { result = ModalHostViewAnimationType::Slide; return; } - if (string == "fade") { result = ModalHostViewAnimationType::Fade; return; } - abort(); -} - -static inline std::string toString(const ModalHostViewAnimationType &value) { - switch (value) { - case ModalHostViewAnimationType::None: return "none"; - case ModalHostViewAnimationType::Slide: return "slide"; - case ModalHostViewAnimationType::Fade: return "fade"; - } -} -enum class ModalHostViewPresentationStyle { FullScreen, PageSheet, FormSheet, OverFullScreen }; - -static inline void fromRawValue(const RawValue &value, ModalHostViewPresentationStyle &result) { - auto string = (std::string)value; - if (string == "fullScreen") { result = ModalHostViewPresentationStyle::FullScreen; return; } - if (string == "pageSheet") { result = ModalHostViewPresentationStyle::PageSheet; return; } - if (string == "formSheet") { result = ModalHostViewPresentationStyle::FormSheet; return; } - if (string == "overFullScreen") { result = ModalHostViewPresentationStyle::OverFullScreen; return; } - abort(); -} - -static inline std::string toString(const ModalHostViewPresentationStyle &value) { - switch (value) { - case ModalHostViewPresentationStyle::FullScreen: return "fullScreen"; - case ModalHostViewPresentationStyle::PageSheet: return "pageSheet"; - case ModalHostViewPresentationStyle::FormSheet: return "formSheet"; - case ModalHostViewPresentationStyle::OverFullScreen: return "overFullScreen"; - } -} -using ModalHostViewSupportedOrientationsMask = uint32_t; - -enum class ModalHostViewSupportedOrientations: ModalHostViewSupportedOrientationsMask { - Portrait = 1 << 0, - PortraitUpsideDown = 1 << 1, - Landscape = 1 << 2, - LandscapeLeft = 1 << 3, - LandscapeRight = 1 << 4 -}; - -constexpr bool operator&( - ModalHostViewSupportedOrientationsMask const lhs, - enum ModalHostViewSupportedOrientations const rhs) { - return lhs & static_cast(rhs); -} - -constexpr ModalHostViewSupportedOrientationsMask operator|( - ModalHostViewSupportedOrientationsMask const lhs, - enum ModalHostViewSupportedOrientations const rhs) { - return lhs | static_cast(rhs); -} - -constexpr void operator|=( - ModalHostViewSupportedOrientationsMask &lhs, - enum ModalHostViewSupportedOrientations const rhs) { - lhs = lhs | static_cast(rhs); -} - -static inline void fromRawValue(const RawValue &value, ModalHostViewSupportedOrientationsMask &result) { - auto items = std::vector{value}; - for (const auto &item : items) { - if (item == "portrait") { - result |= ModalHostViewSupportedOrientations::Portrait; - continue; - } - if (item == "portrait-upside-down") { - result |= ModalHostViewSupportedOrientations::PortraitUpsideDown; - continue; - } - if (item == "landscape") { - result |= ModalHostViewSupportedOrientations::Landscape; - continue; - } - if (item == "landscape-left") { - result |= ModalHostViewSupportedOrientations::LandscapeLeft; - continue; - } - if (item == "landscape-right") { - result |= ModalHostViewSupportedOrientations::LandscapeRight; - continue; - } - abort(); - } -} - -static inline std::string toString(const ModalHostViewSupportedOrientationsMask &value) { - auto result = std::string{}; - auto separator = std::string{", "}; - - if (value & ModalHostViewSupportedOrientations::Portrait) { - result += "portrait" + separator; - } - if (value & ModalHostViewSupportedOrientations::PortraitUpsideDown) { - result += "portrait-upside-down" + separator; - } - if (value & ModalHostViewSupportedOrientations::Landscape) { - result += "landscape" + separator; - } - if (value & ModalHostViewSupportedOrientations::LandscapeLeft) { - result += "landscape-left" + separator; - } - if (value & ModalHostViewSupportedOrientations::LandscapeRight) { - result += "landscape-right" + separator; - } - if (!result.empty()) { - result.erase(result.length() - separator.length()); - } - return result; -} - -class ModalHostViewProps final : public ViewProps { - public: - ModalHostViewProps() = default; - ModalHostViewProps(const ModalHostViewProps &sourceProps, const RawProps &rawProps); - -#pragma mark - Props - - ModalHostViewAnimationType animationType{ModalHostViewAnimationType::None}; - ModalHostViewPresentationStyle presentationStyle{ModalHostViewPresentationStyle::FullScreen}; - bool transparent{false}; - bool statusBarTranslucent{false}; - bool hardwareAccelerated{false}; - bool animated{false}; - ModalHostViewSupportedOrientationsMask supportedOrientations{static_cast(ModalHostViewSupportedOrientations::Portrait)}; - int identifier{0}; -}; - -} // namespace react -} // namespace facebook diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/ShadowNodes.cpp b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/ShadowNodes.cpp deleted file mode 100644 index befdb19c30d..00000000000 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/ShadowNodes.cpp +++ /dev/null @@ -1,28 +0,0 @@ - -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @generated by codegen project: GenerateShadowNodeCpp.js - */ - -#include - -namespace facebook { -namespace react { - -extern const char ActivityIndicatorViewComponentName[] = "ActivityIndicatorView"; -extern const char DatePickerComponentName[] = "DatePicker"; -extern const char AndroidDrawerLayoutComponentName[] = "AndroidDrawerLayout"; -extern const char RCTMaskedViewComponentName[] = "RCTMaskedView"; -extern const char RCTProgressViewComponentName[] = "RCTProgressView"; -extern const char AndroidSwipeRefreshLayoutComponentName[] = "AndroidSwipeRefreshLayout"; -extern const char PullToRefreshViewComponentName[] = "PullToRefreshView"; -extern const char RCTSegmentedControlComponentName[] = "RCTSegmentedControl"; -extern const char SwitchComponentName[] = "Switch"; -extern const char UnimplementedNativeViewComponentName[] = "UnimplementedNativeView"; - -} // namespace react -} // namespace facebook diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/ShadowNodes.h b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/ShadowNodes.h deleted file mode 100644 index f8a84f5836b..00000000000 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/jni/react/renderer/components/rncore/ShadowNodes.h +++ /dev/null @@ -1,117 +0,0 @@ - -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @generated by codegen project: GenerateShadowNodeH.js - */ - -#pragma once - -#include -#include -#include - -namespace facebook { -namespace react { - -extern const char ActivityIndicatorViewComponentName[]; - -/* - * `ShadowNode` for component. - */ -using ActivityIndicatorViewShadowNode = ConcreteViewShadowNode< - ActivityIndicatorViewComponentName, - ActivityIndicatorViewProps>; - -extern const char DatePickerComponentName[]; - -/* - * `ShadowNode` for component. - */ -using DatePickerShadowNode = ConcreteViewShadowNode< - DatePickerComponentName, - DatePickerProps, -DatePickerEventEmitter>; - -extern const char AndroidDrawerLayoutComponentName[]; - -/* - * `ShadowNode` for component. - */ -using AndroidDrawerLayoutShadowNode = ConcreteViewShadowNode< - AndroidDrawerLayoutComponentName, - AndroidDrawerLayoutProps, -AndroidDrawerLayoutEventEmitter>; - -extern const char RCTMaskedViewComponentName[]; - -/* - * `ShadowNode` for component. - */ -using RCTMaskedViewShadowNode = ConcreteViewShadowNode< - RCTMaskedViewComponentName, - RCTMaskedViewProps>; - -extern const char RCTProgressViewComponentName[]; - -/* - * `ShadowNode` for component. - */ -using RCTProgressViewShadowNode = ConcreteViewShadowNode< - RCTProgressViewComponentName, - RCTProgressViewProps>; - -extern const char AndroidSwipeRefreshLayoutComponentName[]; - -/* - * `ShadowNode` for component. - */ -using AndroidSwipeRefreshLayoutShadowNode = ConcreteViewShadowNode< - AndroidSwipeRefreshLayoutComponentName, - AndroidSwipeRefreshLayoutProps, -AndroidSwipeRefreshLayoutEventEmitter>; - -extern const char PullToRefreshViewComponentName[]; - -/* - * `ShadowNode` for component. - */ -using PullToRefreshViewShadowNode = ConcreteViewShadowNode< - PullToRefreshViewComponentName, - PullToRefreshViewProps, -PullToRefreshViewEventEmitter>; - -extern const char RCTSegmentedControlComponentName[]; - -/* - * `ShadowNode` for component. - */ -using RCTSegmentedControlShadowNode = ConcreteViewShadowNode< - RCTSegmentedControlComponentName, - RCTSegmentedControlProps, -RCTSegmentedControlEventEmitter>; - -extern const char SwitchComponentName[]; - -/* - * `ShadowNode` for component. - */ -using SwitchShadowNode = ConcreteViewShadowNode< - SwitchComponentName, - SwitchProps, -SwitchEventEmitter>; - -extern const char UnimplementedNativeViewComponentName[]; - -/* - * `ShadowNode` for component. - */ -using UnimplementedNativeViewShadowNode = ConcreteViewShadowNode< - UnimplementedNativeViewComponentName, - UnimplementedNativeViewProps>; - -} // namespace react -} // namespace facebook diff --git a/ReactAndroid/src/main/jni/react/jni/Android.mk b/ReactAndroid/src/main/jni/react/jni/Android.mk index 76c613b0f46..8340d30515c 100644 --- a/ReactAndroid/src/main/jni/react/jni/Android.mk +++ b/ReactAndroid/src/main/jni/react/jni/Android.mk @@ -136,7 +136,6 @@ include $(REACT_SRC_DIR)/reactperflogger/jni/Android.mk include $(REACT_SRC_DIR)/turbomodule/core/jni/Android.mk ifeq ($(BUILD_FABRIC),true) - include $(REACT_SRC_DIR)/viewmanagers/jni/Android.mk include $(REACT_SRC_DIR)/fabric/jni/Android.mk endif diff --git a/ReactCommon/react/renderer/components/modal/Android.mk b/ReactCommon/react/renderer/components/modal/Android.mk index dd404e8dbda..fd6e0ab6552 100644 --- a/ReactCommon/react/renderer/components/modal/Android.mk +++ b/ReactCommon/react/renderer/components/modal/Android.mk @@ -21,7 +21,7 @@ LOCAL_CFLAGS += -fexceptions -frtti -std=c++14 -Wall LOCAL_STATIC_LIBRARIES := -LOCAL_SHARED_LIBRARIES := libyoga glog libfolly_json libglog_init libreact_render_core libreact_render_debug libreact_render_graphics libreact_render_components_image libreact_render_uimanager libreact_render_imagemanager libreact_render_components_view libreact_render_componentregistry libreact_render_viewmanagers +LOCAL_SHARED_LIBRARIES := libyoga glog libfolly_json libglog_init libreact_render_core libreact_render_debug libreact_render_graphics libreact_render_components_image libreact_render_uimanager libreact_render_imagemanager libreact_render_components_view libreact_render_componentregistry libreact_codegen_rncore include $(BUILD_SHARED_LIBRARY) diff --git a/ReactCommon/react/renderer/components/picker/Android.mk b/ReactCommon/react/renderer/components/picker/Android.mk index be55965cece..a00db4ffb35 100644 --- a/ReactCommon/react/renderer/components/picker/Android.mk +++ b/ReactCommon/react/renderer/components/picker/Android.mk @@ -21,7 +21,7 @@ LOCAL_CFLAGS += -fexceptions -frtti -std=c++14 -Wall LOCAL_STATIC_LIBRARIES := -LOCAL_SHARED_LIBRARIES := libyoga glog libfolly_json libglog_init libreact_render_core libreact_render_debug libreact_render_graphics libreact_render_uimanager libreact_render_components_view libreact_render_componentregistry libreact_render_viewmanagers +LOCAL_SHARED_LIBRARIES := libyoga glog libfolly_json libglog_init libreact_render_core libreact_render_debug libreact_render_graphics libreact_render_uimanager libreact_render_components_view libreact_render_componentregistry libreact_codegen_rncore include $(BUILD_SHARED_LIBRARY) diff --git a/ReactCommon/react/renderer/components/progressbar/Android.mk b/ReactCommon/react/renderer/components/progressbar/Android.mk index f17cb34c809..ad9a268c434 100644 --- a/ReactCommon/react/renderer/components/progressbar/Android.mk +++ b/ReactCommon/react/renderer/components/progressbar/Android.mk @@ -21,7 +21,7 @@ LOCAL_CFLAGS += -fexceptions -frtti -std=c++14 -Wall LOCAL_STATIC_LIBRARIES := -LOCAL_SHARED_LIBRARIES := libfbjni libreact_render_viewmanagers libreactnativeutilsjni libreact_render_componentregistry libreact_render_uimanager libyoga libfolly_futures glog libfolly_json libglog_init libreact_render_core libreact_render_debug libreact_render_graphics libreact_render_components_view +LOCAL_SHARED_LIBRARIES := libfbjni libreact_codegen_rncore libreactnativeutilsjni libreact_render_componentregistry libreact_render_uimanager libyoga libfolly_futures glog libfolly_json libglog_init libreact_render_core libreact_render_debug libreact_render_graphics libreact_render_components_view include $(BUILD_SHARED_LIBRARY) diff --git a/ReactCommon/react/renderer/components/slider/Android.mk b/ReactCommon/react/renderer/components/slider/Android.mk index 23e58023b81..a687de48bd0 100644 --- a/ReactCommon/react/renderer/components/slider/Android.mk +++ b/ReactCommon/react/renderer/components/slider/Android.mk @@ -21,7 +21,7 @@ LOCAL_CFLAGS += -fexceptions -frtti -std=c++14 -Wall LOCAL_STATIC_LIBRARIES := -LOCAL_SHARED_LIBRARIES := libfbjni libreact_render_viewmanagers libreact_render_imagemanager libreactnativeutilsjni libreact_render_componentregistry libreact_render_uimanager libreact_render_components_image libyoga libfolly_futures glog libfolly_json libglog_init libreact_render_core libreact_render_debug libreact_render_graphics libreact_render_components_view +LOCAL_SHARED_LIBRARIES := libfbjni libreact_codegen_rncore libreact_render_imagemanager libreactnativeutilsjni libreact_render_componentregistry libreact_render_uimanager libreact_render_components_image libyoga libfolly_futures glog libfolly_json libglog_init libreact_render_core libreact_render_debug libreact_render_graphics libreact_render_components_view include $(BUILD_SHARED_LIBRARY) diff --git a/ReactCommon/react/renderer/components/switch/Android.mk b/ReactCommon/react/renderer/components/switch/Android.mk index 65be95635a0..4805dc1292f 100644 --- a/ReactCommon/react/renderer/components/switch/Android.mk +++ b/ReactCommon/react/renderer/components/switch/Android.mk @@ -21,7 +21,7 @@ LOCAL_CFLAGS += -fexceptions -frtti -std=c++14 -Wall LOCAL_STATIC_LIBRARIES := -LOCAL_SHARED_LIBRARIES := libfbjni libreact_render_viewmanagers libreactnativeutilsjni libreact_render_componentregistry libreact_render_uimanager libyoga libfolly_futures glog libfolly_json libglog_init libreact_render_core libreact_render_debug libreact_render_graphics libreact_render_components_view +LOCAL_SHARED_LIBRARIES := libfbjni libreact_codegen_rncore libreactnativeutilsjni libreact_render_componentregistry libreact_render_uimanager libyoga libfolly_futures glog libfolly_json libglog_init libreact_render_core libreact_render_debug libreact_render_graphics libreact_render_components_view include $(BUILD_SHARED_LIBRARY) diff --git a/packages/react-native-codegen/src/generators/RNCodegen.js b/packages/react-native-codegen/src/generators/RNCodegen.js index b4da4132056..06cf6f07845 100644 --- a/packages/react-native-codegen/src/generators/RNCodegen.js +++ b/packages/react-native-codegen/src/generators/RNCodegen.js @@ -77,12 +77,15 @@ const GENERATORS = { ], // TODO: Refactor this to consolidate various C++ output variation instead of forking per platform. componentsAndroid: [ - // TODO: enable C++ output below: - // generateComponentDescriptorH.generate, - // generateEventEmitterCpp.generate, - // generateEventEmitterH.generate, - // generatePropsCpp.generate, - // generatePropsH.generate, + // JNI/C++ files + generateComponentDescriptorH.generate, + generateEventEmitterCpp.generate, + generateEventEmitterH.generate, + generatePropsCpp.generate, + generatePropsH.generate, + generateShadowNodeCpp.generate, + generateShadowNodeH.generate, + // Java files generatePropsJavaInterface.generate, generatePropsJavaDelegate.generate, ], @@ -93,6 +96,8 @@ const GENERATORS = { generateComponentHObjCpp.generate, generatePropsCpp.generate, generatePropsH.generate, + generateShadowNodeCpp.generate, + generateShadowNodeH.generate, ], modulesAndroid: [ GenerateModuleJniCpp.generate, diff --git a/packages/react-native-codegen/src/generators/modules/GenerateModuleJniH.js b/packages/react-native-codegen/src/generators/modules/GenerateModuleJniH.js index d611a6be20b..a83207961bf 100644 --- a/packages/react-native-codegen/src/generators/modules/GenerateModuleJniH.js +++ b/packages/react-native-codegen/src/generators/modules/GenerateModuleJniH.js @@ -61,6 +61,7 @@ std::shared_ptr ${libraryName}_ModuleProvider(const std::string mod `; }; +// Note: this Android.mk template includes dependencies for both NativeModule and components. const AndroidMkTemplate = ({libraryName}: $ReadOnly<{libraryName: string}>) => { return `# Copyright (c) Facebook, Inc. and its affiliates. # @@ -71,15 +72,15 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_MODULE := ${libraryName} +LOCAL_MODULE := react_codegen_${libraryName} LOCAL_C_INCLUDES := $(LOCAL_PATH) -LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) +LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) $(wildcard $(LOCAL_PATH)/react/renderer/components/${libraryName}/*.cpp) -LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/react/renderer/components/${libraryName} -LOCAL_SHARED_LIBRARIES := libreact_nativemodule_core +LOCAL_SHARED_LIBRARIES := libglog libfolly_json libyoga libreact_nativemodule_core libreact_render_components_view libreact_render_core libreact_render_graphics LOCAL_STATIC_LIBRARIES := libjsi @@ -122,7 +123,7 @@ module.exports = { [ 'jni/Android.mk', AndroidMkTemplate({ - libraryName: `react_codegen_${libraryName.toLowerCase()}`, + libraryName: `${libraryName.toLowerCase()}`, }), ], ]); diff --git a/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleJniH-test.js.snap b/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleJniH-test.js.snap index ac403bf8d4b..412b15cb456 100644 --- a/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleJniH-test.js.snap +++ b/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleJniH-test.js.snap @@ -48,11 +48,11 @@ LOCAL_MODULE := react_codegen_complex_objects LOCAL_C_INCLUDES := $(LOCAL_PATH) -LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) +LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) $(wildcard $(LOCAL_PATH)/react/renderer/components/complex_objects/*.cpp) -LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/react/renderer/components/complex_objects -LOCAL_SHARED_LIBRARIES := libreact_nativemodule_core +LOCAL_SHARED_LIBRARIES := libglog libfolly_json libyoga libreact_nativemodule_core libreact_render_components_view libreact_render_core libreact_render_graphics LOCAL_STATIC_LIBRARIES := libjsi @@ -114,11 +114,11 @@ LOCAL_MODULE := react_codegen_empty_native_modules LOCAL_C_INCLUDES := $(LOCAL_PATH) -LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) +LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) $(wildcard $(LOCAL_PATH)/react/renderer/components/empty_native_modules/*.cpp) -LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/react/renderer/components/empty_native_modules -LOCAL_SHARED_LIBRARIES := libreact_nativemodule_core +LOCAL_SHARED_LIBRARIES := libglog libfolly_json libyoga libreact_nativemodule_core libreact_render_components_view libreact_render_core libreact_render_graphics LOCAL_STATIC_LIBRARIES := libjsi @@ -180,11 +180,11 @@ LOCAL_MODULE := react_codegen_native_modules_with_type_aliases LOCAL_C_INCLUDES := $(LOCAL_PATH) -LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) +LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) $(wildcard $(LOCAL_PATH)/react/renderer/components/native_modules_with_type_aliases/*.cpp) -LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/react/renderer/components/native_modules_with_type_aliases -LOCAL_SHARED_LIBRARIES := libreact_nativemodule_core +LOCAL_SHARED_LIBRARIES := libglog libfolly_json libyoga libreact_nativemodule_core libreact_render_components_view libreact_render_core libreact_render_graphics LOCAL_STATIC_LIBRARIES := libjsi @@ -254,11 +254,11 @@ LOCAL_MODULE := react_codegen_real_module_example LOCAL_C_INCLUDES := $(LOCAL_PATH) -LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) +LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) $(wildcard $(LOCAL_PATH)/react/renderer/components/real_module_example/*.cpp) -LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/react/renderer/components/real_module_example -LOCAL_SHARED_LIBRARIES := libreact_nativemodule_core +LOCAL_SHARED_LIBRARIES := libglog libfolly_json libyoga libreact_nativemodule_core libreact_render_components_view libreact_render_core libreact_render_graphics LOCAL_STATIC_LIBRARIES := libjsi @@ -320,11 +320,11 @@ LOCAL_MODULE := react_codegen_simple_native_modules LOCAL_C_INCLUDES := $(LOCAL_PATH) -LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) +LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) $(wildcard $(LOCAL_PATH)/react/renderer/components/simple_native_modules/*.cpp) -LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/react/renderer/components/simple_native_modules -LOCAL_SHARED_LIBRARIES := libreact_nativemodule_core +LOCAL_SHARED_LIBRARIES := libglog libfolly_json libyoga libreact_nativemodule_core libreact_render_components_view libreact_render_core libreact_render_graphics LOCAL_STATIC_LIBRARIES := libjsi @@ -394,11 +394,11 @@ LOCAL_MODULE := react_codegen_two_modules_different_files LOCAL_C_INCLUDES := $(LOCAL_PATH) -LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) +LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) $(wildcard $(LOCAL_PATH)/react/renderer/components/two_modules_different_files/*.cpp) -LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/react/renderer/components/two_modules_different_files -LOCAL_SHARED_LIBRARIES := libreact_nativemodule_core +LOCAL_SHARED_LIBRARIES := libglog libfolly_json libyoga libreact_nativemodule_core libreact_render_components_view libreact_render_core libreact_render_graphics LOCAL_STATIC_LIBRARIES := libjsi diff --git a/packages/rn-tester/android/app/src/main/jni/Android.mk b/packages/rn-tester/android/app/src/main/jni/Android.mk index 09d4881d54f..e11ca0b62fb 100644 --- a/packages/rn-tester/android/app/src/main/jni/Android.mk +++ b/packages/rn-tester/android/app/src/main/jni/Android.mk @@ -18,7 +18,7 @@ LOCAL_MODULE := rntester_appmodules LOCAL_C_INCLUDES := $(LOCAL_PATH) $(GENERATED_SRC_DIR)/codegen/jni LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp) LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) $(GENERATED_SRC_DIR)/codegen/jni -LOCAL_SHARED_LIBRARIES := libfbjni libreact_nativemodule_core libturbomodulejsijni libreact_codegen_rncore +LOCAL_SHARED_LIBRARIES := libfbjni libglog libfolly_json libyoga libreact_nativemodule_core libturbomodulejsijni libreact_render_components_view libreact_render_core libreact_render_graphics libreact_codegen_rncore LOCAL_STATIC_LIBRARIES := libsampleturbomodule LOCAL_CFLAGS := \ -DLOG_TAG=\"ReactNative\" diff --git a/scripts/generate-native-modules-specs-cli.js b/scripts/generate-native-modules-specs-cli.js index 81c645e9ec2..0412be9340d 100644 --- a/scripts/generate-native-modules-specs-cli.js +++ b/scripts/generate-native-modules-specs-cli.js @@ -76,6 +76,21 @@ function generateSpec( generators: GENERATORS[platform], }, ); + + if (platform === 'android') { + // Move all components C++ files to a structured jni folder for now. + // Note: this should've been done by RNCodegen's generators, but: + // * the generators don't support platform option yet + // * this subdir structure is Android-only, not applicable to iOS + const files = fs.readdirSync(outputDirectory); + const jniOutputDirectory = `${outputDirectory}/jni/react/renderer/components/${libraryName}`; + mkdirp.sync(jniOutputDirectory); + files + .filter(f => f.endsWith('.h') || f.endsWith('.cpp')) + .forEach(f => { + fs.renameSync(`${outputDirectory}/${f}`, `${jniOutputDirectory}/${f}`); + }); + } } function main() {