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