1load("@fbsource//tools/build_defs:glob_defs.bzl", "subdir_glob")
2load("@fbsource//tools/build_defs:platform_defs.bzl", "ANDROID", "APPLE", "CXX")
3load("@fbsource//tools/build_defs/apple:flag_defs.bzl", "flags", "get_preprocessor_flags_for_build_mode", "get_static_library_ios_flags")
4load("@fbsource//tools/build_defs/oss:rn_defs.bzl", "get_apple_inspector_flags", "rn_xplat_cxx_library")
5
6APPLE_COMPILER_FLAGS = flags.get_flag_value(
7    get_static_library_ios_flags(),
8    "compiler_flags",
9)
10
11rn_xplat_cxx_library(
12    name = "config",
13    srcs = glob(["**/*.cpp"]),
14    header_namespace = "",
15    exported_headers = subdir_glob(
16        [
17            ("", "**/*.h"),
18        ],
19        prefix = "react/config",
20    ),
21    compiler_flags_enable_exceptions = True,
22    compiler_flags_enable_rtti = True,  # for ReactNativeConfig
23    compiler_flags_pedantic = True,
24    fbobjc_compiler_flags = APPLE_COMPILER_FLAGS,
25    fbobjc_preprocessor_flags = get_preprocessor_flags_for_build_mode() + get_apple_inspector_flags(),
26    force_static = True,
27    labels = [
28        "pfh:ReactNative_CommonInfrastructurePlaceholder",
29    ],
30    platforms = (ANDROID, APPLE, CXX),
31    preprocessor_flags = [
32        "-DLOG_TAG=\"ReactNative\"",
33        "-DWITH_FBSYSTRACE=1",
34    ],
35    visibility = [
36        "PUBLIC",
37    ],
38    deps = [
39        "//third-party/glog:glog",
40        "//xplat/fbsystrace:fbsystrace",
41        "//xplat/folly:memory",
42    ],
43)
44