1*fe5cfb17STomasz Sapetaload(
2*fe5cfb17STomasz Sapeta    "//tools/build_defs/oss:rn_defs.bzl",
3*fe5cfb17STomasz Sapeta    "ANDROID",
4*fe5cfb17STomasz Sapeta    "APPLE",
5*fe5cfb17STomasz Sapeta    "CXX",
6*fe5cfb17STomasz Sapeta    "get_apple_compiler_flags",
7*fe5cfb17STomasz Sapeta    "get_apple_inspector_flags",
8*fe5cfb17STomasz Sapeta    "get_preprocessor_flags_for_build_mode",
9*fe5cfb17STomasz Sapeta    "react_native_target",
10*fe5cfb17STomasz Sapeta    "react_native_xplat_target",
11*fe5cfb17STomasz Sapeta    "rn_xplat_cxx_library",
12*fe5cfb17STomasz Sapeta    "subdir_glob",
13*fe5cfb17STomasz Sapeta)
14*fe5cfb17STomasz Sapeta
15*fe5cfb17STomasz SapetaAPPLE_COMPILER_FLAGS = get_apple_compiler_flags()
16*fe5cfb17STomasz Sapeta
17*fe5cfb17STomasz Sapetarn_xplat_cxx_library(
18*fe5cfb17STomasz Sapeta    name = "utils",
19*fe5cfb17STomasz Sapeta    srcs = glob(
20*fe5cfb17STomasz Sapeta        [
21*fe5cfb17STomasz Sapeta            "**/*.cpp",
22*fe5cfb17STomasz Sapeta            "**/*.mm",
23*fe5cfb17STomasz Sapeta        ],
24*fe5cfb17STomasz Sapeta        exclude = glob(["tests/**/*.cpp"]),
25*fe5cfb17STomasz Sapeta    ),
26*fe5cfb17STomasz Sapeta    headers = glob(
27*fe5cfb17STomasz Sapeta        ["**/*.h"],
28*fe5cfb17STomasz Sapeta        exclude = glob(["tests/**/*.h"]),
29*fe5cfb17STomasz Sapeta    ),
30*fe5cfb17STomasz Sapeta    header_namespace = "",
31*fe5cfb17STomasz Sapeta    exported_headers = subdir_glob(
32*fe5cfb17STomasz Sapeta        [
33*fe5cfb17STomasz Sapeta            ("", "*.h"),
34*fe5cfb17STomasz Sapeta        ],
35*fe5cfb17STomasz Sapeta        prefix = "react/utils",
36*fe5cfb17STomasz Sapeta    ),
37*fe5cfb17STomasz Sapeta    compiler_flags_pedantic = True,
38*fe5cfb17STomasz Sapeta    fbandroid_deps = [
39*fe5cfb17STomasz Sapeta        react_native_target("jni/react/mapbuffer:jni"),
40*fe5cfb17STomasz Sapeta        react_native_xplat_target("react/renderer/mapbuffer:mapbuffer"),
41*fe5cfb17STomasz Sapeta    ],
42*fe5cfb17STomasz Sapeta    fbobjc_compiler_flags = APPLE_COMPILER_FLAGS,
43*fe5cfb17STomasz Sapeta    fbobjc_frameworks = ["Foundation"],
44*fe5cfb17STomasz Sapeta    fbobjc_preprocessor_flags = get_preprocessor_flags_for_build_mode() + get_apple_inspector_flags(),
45*fe5cfb17STomasz Sapeta    force_static = True,
46*fe5cfb17STomasz Sapeta    labels = [
47*fe5cfb17STomasz Sapeta        "pfh:ReactNative_CommonInfrastructurePlaceholder",
48*fe5cfb17STomasz Sapeta    ],
49*fe5cfb17STomasz Sapeta    macosx_tests_override = [],
50*fe5cfb17STomasz Sapeta    platforms = (ANDROID, APPLE, CXX),
51*fe5cfb17STomasz Sapeta    preprocessor_flags = [
52*fe5cfb17STomasz Sapeta        "-DLOG_TAG=\"ReactNative\"",
53*fe5cfb17STomasz Sapeta        "-DWITH_FBSYSTRACE=1",
54*fe5cfb17STomasz Sapeta    ],
55*fe5cfb17STomasz Sapeta    tests = [],
56*fe5cfb17STomasz Sapeta    visibility = ["PUBLIC"],
57*fe5cfb17STomasz Sapeta    deps = [
58*fe5cfb17STomasz Sapeta        "//xplat/folly:container_evicting_cache_map",
59*fe5cfb17STomasz Sapeta        "//xplat/jsi:jsi",
60*fe5cfb17STomasz Sapeta        react_native_xplat_target("butter:butter"),
61*fe5cfb17STomasz Sapeta        react_native_xplat_target("react/debug:debug"),
62*fe5cfb17STomasz Sapeta    ],
63*fe5cfb17STomasz Sapeta)
64