Fabric: `scheduler` module was decoupled from `uimanager`

Summary:
We need to break up the `uimanager` module in order to solve circular dependencies problem (which future diff would have otherwise).

Changelog: [Internal] Fabric-specific internal change.

Reviewed By: JoshuaGross

Differential Revision: D20885645

fbshipit-source-id: 8148bd934879802b076261ed86fa78acf0a07ed3
This commit is contained in:
Valentin Shergin 2020-04-18 14:51:46 -07:00 коммит произвёл Facebook GitHub Bot
Родитель e56950dc65
Коммит 599f1edd9a
13 изменённых файлов: 80 добавлений и 12 удалений

Просмотреть файл

@ -14,7 +14,7 @@
#import <react/core/LayoutConstraints.h>
#import <react/core/LayoutContext.h>
#import <react/mounting/MountingCoordinator.h>
#import <react/uimanager/SchedulerToolbox.h>
#import <react/scheduler/SchedulerToolbox.h>
#import <react/utils/ContextContainer.h>
NS_ASSUME_NONNULL_BEGIN

Просмотреть файл

@ -9,8 +9,8 @@
#import <react/componentregistry/ComponentDescriptorFactory.h>
#import <react/debug/SystraceSection.h>
#import <react/uimanager/Scheduler.h>
#import <react/uimanager/SchedulerDelegate.h>
#import <react/scheduler/Scheduler.h>
#import <react/scheduler/SchedulerDelegate.h>
#import <React/RCTFollyConvert.h>

Просмотреть файл

@ -28,7 +28,7 @@
#import <react/config/ReactNativeConfig.h>
#import <react/core/LayoutConstraints.h>
#import <react/core/LayoutContext.h>
#import <react/uimanager/SchedulerToolbox.h>
#import <react/scheduler/SchedulerToolbox.h>
#import <react/utils/ContextContainer.h>
#import <react/utils/ManagedObjectWrapper.h>

Просмотреть файл

@ -29,6 +29,7 @@ rn_xplat_cxx_library(
react_native_xplat_target("better:better"),
react_native_xplat_target("config:config"),
react_native_xplat_target("fabric/uimanager:uimanager"),
react_native_xplat_target("fabric/scheduler:scheduler"),
react_native_xplat_target("fabric/componentregistry:componentregistry"),
react_native_xplat_target("fabric/components/scrollview:scrollview"),
react_native_xplat_target("utils:utils"),

Просмотреть файл

@ -21,9 +21,9 @@
#include <react/core/EventEmitter.h>
#include <react/core/conversions.h>
#include <react/debug/SystraceSection.h>
#include <react/uimanager/Scheduler.h>
#include <react/uimanager/SchedulerDelegate.h>
#include <react/uimanager/SchedulerToolbox.h>
#include <react/scheduler/Scheduler.h>
#include <react/scheduler/SchedulerDelegate.h>
#include <react/scheduler/SchedulerToolbox.h>
#include <react/uimanager/primitives.h>
#include <react/utils/ContextContainer.h>

Просмотреть файл

@ -10,8 +10,8 @@
#include <fbjni/fbjni.h>
#include <react/jni/JMessageQueueThread.h>
#include <react/jni/ReadableNativeMap.h>
#include <react/uimanager/Scheduler.h>
#include <react/uimanager/SchedulerDelegate.h>
#include <react/scheduler/Scheduler.h>
#include <react/scheduler/SchedulerDelegate.h>
#include <memory>
#include <mutex>
#include "ComponentFactoryDelegate.h"

Просмотреть файл

@ -10,7 +10,7 @@
#include <fbjni/fbjni.h>
#include <jsi/jsi.h>
#include <react/componentregistry/ComponentDescriptorRegistry.h>
#include <react/uimanager/Scheduler.h>
#include <react/scheduler/Scheduler.h>
#include <react/utils/ContextContainer.h>
#include <mutex>
#include <unordered_set>

Просмотреть файл

@ -0,0 +1,67 @@
load("@fbsource//tools/build_defs/apple:flag_defs.bzl", "get_preprocessor_flags_for_build_mode")
load(
"//tools/build_defs/oss:rn_defs.bzl",
"ANDROID",
"APPLE",
"CXX",
"get_apple_compiler_flags",
"get_apple_inspector_flags",
"react_native_xplat_target",
"rn_xplat_cxx_library",
"subdir_glob",
)
APPLE_COMPILER_FLAGS = get_apple_compiler_flags()
rn_xplat_cxx_library(
name = "scheduler",
srcs = glob(
["**/*.cpp"],
exclude = glob(["tests/**/*.cpp"]),
),
headers = glob(
["**/*.h"],
exclude = glob(["tests/**/*.h"]),
),
header_namespace = "",
exported_headers = subdir_glob(
[
("", "*.h"),
],
prefix = "react/scheduler",
),
compiler_flags = [
"-fexceptions",
"-frtti",
"-std=c++14",
"-Wall",
],
fbobjc_compiler_flags = APPLE_COMPILER_FLAGS,
fbobjc_labels = ["supermodule:ios/default/public.react_native.infra"],
fbobjc_preprocessor_flags = get_preprocessor_flags_for_build_mode() + get_apple_inspector_flags(),
force_static = True,
macosx_tests_override = [],
platforms = (ANDROID, APPLE, CXX),
preprocessor_flags = [
"-DLOG_TAG=\"ReactNative\"",
"-DWITH_FBSYSTRACE=1",
],
visibility = ["PUBLIC"],
deps = [
"//xplat/fbsystrace:fbsystrace",
"//xplat/folly:headers_only",
"//xplat/folly:memory",
"//xplat/folly:molly",
"//xplat/jsi:JSIDynamic",
"//xplat/jsi:jsi",
"//xplat/third-party/glog:glog",
react_native_xplat_target("fabric/core:core"),
react_native_xplat_target("fabric/mounting:mounting"),
react_native_xplat_target("fabric/uimanager:uimanager"),
react_native_xplat_target("config:config"),
react_native_xplat_target("fabric/componentregistry:componentregistry"),
react_native_xplat_target("fabric/debug:debug"),
react_native_xplat_target("fabric/components/root:root"),
react_native_xplat_target("utils:utils"),
],
)

Просмотреть файл

@ -16,8 +16,8 @@
#include <react/config/ReactNativeConfig.h>
#include <react/core/ComponentDescriptor.h>
#include <react/core/LayoutConstraints.h>
#include <react/uimanager/SchedulerDelegate.h>
#include <react/uimanager/SchedulerToolbox.h>
#include <react/scheduler/SchedulerDelegate.h>
#include <react/scheduler/SchedulerToolbox.h>
#include <react/uimanager/UIManagerBinding.h>
#include <react/uimanager/UIManagerDelegate.h>
#include <react/utils/ContextContainer.h>