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 16APPLE_COMPILER_FLAGS = get_apple_compiler_flags() 17 18rn_xplat_cxx_library( 19 name = "imagemanager", 20 srcs = glob( 21 ["*.cpp"], 22 exclude = glob(["tests/**/*.cpp"]), 23 ), 24 headers = subdir_glob( 25 [("", "*.h")], 26 prefix = "", 27 ), 28 header_namespace = "", 29 exported_headers = subdir_glob( 30 [("", "*.h")], 31 prefix = "react/renderer/imagemanager", 32 ), 33 contacts = ["[email protected]"], 34 cxx_srcs = glob(["platform/cxx/**/*.cpp"]), 35 # FIXME: android relies on stubs implemented for the cxx platform 36 fbandroid_srcs = glob(["platform/cxx/**/*.cpp"]), 37 fbandroid_tests_override = [], 38 fbobjc_compiler_flags = APPLE_COMPILER_FLAGS, 39 fbobjc_preprocessor_flags = get_preprocessor_flags_for_build_mode() + get_apple_inspector_flags() + [ 40 "-DLOG_TAG=\"ReactNative\"", 41 "-DWITH_FBSYSTRACE=1", 42 ], 43 force_static = True, 44 ios_deps = [ 45 "//xplat/js/react-native-github:RCTCxxBridge", 46 "//xplat/js/react-native-github:RCTImage", 47 ], 48 ios_exported_headers = subdir_glob( 49 [ 50 ("", "*.h"), 51 ("platform/ios", "RCTImagePrimitivesConversions.h"), 52 ], 53 prefix = "react/renderer/imagemanager", 54 ), 55 ios_frameworks = [ 56 "$SDKROOT/System/Library/Frameworks/CoreGraphics.framework", 57 "$SDKROOT/System/Library/Frameworks/Foundation.framework", 58 "$SDKROOT/System/Library/Frameworks/UIKit.framework", 59 ], 60 ios_headers = subdir_glob( 61 [ 62 ("", "*.h"), 63 ("platform/ios", "**/*.h"), 64 ], 65 prefix = "", 66 ), 67 ios_srcs = glob( 68 [ 69 "platform/ios/**/*.cpp", 70 "platform/ios/**/*.mm", 71 ], 72 ), 73 labels = [ 74 "pfh:ReactNative_CommonInfrastructurePlaceholder", 75 "supermodule:xplat/default/public.react_native.infra", 76 ], 77 macosx_tests_override = [], 78 platforms = (ANDROID, APPLE, CXX), 79 preprocessor_flags = [ 80 "-DLOG_TAG=\"ReactNative\"", 81 "-DWITH_FBSYSTRACE=1", 82 ], 83 tests = [":tests"], 84 visibility = ["PUBLIC"], 85 deps = [ 86 "//xplat/folly:headers_only_do_not_use", 87 "//xplat/folly:molly", 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/folly:molly", 112 "//xplat/third-party/gmock:gtest", 113 ], 114) 115