Files
react-native/ReactCommon/react/renderer/textlayoutmanager/BUCK
T
David Vacca 7d5383eea8 Extend 'textlayoutmanager' module to compile in OSS
Summary:
This diff extends the 'textlayoutmanager' module to compile in OSS
As part of this diff I also moved Android files in order to make the module compatible with Android.mk system

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D22963706

fbshipit-source-id: 14a7309f589fe12c21131c7d5cef02b4323d4a93
2020-08-07 19:49:19 -07:00

159 lines
4.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_target",
"react_native_xplat_target",
"rn_xplat_cxx_library",
"subdir_glob",
)
APPLE_COMPILER_FLAGS = get_apple_compiler_flags()
rn_xplat_cxx_library(
name = "textlayoutmanager",
srcs = glob(
[
"*.cpp",
],
),
headers = subdir_glob(
[
("", "*.h"),
],
prefix = "",
),
header_namespace = "",
exported_headers = subdir_glob(
[
("", "*.h"),
],
prefix = "react/renderer/textlayoutmanager",
),
compiler_flags = [
"-fexceptions",
"-frtti",
"-std=c++14",
"-Wall",
],
cxx_exported_headers = subdir_glob(
[
("platform/cxx", "*.h"),
],
prefix = "react/renderer/textlayoutmanager",
),
cxx_headers = subdir_glob(
[
("platform/cxx", "**/*.h"),
],
prefix = "",
),
cxx_srcs = glob(
[
"platform/cxx/**/*.cpp",
],
),
cxx_tests = [":tests"],
fbandroid_deps = [
react_native_target("jni/react/jni:jni"),
],
fbandroid_exported_headers = subdir_glob(
[
("platform/android/react/renderer/textlayoutmanager", "**/*.h"),
],
prefix = "react/renderer/textlayoutmanager",
),
fbandroid_headers = subdir_glob(
[
("platform/android/react/renderer/textlayoutmanager", "**/*.h"),
],
prefix = "",
),
fbandroid_srcs = glob(
[
"platform/android/react/renderer/textlayoutmanager/**/*.cpp",
],
),
fbobjc_compiler_flags = APPLE_COMPILER_FLAGS,
fbobjc_preprocessor_flags = get_preprocessor_flags_for_build_mode() + get_apple_inspector_flags(),
force_static = True,
ios_deps = [
],
ios_exported_headers = subdir_glob(
[
("platform/ios", "*.h"),
],
prefix = "react/renderer/textlayoutmanager",
),
ios_frameworks = [
"$SDKROOT/System/Library/Frameworks/CoreGraphics.framework",
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
"$SDKROOT/System/Library/Frameworks/UIKit.framework",
],
ios_headers = subdir_glob(
[
("platform/ios", "**/*.h"),
],
prefix = "",
),
ios_srcs = glob(
[
"platform/ios/**/*.cpp",
"platform/ios/**/*.mm",
],
),
labels = ["supermodule:xplat/default/public.react_native.infra"],
macosx_tests_override = [],
platforms = (ANDROID, APPLE, CXX),
preprocessor_flags = [
"-DLOG_TAG=\"ReactNative\"",
"-DWITH_FBSYSTRACE=1",
],
visibility = ["PUBLIC"],
deps = [
"//third-party/glog:glog",
"//xplat/fbsystrace:fbsystrace",
"//xplat/folly:headers_only",
"//xplat/folly:memory",
"//xplat/folly:molly",
YOGA_CXX_TARGET,
react_native_xplat_target("react/renderer/attributedstring:attributedstring"),
react_native_xplat_target("react/renderer/core:core"),
react_native_xplat_target("react/utils:utils"),
react_native_xplat_target("react/renderer/debug:debug"),
react_native_xplat_target("react/renderer/graphics:graphics"),
react_native_xplat_target("react/renderer/uimanager:uimanager"),
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 (built with those flavors) requires Emulator/Simulator (which is expensive and slow). At the same time, we don't really have tests here.
# ANDROID,
# APPLE,
CXX,
),
deps = [
":textlayoutmanager",
"//xplat/folly:molly",
"//xplat/third-party/gmock:gtest",
],
)