From 7a2c685ac14cae1f5baf51beabea6af0f26bc645 Mon Sep 17 00:00:00 2001 From: Valentin Shergin Date: Sat, 18 Apr 2020 14:51:46 -0700 Subject: [PATCH] Fabric: `templateprocessor` 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: D20885646 fbshipit-source-id: b8e3199c0eacc57a5be1481595cf97c84f972293 --- ReactCommon/fabric/scheduler/BUCK | 1 + ReactCommon/fabric/scheduler/Scheduler.cpp | 2 +- ReactCommon/fabric/templateprocessor/BUCK | 93 +++++++++++++++++++ .../UITemplateProcessor.cpp | 0 .../UITemplateProcessor.h | 0 .../tests/UITemplateProcessorTest.cpp | 2 +- 6 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 ReactCommon/fabric/templateprocessor/BUCK rename ReactCommon/fabric/{uimanager => templateprocessor}/UITemplateProcessor.cpp (100%) rename ReactCommon/fabric/{uimanager => templateprocessor}/UITemplateProcessor.h (100%) rename ReactCommon/fabric/{uimanager => templateprocessor}/tests/UITemplateProcessorTest.cpp (98%) diff --git a/ReactCommon/fabric/scheduler/BUCK b/ReactCommon/fabric/scheduler/BUCK index bea55d62d2..527e6756d5 100644 --- a/ReactCommon/fabric/scheduler/BUCK +++ b/ReactCommon/fabric/scheduler/BUCK @@ -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"), diff --git a/ReactCommon/fabric/scheduler/Scheduler.cpp b/ReactCommon/fabric/scheduler/Scheduler.cpp index 6a8133f20a..671713b4b6 100644 --- a/ReactCommon/fabric/scheduler/Scheduler.cpp +++ b/ReactCommon/fabric/scheduler/Scheduler.cpp @@ -13,9 +13,9 @@ #include #include #include +#include #include #include -#include namespace facebook { namespace react { diff --git a/ReactCommon/fabric/templateprocessor/BUCK b/ReactCommon/fabric/templateprocessor/BUCK new file mode 100644 index 0000000000..4a35935675 --- /dev/null +++ b/ReactCommon/fabric/templateprocessor/BUCK @@ -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", + ], +) diff --git a/ReactCommon/fabric/uimanager/UITemplateProcessor.cpp b/ReactCommon/fabric/templateprocessor/UITemplateProcessor.cpp similarity index 100% rename from ReactCommon/fabric/uimanager/UITemplateProcessor.cpp rename to ReactCommon/fabric/templateprocessor/UITemplateProcessor.cpp diff --git a/ReactCommon/fabric/uimanager/UITemplateProcessor.h b/ReactCommon/fabric/templateprocessor/UITemplateProcessor.h similarity index 100% rename from ReactCommon/fabric/uimanager/UITemplateProcessor.h rename to ReactCommon/fabric/templateprocessor/UITemplateProcessor.h diff --git a/ReactCommon/fabric/uimanager/tests/UITemplateProcessorTest.cpp b/ReactCommon/fabric/templateprocessor/tests/UITemplateProcessorTest.cpp similarity index 98% rename from ReactCommon/fabric/uimanager/tests/UITemplateProcessorTest.cpp rename to ReactCommon/fabric/templateprocessor/tests/UITemplateProcessorTest.cpp index b1d2d97e85..743b203a6b 100644 --- a/ReactCommon/fabric/uimanager/tests/UITemplateProcessorTest.cpp +++ b/ReactCommon/fabric/templateprocessor/tests/UITemplateProcessorTest.cpp @@ -10,7 +10,7 @@ #include #include #include -#include +#include using namespace facebook::react;