mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
dfa25df2cf
Summary: With this change, we now collect the number of text measurements that we perform during the layout phase of the commit. Text measurements are the most expensive layout operations which pretty much responsible for the vast majority of time spent in the layout phase. Changelog: [Internal] Fabric-specific internal change. Reviewed By: mdvacca Differential Revision: D23364664 fbshipit-source-id: 19514b93166b4053c2f3be37e79507f2c5248000
102 lines
3.3 KiB
Python
102 lines
3.3 KiB
Python
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",
|
|
"YOGA_CXX_TARGET",
|
|
"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 = "text",
|
|
srcs = glob(
|
|
["**/*.cpp"],
|
|
exclude = glob(["tests/**/*.cpp"]),
|
|
),
|
|
headers = glob(
|
|
["**/*.h"],
|
|
exclude = glob(["tests/**/*.h"]),
|
|
),
|
|
header_namespace = "",
|
|
exported_headers = subdir_glob(
|
|
[
|
|
("", "*.h"),
|
|
("basetext", "*.h"),
|
|
("paragraph", "*.h"),
|
|
("text", "*.h"),
|
|
("rawtext", "*.h"),
|
|
],
|
|
prefix = "react/renderer/components/text",
|
|
),
|
|
compiler_flags = [
|
|
"-fexceptions",
|
|
"-frtti",
|
|
"-std=c++14",
|
|
"-Wall",
|
|
],
|
|
cxx_tests = [":tests"],
|
|
fbobjc_compiler_flags = APPLE_COMPILER_FLAGS,
|
|
fbobjc_preprocessor_flags = get_preprocessor_flags_for_build_mode() + get_apple_inspector_flags(),
|
|
force_static = True,
|
|
labels = ["supermodule:xplat/default/public.react_native.infra"],
|
|
platforms = (ANDROID, APPLE, CXX),
|
|
preprocessor_flags = [
|
|
"-DLOG_TAG=\"ReactNative\"",
|
|
"-DWITH_FBSYSTRACE=1",
|
|
],
|
|
visibility = ["PUBLIC"],
|
|
deps = [
|
|
"//third-party/glog:glog",
|
|
"//xplat/fbsystrace:fbsystrace",
|
|
"//xplat/folly:container_evicting_cache_map",
|
|
"//xplat/folly:headers_only",
|
|
"//xplat/folly:memory",
|
|
"//xplat/folly:molly",
|
|
YOGA_CXX_TARGET,
|
|
react_native_xplat_target("react/utils:utils"),
|
|
react_native_xplat_target("react/renderer/attributedstring:attributedstring"),
|
|
react_native_xplat_target("react/renderer/core:core"),
|
|
react_native_xplat_target("react/renderer/debug:debug"),
|
|
react_native_xplat_target("react/renderer/graphics:graphics"),
|
|
react_native_xplat_target("react/renderer/textlayoutmanager:textlayoutmanager"),
|
|
react_native_xplat_target("react/renderer/components/view:view"),
|
|
react_native_xplat_target("react/renderer/uimanager:uimanager"),
|
|
react_native_xplat_target("react/renderer/mounting:mounting"),
|
|
react_native_xplat_target("react/renderer/componentregistry:componentregistry"),
|
|
],
|
|
)
|
|
|
|
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 = (
|
|
# `Apple` and `Android` flavors are disabled because the module depends on `textlayoutmanager` which requires real an Emulator/Simulator to run.
|
|
# At the same time, the code of tests does not rely on the simulator capabilities and it would be wasteful to add `fbandroid_use_instrumentation_test = True`.
|
|
# (Beware of this option though.)
|
|
# ANDROID,
|
|
# APPLE,
|
|
CXX
|
|
),
|
|
deps = [
|
|
":text",
|
|
"//xplat/folly:molly",
|
|
"//xplat/third-party/gmock:gtest",
|
|
],
|
|
)
|