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