Files
Rick Hanlon ed5ed23deb Move codegen to rn_library
Summary:
Moves rn_codgen to rn_library behind a `codegen` flag to limit the number of rules we generate

WIth this, modules with native components can enable the react-native-codegen schema parsing by just updating their buck rule to:

```
rn_library(
  name = 'lib',
  codegen = True,
  // ...
)
```

Reviewed By: TheSavior

Differential Revision: D14401263

fbshipit-source-id: 1675bc28389db64da10153c988bb4eb00d715056
2019-03-13 07:02:31 -07:00

116 lines
3.2 KiB
Python

load("@fbsource//tools/build_defs/apple:flag_defs.bzl", "get_debug_preprocessor_flags")
load(
"//tools/build_defs/oss:rn_defs.bzl",
"ANDROID",
"APPLE",
"fb_xplat_cxx_test",
"get_apple_compiler_flags",
"get_apple_inspector_flags",
"react_native_target",
"react_native_xplat_target",
"rn_xplat_cxx_library",
"subdir_glob",
)
APPLE_COMPILER_FLAGS = get_apple_compiler_flags()
rn_xplat_cxx_library(
name = "slider",
srcs = glob(
["**/*.cpp"],
exclude = glob([
"tests/**/*.cpp",
"platform/**/*.cpp",
]),
),
headers = [],
header_namespace = "",
exported_headers = subdir_glob(
[
("", "*.h"),
],
prefix = "react/components/slider",
),
compiler_flags = [
"-fexceptions",
"-frtti",
"-std=c++14",
"-Wall",
],
fbandroid_deps = [
react_native_target("jni/react/jni:jni"),
],
fbandroid_exported_headers = subdir_glob(
[
("", "*.h"),
("platform/android", "*.h"),
],
prefix = "react/components/slider",
),
fbandroid_headers = glob(
["platform/android/*.h"],
),
fbandroid_srcs = glob(
["platform/android/*.cpp"],
),
fbobjc_compiler_flags = APPLE_COMPILER_FLAGS,
fbobjc_preprocessor_flags = get_debug_preprocessor_flags() + get_apple_inspector_flags(),
force_static = True,
ios_exported_headers = subdir_glob(
[
("", "*.h"),
("platform/ios", "*.h"),
],
prefix = "react/components/slider",
),
ios_headers = glob(
["platform/ios/*.h"],
),
ios_srcs = glob(
["platform/ios/*.cpp"],
),
macosx_tests_override = [],
platforms = (ANDROID, APPLE),
preprocessor_flags = [
"-DLOG_TAG=\"ReactNative\"",
"-DWITH_FBSYSTRACE=1",
],
tests = [":tests"],
visibility = ["PUBLIC"],
deps = [
"fbsource//xplat/fbsystrace:fbsystrace",
"fbsource//xplat/folly:headers_only",
"fbsource//xplat/folly:memory",
"fbsource//xplat/folly:molly",
"fbsource//xplat/third-party/glog:glog",
"fbsource//xplat/yoga:yoga",
react_native_xplat_target("fabric/debug:debug"),
react_native_xplat_target("fabric/core:core"),
react_native_xplat_target("fabric/components/image:image"),
react_native_xplat_target("fabric/components/view:view"),
react_native_xplat_target("fabric/graphics:graphics"),
react_native_xplat_target("fabric/imagemanager:imagemanager"),
react_native_xplat_target("fabric/uimanager:uimanager"),
"fbsource//xplat/js/react-native-github:generated_components-rncore",
],
)
fb_xplat_cxx_test(
name = "tests",
srcs = glob(["tests/**/*.cpp"]),
headers = glob(["tests/**/*.h"]),
compiler_flags = [
"-fexceptions",
"-frtti",
"-std=c++14",
"-Wall",
],
contacts = ["oncall+react_native@xmail.facebook.com"],
platforms = (ANDROID, APPLE),
deps = [
"fbsource//xplat/folly:molly",
"fbsource//xplat/third-party/gmock:gtest",
":slider",
],
)