123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- load("@fbsource//tools/build_defs:glob_defs.bzl", "subdir_glob")
- load("//tools/build_defs/oss:rn_defs.bzl", "ANDROID", "APPLE", "get_android_inspector_flags", "get_apple_compiler_flags", "get_apple_inspector_flags", "get_preprocessor_flags_for_build_mode", "react_native_xplat_target", "rn_xplat_cxx_library")
- CXX_LIBRARY_COMPILER_FLAGS = [
- "-std=c++14",
- "-Wall",
- ]
- rn_xplat_cxx_library(
- name = "module",
- header_namespace = "",
- exported_headers = subdir_glob(
- [
- ("", "CxxModule.h"),
- ("", "JsArgumentHelpers.h"),
- ("", "JsArgumentHelpers-inl.h"),
- ],
- prefix = "cxxreact",
- ),
- compiler_flags = CXX_LIBRARY_COMPILER_FLAGS,
- fbobjc_compiler_flags = get_apple_compiler_flags(),
- fbobjc_labels = ["supermodule:ios/default/public.react_native.infra"],
- force_static = True,
- visibility = [
- "PUBLIC",
- ],
- deps = [
- "//xplat/folly:molly",
- ],
- )
- rn_xplat_cxx_library(
- name = "jsbigstring",
- srcs = [
- "JSBigString.cpp",
- ],
- header_namespace = "",
- exported_headers = subdir_glob(
- [("", "JSBigString.h")],
- prefix = "cxxreact",
- ),
- compiler_flags = CXX_LIBRARY_COMPILER_FLAGS + [
- "-fexceptions",
- "-frtti",
- ],
- fbobjc_compiler_flags = get_apple_compiler_flags(),
- fbobjc_labels = ["supermodule:ios/default/public.react_native.infra"],
- force_static = True,
- preprocessor_flags = [
- "-DWITH_FBREMAP=1",
- ],
- visibility = [
- "PUBLIC",
- ],
- deps = [
- "//xplat/folly:memory",
- "//xplat/folly:molly",
- "//xplat/folly:scope_guard",
- ],
- )
- rn_xplat_cxx_library(
- name = "samplemodule",
- srcs = ["SampleCxxModule.cpp"],
- header_namespace = "",
- exported_headers = ["SampleCxxModule.h"],
- compiler_flags = CXX_LIBRARY_COMPILER_FLAGS + [
- "-fno-omit-frame-pointer",
- "-fexceptions",
- ],
- fbobjc_compiler_flags = get_apple_compiler_flags(),
- soname = "libxplat_react_module_samplemodule.$(ext)",
- visibility = [
- "PUBLIC",
- ],
- deps = [
- ":module",
- "//xplat/folly:memory",
- "//xplat/folly:molly",
- "//xplat/third-party/glog:glog",
- ],
- )
- CXXREACT_PUBLIC_HEADERS = [
- "CxxNativeModule.h",
- "Instance.h",
- "JSBundleType.h",
- "JSDeltaBundleClient.h",
- "JSExecutor.h",
- "JSIndexedRAMBundle.h",
- "JSModulesUnbundle.h",
- "MessageQueueThread.h",
- "MethodCall.h",
- "ModuleRegistry.h",
- "NativeModule.h",
- "NativeToJsBridge.h",
- "RAMBundleRegistry.h",
- "ReactMarker.h",
- "RecoverableError.h",
- "SharedProxyCxxModule.h",
- "SystraceSection.h",
- ]
- rn_xplat_cxx_library(
- name = "bridge",
- srcs = glob(
- ["*.cpp"],
- exclude = [
- "JSBigString.cpp",
- "SampleCxxModule.cpp",
- ],
- ),
- headers = glob(
- ["*.h"],
- exclude = CXXREACT_PUBLIC_HEADERS,
- ),
- header_namespace = "",
- exported_headers = dict([
- (
- "cxxreact/%s" % header,
- header,
- )
- for header in CXXREACT_PUBLIC_HEADERS
- ]),
- compiler_flags = CXX_LIBRARY_COMPILER_FLAGS + [
- "-fexceptions",
- "-frtti",
- ],
- fbandroid_preprocessor_flags = get_android_inspector_flags(),
- fbobjc_compiler_flags = get_apple_compiler_flags(),
- fbobjc_force_static = True,
- fbobjc_labels = ["supermodule:ios/default/public.react_native.infra"],
- fbobjc_preprocessor_flags = get_preprocessor_flags_for_build_mode() + get_apple_inspector_flags(),
- macosx_tests_override = [],
- platforms = (ANDROID, APPLE),
- preprocessor_flags = [
- "-DLOG_TAG=\"ReactNative\"",
- "-DWITH_FBSYSTRACE=1",
- ],
- tests = [
- react_native_xplat_target("cxxreact/tests:tests"),
- ],
- visibility = ["PUBLIC"],
- deps = [
- ":jsbigstring",
- ":module",
- "//xplat/fbsystrace:fbsystrace",
- "//xplat/folly:headers_only",
- "//xplat/folly:memory",
- "//xplat/folly:molly",
- react_native_xplat_target("callinvoker:callinvoker"),
- react_native_xplat_target("jsinspector:jsinspector"),
- react_native_xplat_target("microprofiler:microprofiler"),
- "//xplat/folly:optional",
- "//xplat/third-party/glog:glog",
- ],
- )
|