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 compiler_flags_pedantic = True, 34 contacts = ["[email protected]"], 35 cxx_srcs = glob(["platform/cxx/**/*.cpp"]), 36 # FIXME: android relies on stubs implemented for the cxx platform 37 fbandroid_srcs = glob(["platform/cxx/**/*.cpp"]), 38 fbandroid_tests_override = [], 39 fbobjc_compiler_flags = APPLE_COMPILER_FLAGS, 40 fbobjc_preprocessor_flags = get_preprocessor_flags_for_build_mode() + get_apple_inspector_flags() + [ 41 "-DLOG_TAG=\"ReactNative\"", 42 "-DWITH_FBSYSTRACE=1", 43 ], 44 force_static = True, 45 ios_deps = [ 46 "//xplat/js/react-native-github:RCTCxxBridge", 47 "//xplat/js/react-native-github:RCTImage", 48 ], 49 ios_exported_headers = subdir_glob( 50 [ 51 ("", "*.h"), 52 ("platform/ios", "RCTImagePrimitivesConversions.h"), 53 ], 54 prefix = "react/renderer/imagemanager", 55 ), 56 ios_frameworks = [ 57 "$SDKROOT/System/Library/Frameworks/CoreGraphics.framework", 58 "$SDKROOT/System/Library/Frameworks/Foundation.framework", 59 "$SDKROOT/System/Library/Frameworks/UIKit.framework", 60 ], 61 ios_headers = subdir_glob( 62 [ 63 ("", "*.h"), 64 ("platform/ios", "**/*.h"), 65 ], 66 prefix = "", 67 ), 68 ios_srcs = glob( 69 [ 70 "platform/ios/**/*.cpp", 71 "platform/ios/**/*.mm", 72 ], 73 ), 74 labels = [ 75 "pfh:ReactNative_CommonInfrastructurePlaceholder", 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 YOGA_CXX_TARGET, 87 react_native_xplat_target("react/debug:debug"), 88 react_native_xplat_target("react/renderer/core:core"), 89 react_native_xplat_target("react/renderer/mounting:mounting"), 90 react_native_xplat_target("react/renderer/debug:debug"), 91 react_native_xplat_target("react/renderer/graphics:graphics"), 92 ], 93) 94 95fb_xplat_cxx_test( 96 name = "tests", 97 srcs = glob(["tests/**/*.cpp"]), 98 headers = glob(["tests/**/*.h"]), 99 compiler_flags = [ 100 "-fexceptions", 101 "-frtti", 102 "-std=c++17", 103 "-Wall", 104 ], 105 contacts = ["[email protected]"], 106 platforms = (APPLE, CXX), 107 deps = [ 108 ":imagemanager", 109 "//xplat/third-party/gmock:gtest", 110 ], 111) 112