1*753557f6STomasz Sapetaload("@fbsource//tools/build_defs:glob_defs.bzl", "subdir_glob") 2*753557f6STomasz Sapetaload("//tools/build_defs/oss:rn_defs.bzl", "ANDROID", "APPLE", "CXX", "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") 3*753557f6STomasz Sapeta 4*753557f6STomasz Sapetarn_xplat_cxx_library( 5*753557f6STomasz Sapeta name = "module", 6*753557f6STomasz Sapeta header_namespace = "", 7*753557f6STomasz Sapeta exported_headers = subdir_glob( 8*753557f6STomasz Sapeta [ 9*753557f6STomasz Sapeta ("", "CxxModule.h"), 10*753557f6STomasz Sapeta ("", "JsArgumentHelpers.h"), 11*753557f6STomasz Sapeta ("", "JsArgumentHelpers-inl.h"), 12*753557f6STomasz Sapeta ], 13*753557f6STomasz Sapeta prefix = "cxxreact", 14*753557f6STomasz Sapeta ), 15*753557f6STomasz Sapeta fbobjc_compiler_flags = get_apple_compiler_flags(), 16*753557f6STomasz Sapeta force_static = True, 17*753557f6STomasz Sapeta labels = [ 18*753557f6STomasz Sapeta "pfh:ReactNative_CommonInfrastructurePlaceholder", 19*753557f6STomasz Sapeta "supermodule:xplat/default/public.react_native.infra", 20*753557f6STomasz Sapeta ], 21*753557f6STomasz Sapeta visibility = [ 22*753557f6STomasz Sapeta "PUBLIC", 23*753557f6STomasz Sapeta ], 24*753557f6STomasz Sapeta deps = [ 25*753557f6STomasz Sapeta "//xplat/folly:molly", 26*753557f6STomasz Sapeta ], 27*753557f6STomasz Sapeta) 28*753557f6STomasz Sapeta 29*753557f6STomasz Sapetarn_xplat_cxx_library( 30*753557f6STomasz Sapeta name = "jsbigstring", 31*753557f6STomasz Sapeta srcs = [ 32*753557f6STomasz Sapeta "JSBigString.cpp", 33*753557f6STomasz Sapeta ], 34*753557f6STomasz Sapeta header_namespace = "", 35*753557f6STomasz Sapeta exported_headers = subdir_glob( 36*753557f6STomasz Sapeta [("", "JSBigString.h")], 37*753557f6STomasz Sapeta prefix = "cxxreact", 38*753557f6STomasz Sapeta ), 39*753557f6STomasz Sapeta fbobjc_compiler_flags = get_apple_compiler_flags(), 40*753557f6STomasz Sapeta force_static = True, 41*753557f6STomasz Sapeta labels = [ 42*753557f6STomasz Sapeta "pfh:ReactNative_CommonInfrastructurePlaceholder", 43*753557f6STomasz Sapeta "supermodule:xplat/default/public.react_native.infra", 44*753557f6STomasz Sapeta ], 45*753557f6STomasz Sapeta visibility = [ 46*753557f6STomasz Sapeta "PUBLIC", 47*753557f6STomasz Sapeta ], 48*753557f6STomasz Sapeta deps = [ 49*753557f6STomasz Sapeta "//xplat/folly:memory", 50*753557f6STomasz Sapeta "//xplat/folly:molly", 51*753557f6STomasz Sapeta "//xplat/folly:scope_guard", 52*753557f6STomasz Sapeta ], 53*753557f6STomasz Sapeta) 54*753557f6STomasz Sapeta 55*753557f6STomasz Sapetarn_xplat_cxx_library( 56*753557f6STomasz Sapeta name = "samplemodule", 57*753557f6STomasz Sapeta srcs = ["SampleCxxModule.cpp"], 58*753557f6STomasz Sapeta header_namespace = "", 59*753557f6STomasz Sapeta exported_headers = ["SampleCxxModule.h"], 60*753557f6STomasz Sapeta compiler_flags = [ 61*753557f6STomasz Sapeta "-fno-omit-frame-pointer", 62*753557f6STomasz Sapeta ], 63*753557f6STomasz Sapeta fbobjc_compiler_flags = get_apple_compiler_flags(), 64*753557f6STomasz Sapeta labels = [ 65*753557f6STomasz Sapeta "pfh:ReactNative_CommonInfrastructurePlaceholder", 66*753557f6STomasz Sapeta "supermodule:xplat/default/public.react_native.infra", 67*753557f6STomasz Sapeta ], 68*753557f6STomasz Sapeta soname = "libxplat_react_module_samplemodule.$(ext)", 69*753557f6STomasz Sapeta visibility = [ 70*753557f6STomasz Sapeta "PUBLIC", 71*753557f6STomasz Sapeta ], 72*753557f6STomasz Sapeta deps = [ 73*753557f6STomasz Sapeta ":module", 74*753557f6STomasz Sapeta "//third-party/glog:glog", 75*753557f6STomasz Sapeta "//xplat/folly:memory", 76*753557f6STomasz Sapeta "//xplat/folly:molly", 77*753557f6STomasz Sapeta ], 78*753557f6STomasz Sapeta) 79*753557f6STomasz Sapeta 80*753557f6STomasz SapetaCXXREACT_PUBLIC_HEADERS = [ 81*753557f6STomasz Sapeta "CxxNativeModule.h", 82*753557f6STomasz Sapeta "ErrorUtils.h", 83*753557f6STomasz Sapeta "Instance.h", 84*753557f6STomasz Sapeta "JSBundleType.h", 85*753557f6STomasz Sapeta "JSExecutor.h", 86*753557f6STomasz Sapeta "JSIndexedRAMBundle.h", 87*753557f6STomasz Sapeta "JSModulesUnbundle.h", 88*753557f6STomasz Sapeta "MessageQueueThread.h", 89*753557f6STomasz Sapeta "MethodCall.h", 90*753557f6STomasz Sapeta "ModuleRegistry.h", 91*753557f6STomasz Sapeta "NativeModule.h", 92*753557f6STomasz Sapeta "NativeToJsBridge.h", 93*753557f6STomasz Sapeta "RAMBundleRegistry.h", 94*753557f6STomasz Sapeta "ReactMarker.h", 95*753557f6STomasz Sapeta "RecoverableError.h", 96*753557f6STomasz Sapeta "SharedProxyCxxModule.h", 97*753557f6STomasz Sapeta "SystraceSection.h", 98*753557f6STomasz Sapeta] 99*753557f6STomasz Sapeta 100*753557f6STomasz Sapetarn_xplat_cxx_library( 101*753557f6STomasz Sapeta name = "bridge", 102*753557f6STomasz Sapeta srcs = glob( 103*753557f6STomasz Sapeta ["*.cpp"], 104*753557f6STomasz Sapeta exclude = [ 105*753557f6STomasz Sapeta "JSBigString.cpp", 106*753557f6STomasz Sapeta "SampleCxxModule.cpp", 107*753557f6STomasz Sapeta ], 108*753557f6STomasz Sapeta ), 109*753557f6STomasz Sapeta headers = glob( 110*753557f6STomasz Sapeta ["*.h"], 111*753557f6STomasz Sapeta exclude = CXXREACT_PUBLIC_HEADERS, 112*753557f6STomasz Sapeta ), 113*753557f6STomasz Sapeta header_namespace = "", 114*753557f6STomasz Sapeta exported_headers = dict([ 115*753557f6STomasz Sapeta ( 116*753557f6STomasz Sapeta "cxxreact/%s" % header, 117*753557f6STomasz Sapeta header, 118*753557f6STomasz Sapeta ) 119*753557f6STomasz Sapeta for header in CXXREACT_PUBLIC_HEADERS 120*753557f6STomasz Sapeta ]), 121*753557f6STomasz Sapeta fbandroid_preprocessor_flags = get_android_inspector_flags(), 122*753557f6STomasz Sapeta fbobjc_compiler_flags = get_apple_compiler_flags(), 123*753557f6STomasz Sapeta fbobjc_force_static = True, 124*753557f6STomasz Sapeta fbobjc_preprocessor_flags = get_preprocessor_flags_for_build_mode() + get_apple_inspector_flags(), 125*753557f6STomasz Sapeta labels = [ 126*753557f6STomasz Sapeta "pfh:ReactNative_CommonInfrastructurePlaceholder", 127*753557f6STomasz Sapeta "supermodule:xplat/default/public.react_native.infra", 128*753557f6STomasz Sapeta ], 129*753557f6STomasz Sapeta macosx_tests_override = [], 130*753557f6STomasz Sapeta platforms = (ANDROID, APPLE, CXX), 131*753557f6STomasz Sapeta preprocessor_flags = [ 132*753557f6STomasz Sapeta "-DLOG_TAG=\"ReactNative\"", 133*753557f6STomasz Sapeta "-DWITH_FBSYSTRACE=1", 134*753557f6STomasz Sapeta ], 135*753557f6STomasz Sapeta tests = [ 136*753557f6STomasz Sapeta react_native_xplat_target("cxxreact/tests:tests"), 137*753557f6STomasz Sapeta ], 138*753557f6STomasz Sapeta visibility = ["PUBLIC"], 139*753557f6STomasz Sapeta deps = [ 140*753557f6STomasz Sapeta ":jsbigstring", 141*753557f6STomasz Sapeta ":module", 142*753557f6STomasz Sapeta "//xplat/fbsystrace:fbsystrace", 143*753557f6STomasz Sapeta "//xplat/folly:headers_only_do_not_use", 144*753557f6STomasz Sapeta "//xplat/folly:memory", 145*753557f6STomasz Sapeta "//xplat/folly:molly", 146*753557f6STomasz Sapeta "//xplat/jsi:jsi", 147*753557f6STomasz Sapeta react_native_xplat_target("callinvoker:callinvoker"), 148*753557f6STomasz Sapeta react_native_xplat_target("jsinspector:jsinspector"), 149*753557f6STomasz Sapeta react_native_xplat_target("runtimeexecutor:runtimeexecutor"), 150*753557f6STomasz Sapeta react_native_xplat_target("reactperflogger:reactperflogger"), 151*753557f6STomasz Sapeta react_native_xplat_target("logger:logger"), 152*753557f6STomasz Sapeta "//third-party/glog:glog", 153*753557f6STomasz Sapeta "//xplat/folly:optional", 154*753557f6STomasz Sapeta ], 155*753557f6STomasz Sapeta) 156