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