Skip to content

Commit

Permalink
Fabric: templateprocessor module was decoupled from uimanager
Browse files Browse the repository at this point in the history
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: D20885646

fbshipit-source-id: b8e3199c0eacc57a5be1481595cf97c84f972293
  • Loading branch information
shergin authored and facebook-github-bot committed Apr 18, 2020
1 parent 599f1ed commit 7a2c685
Show file tree
Hide file tree
Showing 6 changed files with 96 additions and 2 deletions.
1 change: 1 addition & 0 deletions ReactCommon/fabric/scheduler/BUCK
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ rn_xplat_cxx_library(
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("fabric/templateprocessor:templateprocessor"),
react_native_xplat_target("config:config"),
react_native_xplat_target("fabric/componentregistry:componentregistry"),
react_native_xplat_target("fabric/debug:debug"),
Expand Down
2 changes: 1 addition & 1 deletion ReactCommon/fabric/scheduler/Scheduler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
#include <react/componentregistry/ComponentDescriptorRegistry.h>
#include <react/core/LayoutContext.h>
#include <react/debug/SystraceSection.h>
#include <react/templateprocessor/UITemplateProcessor.h>
#include <react/uimanager/UIManager.h>
#include <react/uimanager/UIManagerBinding.h>
#include <react/uimanager/UITemplateProcessor.h>

namespace facebook {
namespace react {
Expand Down
93 changes: 93 additions & 0 deletions ReactCommon/fabric/templateprocessor/BUCK
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
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",
"fb_xplat_cxx_test",
"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 = "templateprocessor",
srcs = glob(
["**/*.cpp"],
exclude = glob(["tests/**/*.cpp"]),
),
headers = glob(
["**/*.h"],
exclude = glob(["tests/**/*.h"]),
),
header_namespace = "",
exported_headers = subdir_glob(
[
("", "*.h"),
],
prefix = "react/templateprocessor",
),
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",
],
tests = [":tests"],
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/uimanager:uimanager"),
react_native_xplat_target("fabric/componentregistry:componentregistry"),
react_native_xplat_target("fabric/debug:debug"),
react_native_xplat_target("config:config"),
react_native_xplat_target("utils:utils"),
],
)

fb_xplat_cxx_test(
name = "tests",
srcs = glob(["tests/**/*.cpp"]),
headers = glob(["tests/**/*.h"]),
compiler_flags = [
"-fexceptions",
"-frtti",
"-std=c++14",
"-Wall",
],
contacts = ["oncall+react_native@xmail.facebook.com"],
platforms = (ANDROID, APPLE, CXX),
deps = [
":templateprocessor",
"//xplat/folly:molly",
"//xplat/third-party/gmock:gtest",
react_native_xplat_target("config:config"),
react_native_xplat_target("fabric/components/activityindicator:activityindicator"),
react_native_xplat_target("fabric/components/image:image"),
react_native_xplat_target("fabric/components/root:root"),
react_native_xplat_target("fabric/components/scrollview:scrollview"),
react_native_xplat_target("fabric/components/view:view"),
"//xplat/js/react-native-github:generated_components-rncore",
],
)
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#include <glog/logging.h>
#include <gtest/gtest.h>
#include <react/componentregistry/ComponentDescriptorFactory.h>
#include <react/uimanager/UITemplateProcessor.h>
#include <react/templateprocessor/UITemplateProcessor.h>

using namespace facebook::react;

Expand Down

0 comments on commit 7a2c685

Please sign in to comment.