1load( 2 "//tools/build_defs/oss:rn_defs.bzl", 3 "ANDROID", 4 "APPLE", 5 "CXX", 6 "FBJNI_TARGET", 7 "fb_xplat_cxx_test", 8 "get_apple_compiler_flags", 9 "get_apple_inspector_flags", 10 "get_preprocessor_flags_for_build_mode", 11 "react_native_xplat_target", 12 "rn_xplat_cxx_library", 13 "subdir_glob", 14) 15 16oncall("react_native") 17 18APPLE_COMPILER_FLAGS = get_apple_compiler_flags() 19 20rn_xplat_cxx_library( 21 name = "graphics", 22 srcs = glob( 23 [ 24 "*.cpp", 25 ], 26 ), 27 headers = subdir_glob( 28 [ 29 ("", "*.h"), 30 ], 31 prefix = "", 32 ), 33 header_namespace = "", 34 exported_headers = subdir_glob( 35 [ 36 ("", "*.h"), 37 ], 38 prefix = "react/renderer/graphics", 39 ), 40 compiler_flags_pedantic = True, 41 cxx_exported_headers = subdir_glob( 42 [ 43 ("platform/cxx/react/renderer/graphics", "**/*.h"), 44 ], 45 prefix = "react/renderer/graphics", 46 ), 47 cxx_srcs = glob( 48 [ 49 "platform/cxx/react/renderer/graphics/**/*.cpp", 50 ], 51 ), 52 fbandroid_allow_jni_merging = True, 53 fbandroid_deps = [ 54 FBJNI_TARGET, 55 "//xplat/folly:dynamic", 56 ], 57 fbandroid_exported_headers = subdir_glob( 58 [ 59 ("platform/android/react/renderer/graphics", "**/*.h"), 60 ], 61 prefix = "react/renderer/graphics", 62 ), 63 fbandroid_srcs = glob( 64 [ 65 "platform/android/react/renderer/graphics/**/*.cpp", 66 ], 67 ), 68 fbobjc_compiler_flags = APPLE_COMPILER_FLAGS, 69 fbobjc_exported_headers = subdir_glob( 70 [ 71 ("platform/ios/react/renderer/graphics", "*.h"), 72 ], 73 prefix = "react/renderer/graphics", 74 ), 75 fbobjc_preprocessor_flags = get_preprocessor_flags_for_build_mode() + get_apple_inspector_flags(), 76 force_static = True, 77 ios_deps = [ 78 "//xplat/js/react-native-github:RCTCxxBridge", 79 "//xplat/js/react-native-github:RCTImage", 80 ], 81 ios_frameworks = [ 82 "$SDKROOT/System/Library/Frameworks/CoreGraphics.framework", 83 "$SDKROOT/System/Library/Frameworks/Foundation.framework", 84 "$SDKROOT/System/Library/Frameworks/UIKit.framework", 85 ], 86 ios_srcs = glob( 87 [ 88 "platform/ios/**/*.cpp", 89 "platform/ios/**/*.mm", 90 ], 91 ), 92 labels = [ 93 "pfh:ReactNative_CommonInfrastructurePlaceholder", 94 ], 95 macosx_tests_override = [], 96 platforms = (ANDROID, APPLE, CXX), 97 preprocessor_flags = [ 98 "-DLOG_TAG=\"ReactNative\"", 99 "-DWITH_FBSYSTRACE=1", 100 ], 101 tests = [":tests"], 102 visibility = ["PUBLIC"], 103 deps = [ 104 react_native_xplat_target("react/debug:debug"), 105 react_native_xplat_target("butter:butter"), 106 "//third-party/glog:glog", 107 "//xplat/fbsystrace:fbsystrace", 108 "//xplat/folly:hash", 109 ], 110) 111 112fb_xplat_cxx_test( 113 name = "tests", 114 srcs = glob(["tests/**/*.cpp"]), 115 headers = glob(["tests/**/*.h"]), 116 compiler_flags = [ 117 "-fexceptions", 118 "-frtti", 119 "-std=c++17", 120 "-Wall", 121 ], 122 contacts = ["[email protected]"], 123 platforms = (ANDROID, APPLE, CXX), 124 deps = [ 125 ":graphics", 126 "//xplat/third-party/gmock:gtest", 127 ], 128) 129