mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
a3c6e1da10
Summary: This is very much a work in progress. Moving it into the open source repo to be able to hook it up to generate some Fabric files. Will continue to iterate on it in the open. Reviewed By: hramos, mdvacca Differential Revision: D13500969 fbshipit-source-id: 79082447dc52b5834f24eb72bc6e07200b324238
97 lines
3.5 KiB
Python
97 lines
3.5 KiB
Python
load("@fbsource//tools/build_defs:default_platform_defs.bzl", "ANDROID", "APPLE")
|
|
load("@fbsource//tools/build_defs:fb_native_wrapper.bzl", "fb_native")
|
|
load(
|
|
"//tools/build_defs/oss:rn_defs.bzl",
|
|
"react_native_xplat_target",
|
|
"rn_xplat_cxx_library",
|
|
)
|
|
|
|
def rn_codegen_test(
|
|
fixture_name = ""):
|
|
generate_fixtures_rule_name = "generate_fixtures-{}".format(fixture_name)
|
|
generate_component_descriptor_h_name = "generate_component_descriptor_h-{}".format(fixture_name)
|
|
generate_event_emitter_cpp_name = "generate_event_emitter_cpp-{}".format(fixture_name)
|
|
generate_event_emitter_h_name = "generate_event_emitter_h-{}".format(fixture_name)
|
|
generate_props_cpp_name = "generate_props_cpp-{}".format(fixture_name)
|
|
generate_props_h_name = "generated_props_h-{}".format(fixture_name)
|
|
generate_shadow_node_h_name = "generated_shadow_node_h-{}".format(fixture_name)
|
|
|
|
fb_native.genrule(
|
|
name = generate_fixtures_rule_name,
|
|
srcs = [],
|
|
cmd = "$(exe :rn_codegen) {} $OUT".format(fixture_name),
|
|
out = "codegenfiles-{}".format(fixture_name),
|
|
)
|
|
|
|
fb_native.genrule(
|
|
name = generate_component_descriptor_h_name,
|
|
cmd = "cp $(location :{})/ComponentDescriptors.h $OUT".format(generate_fixtures_rule_name),
|
|
out = "ComponentDescriptors.h",
|
|
)
|
|
|
|
fb_native.genrule(
|
|
name = generate_event_emitter_cpp_name,
|
|
cmd = "cp $(location :{})/EventEmitters.cpp $OUT".format(generate_fixtures_rule_name),
|
|
out = "EventEmitters.cpp",
|
|
)
|
|
|
|
fb_native.genrule(
|
|
name = generate_event_emitter_h_name,
|
|
cmd = "cp $(location :{})/EventEmitters.h $OUT".format(generate_fixtures_rule_name),
|
|
out = "EventEmitters.h",
|
|
)
|
|
|
|
fb_native.genrule(
|
|
name = generate_props_cpp_name,
|
|
cmd = "cp $(location :{})/Props.cpp $OUT".format(generate_fixtures_rule_name),
|
|
out = "Props.cpp",
|
|
)
|
|
|
|
fb_native.genrule(
|
|
name = generate_props_h_name,
|
|
cmd = "cp $(location :{})/Props.h $OUT".format(generate_fixtures_rule_name),
|
|
out = "Props.h",
|
|
)
|
|
|
|
fb_native.genrule(
|
|
name = generate_shadow_node_h_name,
|
|
cmd = "cp $(location :{})/ShadowNodes.h $OUT".format(generate_fixtures_rule_name),
|
|
out = "ShadowNodes.h",
|
|
)
|
|
|
|
# libs
|
|
rn_xplat_cxx_library(
|
|
name = "generated_fixture_library-{}".format(fixture_name),
|
|
srcs = [
|
|
":{}".format(generate_event_emitter_cpp_name),
|
|
":{}".format(generate_props_cpp_name),
|
|
],
|
|
headers = [
|
|
":{}".format(generate_component_descriptor_h_name),
|
|
":{}".format(generate_event_emitter_h_name),
|
|
":{}".format(generate_props_h_name),
|
|
":{}".format(generate_shadow_node_h_name),
|
|
],
|
|
exported_headers = {
|
|
"ComponentDescriptors.h": ":{}".format(generate_component_descriptor_h_name),
|
|
"EventEmitters.h": ":{}".format(generate_event_emitter_h_name),
|
|
"Props.h": ":{}".format(generate_props_h_name),
|
|
"ShadowNodes.h": ":{}".format(generate_shadow_node_h_name),
|
|
},
|
|
header_namespace = "react/components/{}".format(fixture_name),
|
|
compiler_flags = [
|
|
"-fexceptions",
|
|
"-frtti",
|
|
"-std=c++14",
|
|
"-Wall",
|
|
],
|
|
platforms = (ANDROID, APPLE),
|
|
preprocessor_flags = [
|
|
"-DLOG_TAG=\"ReactNative\"",
|
|
"-DWITH_FBSYSTRACE=1",
|
|
],
|
|
deps = [
|
|
react_native_xplat_target("fabric/components/view:view"),
|
|
],
|
|
)
|