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_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 = "slider", 21 srcs = glob( 22 ["**/*.cpp"], 23 exclude = glob([ 24 "tests/**/*.cpp", 25 "platform/**/*.cpp", 26 ]), 27 ), 28 headers = [], 29 header_namespace = "", 30 exported_headers = subdir_glob( 31 [ 32 ("", "*.h"), 33 ], 34 prefix = "react/renderer/components/slider", 35 ), 36 cxx_tests = [":tests"], 37 fbandroid_deps = [ 38 react_native_target("jni/react/jni:jni"), 39 react_native_xplat_target("react/renderer/mapbuffer:mapbuffer"), 40 ], 41 fbandroid_exported_headers = subdir_glob( 42 [ 43 ("", "*.h"), 44 ("platform/android/react/renderer/components/slider", "*.h"), 45 ], 46 prefix = "react/renderer/components/slider", 47 ), 48 fbandroid_headers = glob( 49 ["platform/android/react/renderer/components/slider/*.h"], 50 ), 51 fbandroid_srcs = glob( 52 ["platform/android/react/renderer/components/slider/*.cpp"], 53 ), 54 fbobjc_compiler_flags = APPLE_COMPILER_FLAGS, 55 fbobjc_preprocessor_flags = get_preprocessor_flags_for_build_mode() + get_apple_inspector_flags(), 56 force_static = True, 57 ios_exported_headers = subdir_glob( 58 [ 59 ("", "*.h"), 60 ("platform/ios", "*.h"), 61 ], 62 prefix = "react/renderer/components/slider", 63 ), 64 ios_headers = glob( 65 ["platform/ios/*.h"], 66 ), 67 ios_srcs = glob( 68 ["platform/ios/*.cpp"], 69 ), 70 labels = [ 71 "pfh:ReactNative_CommonInfrastructurePlaceholder", 72 "supermodule:xplat/default/public.react_native.infra", 73 ], 74 platforms = (ANDROID, APPLE, CXX), 75 preprocessor_flags = [ 76 "-DLOG_TAG=\"ReactNative\"", 77 "-DWITH_FBSYSTRACE=1", 78 ], 79 visibility = ["PUBLIC"], 80 deps = [ 81 "//xplat/folly:headers_only_do_not_use", 82 "//xplat/folly:molly", 83 YOGA_CXX_TARGET, 84 react_native_xplat_target("react/debug:debug"), 85 react_native_xplat_target("react/renderer/debug:debug"), 86 react_native_xplat_target("react/renderer/core:core"), 87 react_native_xplat_target("react/renderer/components/image:image"), 88 react_native_xplat_target("react/renderer/components/view:view"), 89 react_native_xplat_target("react/renderer/graphics:graphics"), 90 react_native_xplat_target("react/renderer/imagemanager:imagemanager"), 91 react_native_xplat_target("react/renderer/uimanager:uimanager"), 92 react_native_xplat_target("react/renderer/componentregistry:componentregistry"), 93 "//xplat/js/react-native-github:generated_components-rncore", 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 = ( 109 # `Apple` and `Android` flavors are disabled because the module (built with those flavors) requires Emulator/Simulator (which is expensive and slow). At the same time, we don't really have tests here. 110 # ANDROID, 111 # APPLE, 112 CXX, 113 ), 114 deps = [ 115 ":slider", 116 "//xplat/folly:molly", 117 "//xplat/third-party/gmock:gtest", 118 ], 119) 120