1load( 2 "//tools/build_defs/oss:rn_defs.bzl", 3 "ANDROID", 4 "APPLE", 5 "CXX", 6 "YOGA_CXX_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 = "imagemanager", 22 srcs = glob( 23 ["*.cpp"], 24 exclude = glob(["tests/**/*.cpp"]), 25 ), 26 headers = subdir_glob( 27 [("", "*.h")], 28 prefix = "", 29 ), 30 header_namespace = "", 31 exported_headers = subdir_glob( 32 [("", "*.h")], 33 prefix = "react/renderer/imagemanager", 34 ), 35 compiler_flags_pedantic = True, 36 contacts = ["[email protected]"], 37 cxx_srcs = glob(["platform/cxx/**/*.cpp"]), 38 # FIXME: android relies on stubs implemented for the cxx platform 39 fbandroid_srcs = glob(["platform/cxx/**/*.cpp"]), 40 fbandroid_tests_override = [], 41 fbobjc_compiler_flags = APPLE_COMPILER_FLAGS, 42 fbobjc_preprocessor_flags = get_preprocessor_flags_for_build_mode() + get_apple_inspector_flags() + [ 43 "-DLOG_TAG=\"ReactNative\"", 44 "-DWITH_FBSYSTRACE=1", 45 ], 46 force_static = True, 47 ios_deps = [ 48 "//xplat/js/react-native-github:RCTCxxBridge", 49 "//xplat/js/react-native-github:RCTImage", 50 ], 51 ios_exported_headers = subdir_glob( 52 [ 53 ("", "*.h"), 54 ("platform/ios/react/renderer/imagemanager", "RCTImagePrimitivesConversions.h"), 55 ], 56 prefix = "react/renderer/imagemanager", 57 ), 58 ios_frameworks = [ 59 "$SDKROOT/System/Library/Frameworks/CoreGraphics.framework", 60 "$SDKROOT/System/Library/Frameworks/Foundation.framework", 61 "$SDKROOT/System/Library/Frameworks/UIKit.framework", 62 ], 63 ios_headers = subdir_glob( 64 [ 65 ("", "*.h"), 66 ("platform/ios/react/renderer/imagemanager", "**/*.h"), 67 ], 68 prefix = "", 69 ), 70 ios_srcs = glob( 71 [ 72 "platform/ios/**/*.cpp", 73 "platform/ios/**/*.mm", 74 ], 75 ), 76 labels = [ 77 "pfh:ReactNative_CommonInfrastructurePlaceholder", 78 ], 79 macosx_tests_override = [], 80 platforms = (ANDROID, APPLE, CXX), 81 preprocessor_flags = [ 82 "-DLOG_TAG=\"ReactNative\"", 83 "-DWITH_FBSYSTRACE=1", 84 ], 85 tests = [":tests"], 86 visibility = ["PUBLIC"], 87 deps = [ 88 YOGA_CXX_TARGET, 89 react_native_xplat_target("react/debug:debug"), 90 react_native_xplat_target("react/renderer/core:core"), 91 react_native_xplat_target("react/renderer/mounting:mounting"), 92 react_native_xplat_target("react/renderer/debug:debug"), 93 react_native_xplat_target("react/renderer/graphics:graphics"), 94 ], 95) 96 97fb_xplat_cxx_test( 98 name = "tests", 99 srcs = glob(["tests/**/*.cpp"]), 100 headers = glob(["tests/**/*.h"]), 101 compiler_flags = [ 102 "-fexceptions", 103 "-frtti", 104 "-std=c++17", 105 "-Wall", 106 ], 107 contacts = ["[email protected]"], 108 platforms = (APPLE, CXX), 109 deps = [ 110 ":imagemanager", 111 "//xplat/third-party/gmock:gtest", 112 ], 113) 114