168 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			168 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
load("@xplat//configurations/buck/apple:flag_defs.bzl", "get_debug_preprocessor_flags")
 | 
						|
load("//ReactNative:DEFS.bzl", "IS_OSS_BUILD", "rn_xplat_cxx_library", "ANDROID_INSPECTOR_FLAGS", "APPLE_INSPECTOR_FLAGS", "ANDROID_JSC_DEPS", "APPLE_JSC_DEPS", "react_native_xplat_target")
 | 
						|
 | 
						|
CXX_LIBRARY_COMPILER_FLAGS = [
 | 
						|
    "-std=c++14",
 | 
						|
    "-Wall",
 | 
						|
]
 | 
						|
 | 
						|
APPLE_COMPILER_FLAGS = []
 | 
						|
 | 
						|
if not IS_OSS_BUILD:
 | 
						|
    load("@xplat//configurations/buck/apple:flag_defs.bzl", "get_static_library_ios_flags", "flags")
 | 
						|
    APPLE_COMPILER_FLAGS = flags.get_flag_value(get_static_library_ios_flags(), 'compiler_flags')
 | 
						|
 | 
						|
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 = APPLE_COMPILER_FLAGS,
 | 
						|
    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 = APPLE_COMPILER_FLAGS,
 | 
						|
    force_static = True,
 | 
						|
    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 = APPLE_COMPILER_FLAGS,
 | 
						|
    soname = "libxplat_react_module_samplemodule.$(ext)",
 | 
						|
    visibility = [
 | 
						|
        "PUBLIC",
 | 
						|
    ],
 | 
						|
    deps = [
 | 
						|
        "xplat//folly:memory",
 | 
						|
        "xplat//folly:molly",
 | 
						|
        "xplat//third-party/glog:glog",
 | 
						|
        ":module",
 | 
						|
    ],
 | 
						|
)
 | 
						|
 | 
						|
CXXREACT_PUBLIC_HEADERS = [
 | 
						|
    "CxxNativeModule.h",
 | 
						|
    "Instance.h",
 | 
						|
    "JSBundleType.h",
 | 
						|
    "JSExecutor.h",
 | 
						|
    "JSCExecutor.h",
 | 
						|
    "JSCNativeModules.h",
 | 
						|
    "JSIndexedRAMBundle.h",
 | 
						|
    "JSModulesUnbundle.h",
 | 
						|
    "MessageQueueThread.h",
 | 
						|
    "MethodCall.h",
 | 
						|
    "ModuleRegistry.h",
 | 
						|
    "NativeModule.h",
 | 
						|
    "NativeToJsBridge.h",
 | 
						|
    "Platform.h",
 | 
						|
    "RAMBundleRegistry.h",
 | 
						|
    "RecoverableError.h",
 | 
						|
    "SharedProxyCxxModule.h",
 | 
						|
    "SystraceSection.h",
 | 
						|
]
 | 
						|
 | 
						|
rn_xplat_cxx_library(
 | 
						|
    name = "bridge",
 | 
						|
    srcs = glob(
 | 
						|
        ["*.cpp"],
 | 
						|
        excludes = [
 | 
						|
            "JSBigString.cpp",
 | 
						|
            "SampleCxxModule.cpp",
 | 
						|
        ],
 | 
						|
    ),
 | 
						|
    headers = glob(
 | 
						|
        ["*.h"],
 | 
						|
        excludes = 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_deps = ANDROID_JSC_DEPS,
 | 
						|
    fbandroid_preprocessor_flags = ANDROID_INSPECTOR_FLAGS + [
 | 
						|
        "-DWITH_JSC_EXTRA_TRACING=1",
 | 
						|
        "-DWITH_JSC_MEMORY_PRESSURE=1",
 | 
						|
        "-DWITH_FB_MEMORY_PROFILING=1",
 | 
						|
    ],
 | 
						|
    fbobjc_compiler_flags = APPLE_COMPILER_FLAGS,
 | 
						|
    fbobjc_deps = APPLE_JSC_DEPS,
 | 
						|
    fbobjc_frameworks = [
 | 
						|
        "$SDKROOT/System/Library/Frameworks/JavaScriptCore.framework",
 | 
						|
    ],
 | 
						|
    fbobjc_preprocessor_flags = get_debug_preprocessor_flags() + APPLE_INSPECTOR_FLAGS,
 | 
						|
    force_static = True,
 | 
						|
    preprocessor_flags = [
 | 
						|
        "-DLOG_TAG=\"ReactNative\"",
 | 
						|
        "-DWITH_FBSYSTRACE=1",
 | 
						|
    ],
 | 
						|
    tests = [
 | 
						|
        react_native_xplat_target("cxxreact/tests:tests"),
 | 
						|
    ],
 | 
						|
    visibility = ["PUBLIC"],
 | 
						|
    deps = [
 | 
						|
        "xplat//fbsystrace:fbsystrace",
 | 
						|
        "xplat//folly:headers_only",
 | 
						|
        "xplat//folly:memory",
 | 
						|
        "xplat//folly:molly",
 | 
						|
        ":jsbigstring",
 | 
						|
        ":module",
 | 
						|
        react_native_xplat_target("jschelpers:jschelpers"),
 | 
						|
        react_native_xplat_target("jsinspector:jsinspector"),
 | 
						|
        react_native_xplat_target("microprofiler:microprofiler"),
 | 
						|
        "xplat//folly:optional",
 | 
						|
        "xplat//third-party/glog:glog",
 | 
						|
        react_native_xplat_target("jschelpers:jscinternalhelpers"),
 | 
						|
        react_native_xplat_target("privatedata:privatedata"),
 | 
						|
    ],
 | 
						|
)
 |