Codegen: Make react-native-codegen BUCK deps OSS-compatible
Summary: Added a few FB vs OSS polyfills: * react_native_root_target() to refer to the root FB react-native-github/ dir or repo dir in OSS * react_native_xplat_synced_target() for anything xplat * a few others Changelog: [Internal] Reviewed By: yungsters Differential Revision: D24437245 fbshipit-source-id: ee290a87a98a8e9be67b102a96f2faac2a2cb92b
This commit is contained in:
Родитель
f8eaab4fdc
Коммит
7cfc7d65f7
|
@ -1,4 +1,4 @@
|
|||
load("@fbsource//tools/build_defs/oss:rn_defs.bzl", "ANDROID", "FBJNI_TARGET", "react_native_xplat_target", "rn_xplat_cxx_library")
|
||||
load("//tools/build_defs/oss:rn_defs.bzl", "ANDROID", "FBJNI_TARGET", "react_native_xplat_target", "rn_xplat_cxx_library")
|
||||
|
||||
rn_xplat_cxx_library(
|
||||
name = "jni",
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
load("@fbsource//tools/build_defs/oss:rn_defs.bzl", "ANDROID", "FBJNI_TARGET", "react_native_target", "react_native_xplat_target", "rn_xplat_cxx_library")
|
||||
load("//tools/build_defs/oss:rn_defs.bzl", "ANDROID", "FBJNI_TARGET", "react_native_target", "react_native_xplat_shared_library_target", "react_native_xplat_target", "rn_xplat_cxx_library")
|
||||
|
||||
rn_xplat_cxx_library(
|
||||
name = "jni",
|
||||
|
@ -33,7 +33,7 @@ rn_xplat_cxx_library(
|
|||
],
|
||||
exported_deps = [
|
||||
":callinvokerholder",
|
||||
"//xplat/jsi:jsi",
|
||||
react_native_xplat_shared_library_target("jsi:jsi"),
|
||||
react_native_xplat_target("react/nativemodule/core:core"),
|
||||
react_native_target("java/com/facebook/react/reactperflogger/jni:jni"),
|
||||
],
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
# BUILD FILE SYNTAX: SKYLARK
|
||||
|
||||
load("@fbsource//tools/build_defs:default_platform_defs.bzl", "APPLE", "IOS", "MACOSX")
|
||||
load("//tools/build_defs/oss:rn_defs.bzl", "react_native_xplat_dep", "rn_xplat_cxx_library")
|
||||
load("//tools/build_defs/oss:rn_defs.bzl", "APPLE", "IOS", "MACOSX", "react_native_xplat_dep", "rn_xplat_cxx_library")
|
||||
|
||||
rn_xplat_cxx_library(
|
||||
name = "jsi",
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
load("@fbsource//tools/build_defs/apple:flag_defs.bzl", "OBJC_ARC_PREPROCESSOR_FLAGS", "get_preprocessor_flags_for_build_mode", "get_static_library_ios_flags")
|
||||
load("//tools/build_defs/oss:rn_defs.bzl", "ANDROID", "APPLE", "FBJNI_TARGET", "react_native_target", "react_native_xplat_target", "rn_xplat_cxx_library", "subdir_glob")
|
||||
load("//tools/build_defs/oss:rn_defs.bzl", "ANDROID", "APPLE", "FBJNI_TARGET", "OBJC_ARC_PREPROCESSOR_FLAGS", "get_preprocessor_flags_for_build_mode", "get_static_library_ios_flags", "react_native_target", "react_native_xplat_shared_library_target", "react_native_xplat_target", "rn_xplat_cxx_library", "subdir_glob")
|
||||
|
||||
rn_xplat_cxx_library(
|
||||
name = "core",
|
||||
|
@ -83,6 +82,6 @@ rn_xplat_cxx_library(
|
|||
react_native_xplat_target("reactperflogger:reactperflogger"),
|
||||
],
|
||||
exported_deps = [
|
||||
"//xplat/jsi:jsi",
|
||||
react_native_xplat_shared_library_target("jsi:jsi"),
|
||||
],
|
||||
)
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
load("//tools/build_defs:fb_native_wrapper.bzl", "fb_native")
|
||||
load("//tools/build_defs/oss:rn_defs.bzl", "ANDROID", "APPLE", "IOS", "react_native_target", "rn_android_library", "rn_xplat_cxx_library")
|
||||
load("//tools/build_defs/oss:rn_defs.bzl", "ANDROID", "APPLE", "IOS", "IS_OSS_BUILD", "react_native_root_target", "react_native_target", "rn_android_library", "rn_xplat_cxx_library")
|
||||
load("//tools/build_defs/third_party:yarn_defs.bzl", "yarn_workspace")
|
||||
load(":DEFS.bzl", "rn_codegen_components", "rn_codegen_modules")
|
||||
|
||||
SETUP_ENV_DEPS = [] if IS_OSS_BUILD else [
|
||||
"//xplat/js:setup_env",
|
||||
]
|
||||
|
||||
fb_native.sh_binary(
|
||||
name = "codegen_rn_modules_tests",
|
||||
main = "src/cli/verify_with_old_codegen.sh",
|
||||
|
@ -10,8 +14,7 @@ fb_native.sh_binary(
|
|||
resources = [
|
||||
"src/cli/verify_with_old_codegen.js",
|
||||
"src/cli/verify_with_old_codegen.sh",
|
||||
"//xplat/js:setup_env",
|
||||
],
|
||||
] + SETUP_ENV_DEPS,
|
||||
)
|
||||
|
||||
fb_native.sh_test(
|
||||
|
@ -27,8 +30,7 @@ fb_native.sh_binary(
|
|||
"src/cli/combine/combine-js-to-schema.js",
|
||||
"src/cli/combine/combine_js_to_schema.sh",
|
||||
":yarn-workspace",
|
||||
"//xplat/js:setup_env",
|
||||
],
|
||||
] + SETUP_ENV_DEPS,
|
||||
visibility = ["PUBLIC"],
|
||||
)
|
||||
|
||||
|
@ -43,8 +45,7 @@ fb_native.sh_binary(
|
|||
) + [
|
||||
"buck_tests/generate-tests.js",
|
||||
"package.json",
|
||||
"//xplat/js:setup_env",
|
||||
],
|
||||
] + SETUP_ENV_DEPS,
|
||||
visibility = ["PUBLIC"],
|
||||
)
|
||||
|
||||
|
@ -56,7 +57,7 @@ fb_native.genrule(
|
|||
"**/e2e/__test_fixtures__/modules/Native*.js",
|
||||
],
|
||||
),
|
||||
cmd = "$(exe //xplat/js/react-native-github/packages/react-native-codegen:write_to_json) $OUT $SRCS",
|
||||
cmd = "$(exe {}) $OUT $SRCS".format(react_native_root_target("packages/react-native-codegen:write_to_json")),
|
||||
out = "schema-codegen_tests.json",
|
||||
)
|
||||
|
||||
|
|
|
@ -14,7 +14,9 @@ load(
|
|||
"get_apple_inspector_flags",
|
||||
"get_preprocessor_flags_for_build_mode",
|
||||
"react_native_dep",
|
||||
"react_native_root_target",
|
||||
"react_native_target",
|
||||
"react_native_xplat_shared_library_target",
|
||||
"react_native_xplat_target",
|
||||
"react_native_xplat_target_apple",
|
||||
"rn_android_library",
|
||||
|
@ -36,7 +38,7 @@ def rn_codegen_modules(
|
|||
fb_native.genrule(
|
||||
name = generate_fixtures_rule_name,
|
||||
srcs = native.glob(["src/generators/**/*.js"]),
|
||||
cmd = "$(exe //xplat/js/react-native-github/packages/react-native-codegen:rn_codegen) $(location {}) {} $OUT {}".format(schema_target, name, native_module_spec_name),
|
||||
cmd = "$(exe {}) $(location {}) {} $OUT {}".format(react_native_root_target("packages/react-native-codegen:rn_codegen"), schema_target, name, native_module_spec_name),
|
||||
out = "codegenfiles-{}".format(name),
|
||||
labels = ["codegen_rule"],
|
||||
)
|
||||
|
@ -80,8 +82,8 @@ def rn_codegen_modules(
|
|||
labels = ["codegen_rule"],
|
||||
visibility = ["PUBLIC"],
|
||||
deps = [
|
||||
"//fbandroid/third-party/java/jsr-305:jsr-305",
|
||||
"//fbandroid/third-party/java/jsr-330:jsr-330",
|
||||
react_native_dep("third-party/java/jsr-305:jsr-305"),
|
||||
react_native_dep("third-party/java/jsr-330:jsr-330"),
|
||||
react_native_target("java/com/facebook/react/bridge:bridge"),
|
||||
react_native_target("java/com/facebook/react/common:common"),
|
||||
],
|
||||
|
@ -117,7 +119,7 @@ def rn_codegen_modules(
|
|||
],
|
||||
deps = [],
|
||||
exported_deps = [
|
||||
"//xplat/jsi:jsi",
|
||||
react_native_xplat_shared_library_target("jsi:jsi"),
|
||||
react_native_xplat_target("react/nativemodule/core:core"),
|
||||
],
|
||||
platforms = (ANDROID,),
|
||||
|
@ -188,7 +190,7 @@ def rn_codegen_components(
|
|||
fb_native.genrule(
|
||||
name = generate_fixtures_rule_name,
|
||||
srcs = native.glob(["src/generators/**/*.js"]),
|
||||
cmd = "$(exe //xplat/js/react-native-github/packages/react-native-codegen:rn_codegen) $(location {}) {} $OUT {}".format(schema_target, name, name),
|
||||
cmd = "$(exe {}) $(location {}) {} $OUT {}".format(react_native_root_target("packages/react-native-codegen:rn_codegen"), schema_target, name, name),
|
||||
out = "codegenfiles-{}".format(name),
|
||||
labels = ["codegen_rule"],
|
||||
)
|
||||
|
@ -417,7 +419,7 @@ def rn_codegen_cxx_modules(
|
|||
fb_native.genrule(
|
||||
name = generate_fixtures_rule_name,
|
||||
srcs = native.glob(["src/generators/**/*.js"]),
|
||||
cmd = "$(exe //xplat/js/react-native-github/packages/react-native-codegen:rn_codegen) $(location {}) {} $OUT {}".format(schema_target, name, name),
|
||||
cmd = "$(exe {}) $(location {}) {} $OUT {}".format(react_native_root_target("packages/react-native-codegen:rn_codegen"), schema_target, name, name),
|
||||
out = "codegenfiles-{}".format(name),
|
||||
labels = ["codegen_rule"],
|
||||
)
|
||||
|
|
|
@ -15,12 +15,21 @@ _DEBUG_PREPROCESSOR_FLAGS = []
|
|||
|
||||
_APPLE_COMPILER_FLAGS = []
|
||||
|
||||
def get_apple_compiler_flags():
|
||||
return _APPLE_COMPILER_FLAGS
|
||||
|
||||
def get_preprocessor_flags_for_build_mode():
|
||||
return _DEBUG_PREPROCESSOR_FLAGS
|
||||
|
||||
def get_apple_compiler_flags():
|
||||
def get_static_library_ios_flags():
|
||||
return _APPLE_COMPILER_FLAGS
|
||||
|
||||
OBJC_ARC_PREPROCESSOR_FLAGS = [
|
||||
"-fobjc-arc",
|
||||
"-fno-objc-arc-exceptions",
|
||||
"-Qunused-arguments",
|
||||
]
|
||||
|
||||
IS_OSS_BUILD = True
|
||||
|
||||
GLOG_DEP = "//ReactAndroid/build/third-party-ndk/glog:glog"
|
||||
|
@ -82,6 +91,12 @@ def react_native_xplat_target(path):
|
|||
def react_native_xplat_target_apple(path):
|
||||
return react_native_xplat_target(path) + "Apple"
|
||||
|
||||
def react_native_root_target(path):
|
||||
return "//" + path
|
||||
|
||||
def react_native_xplat_shared_library_target(path):
|
||||
return react_native_xplat_target(path)
|
||||
|
||||
# Example: react_native_tests_target('java/com/facebook/react/modules:modules')
|
||||
def react_native_tests_target(path):
|
||||
return "//ReactAndroid/src/test/" + path
|
||||
|
|
|
@ -5,4 +5,9 @@
|
|||
|
||||
def yarn_workspace(name, srcs = [], transform_ignore = None, visibility = None):
|
||||
# Noop for OSS vs FB build compatibility for now
|
||||
unused = True
|
||||
native.genrule(
|
||||
name = name,
|
||||
cmd = "echo {} > $OUT".format(name),
|
||||
out = "{}.txt".format(name),
|
||||
visibility = visibility,
|
||||
)
|
||||
|
|
Загрузка…
Ссылка в новой задаче