mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Add buck rule to generate Java library
Summary: Adds buck rule for generated code Reviewed By: mdvacca, makovkastar Differential Revision: D16338763 fbshipit-source-id: 6b238b3993cc110f009ad541cfa924d0d06d2fcb
This commit is contained in:
committed by
Facebook Github Bot
parent
9a546f5e9e
commit
1783780a92
@@ -10,7 +10,9 @@ load(
|
||||
"fb_xplat_cxx_test",
|
||||
"get_apple_compiler_flags",
|
||||
"get_apple_inspector_flags",
|
||||
"react_native_target",
|
||||
"react_native_xplat_target",
|
||||
"rn_android_library",
|
||||
"rn_xplat_cxx_library",
|
||||
)
|
||||
|
||||
@@ -22,8 +24,9 @@ def rn_codegen(
|
||||
generate_event_emitter_cpp_name = "generate_event_emitter_cpp-{}".format(name)
|
||||
generate_event_emitter_h_name = "generate_event_emitter_h-{}".format(name)
|
||||
generate_props_cpp_name = "generate_props_cpp-{}".format(name)
|
||||
generate_tests_cpp_name = "generate_tests_cpp-{}".format(name)
|
||||
generate_props_h_name = "generated_props_h-{}".format(name)
|
||||
generate_props_java_name = "generate_props_java-{}".format(name)
|
||||
generate_tests_cpp_name = "generate_tests_cpp-{}".format(name)
|
||||
generate_shadow_node_cpp_name = "generated_shadow_node_cpp-{}".format(name)
|
||||
generate_shadow_node_h_name = "generated_shadow_node_h-{}".format(name)
|
||||
generate_module_h_name = "generate_module_h-{}".format(name)
|
||||
@@ -31,7 +34,7 @@ def rn_codegen(
|
||||
|
||||
fb_native.genrule(
|
||||
name = generate_fixtures_rule_name,
|
||||
srcs = [],
|
||||
srcs = native.glob(["src/generators/**/*.js"]),
|
||||
cmd = "$(exe fbsource//xplat/js/react-native-github/packages/react-native-codegen:rn_codegen) $(location {}) {} $OUT".format(schema_target, name),
|
||||
out = "codegenfiles-{}".format(name),
|
||||
)
|
||||
@@ -72,6 +75,13 @@ def rn_codegen(
|
||||
out = "Props.h",
|
||||
)
|
||||
|
||||
fb_native.zip_file(
|
||||
name = generate_props_java_name,
|
||||
srcs = [":{}".format(generate_fixtures_rule_name)],
|
||||
out = "{}.src.zip".format(generate_props_java_name),
|
||||
visibility = ["PUBLIC"],
|
||||
)
|
||||
|
||||
fb_native.genrule(
|
||||
name = generate_shadow_node_cpp_name,
|
||||
cmd = "cp $(location :{})/ShadowNodes.cpp $OUT".format(generate_fixtures_rule_name),
|
||||
@@ -148,7 +158,6 @@ def rn_codegen(
|
||||
],
|
||||
)
|
||||
|
||||
# libs
|
||||
rn_xplat_cxx_library(
|
||||
name = "generated_modules-{}".format(name),
|
||||
tests = [":generated_tests-{}".format(name)],
|
||||
@@ -182,6 +191,17 @@ def rn_codegen(
|
||||
],
|
||||
)
|
||||
|
||||
rn_android_library(
|
||||
name = "generated_components_java-{}".format(name),
|
||||
srcs = [
|
||||
":{}".format(generate_props_java_name),
|
||||
],
|
||||
visibility = ["PUBLIC"],
|
||||
deps = [
|
||||
react_native_target("java/com/facebook/react/bridge:bridge"),
|
||||
],
|
||||
)
|
||||
|
||||
# Tests
|
||||
fb_xplat_cxx_test(
|
||||
name = "generated_tests-{}".format(name),
|
||||
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
package com.facebook.react.uimanager;
|
||||
|
||||
import android.view.ViewGroup;
|
||||
|
||||
public class BooleanPropNativeComponentViewManager extends BaseViewManager
|
||||
implements BooleanPropNativeComponentInterface {
|
||||
|
||||
@Override
|
||||
public void setDisabled(ViewGroup view, boolean value) {}
|
||||
}
|
||||
@@ -24,6 +24,8 @@ const generatePropsCpp = require('./components/GeneratePropsCpp.js');
|
||||
const generatePropsH = require('./components/GeneratePropsH.js');
|
||||
const generateModuleH = require('./modules/GenerateModuleH.js');
|
||||
const generateModuleCpp = require('./modules/GenerateModuleCpp.js');
|
||||
const generatePropsJavaInterface = require('./components/GeneratePropsJavaInterface.js');
|
||||
const generatePropsJavaDelegate = require('./components/GeneratePropsJavaDelegate.js');
|
||||
const generateTests = require('./components/GenerateTests.js');
|
||||
const generateShadowNodeCpp = require('./components/GenerateShadowNodeCpp.js');
|
||||
const generateShadowNodeH = require('./components/GenerateShadowNodeH.js');
|
||||
@@ -56,7 +58,12 @@ type Config = $ReadOnly<{|
|
||||
const GENERATORS = {
|
||||
descriptors: [generateComponentDescriptorH.generate],
|
||||
events: [generateEventEmitterCpp.generate, generateEventEmitterH.generate],
|
||||
props: [generatePropsCpp.generate, generatePropsH.generate],
|
||||
props: [
|
||||
generatePropsCpp.generate,
|
||||
generatePropsH.generate,
|
||||
generatePropsJavaInterface.generate,
|
||||
generatePropsJavaDelegate.generate,
|
||||
],
|
||||
modules: [generateModuleCpp.generate, generateModuleH.generate],
|
||||
tests: [generateTests.generate],
|
||||
'shadow-nodes': [
|
||||
|
||||
+1
-1
@@ -79,7 +79,7 @@ function generatePropsString(component: ComponentShape, componentName: string) {
|
||||
prop.name,
|
||||
)}(T view, ${getJavaValueForProp(prop, componentName)});`;
|
||||
})
|
||||
.join(',\n' + ' ');
|
||||
.join('\n' + ' ');
|
||||
}
|
||||
|
||||
function getClassExtendString(component): string {
|
||||
|
||||
@@ -16,14 +16,14 @@ function upperCaseFirst(inString: string): string {
|
||||
return inString[0].toUpperCase() + inString.slice(1);
|
||||
}
|
||||
|
||||
export function toSafeJavaString(input: string): string {
|
||||
function toSafeJavaString(input: string): string {
|
||||
return input
|
||||
.split('-')
|
||||
.map(upperCaseFirst)
|
||||
.join('');
|
||||
}
|
||||
|
||||
export function getImports(component: ComponentShape): Set<string> {
|
||||
function getImports(component: ComponentShape): Set<string> {
|
||||
const imports: Set<string> = new Set();
|
||||
|
||||
component.extendsProps.forEach(extendProps => {
|
||||
@@ -75,3 +75,8 @@ export function getImports(component: ComponentShape): Set<string> {
|
||||
|
||||
return imports;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
toSafeJavaString,
|
||||
getImports,
|
||||
};
|
||||
|
||||
+18
-18
@@ -9,13 +9,13 @@ import android.view.View;
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
|
||||
public interface ArrayPropsNativeComponentInterface<T extends View> {
|
||||
void setNames(T view, ReadableArray value);,
|
||||
void setDisableds(T view, ReadableArray value);,
|
||||
void setProgress(T view, ReadableArray value);,
|
||||
void setRadii(T view, ReadableArray value);,
|
||||
void setColors(T view, ReadableArray value);,
|
||||
void setSrcs(T view, ReadableArray value);,
|
||||
void setPoints(T view, ReadableArray value);,
|
||||
void setNames(T view, ReadableArray value);
|
||||
void setDisableds(T view, ReadableArray value);
|
||||
void setProgress(T view, ReadableArray value);
|
||||
void setRadii(T view, ReadableArray value);
|
||||
void setColors(T view, ReadableArray value);
|
||||
void setSrcs(T view, ReadableArray value);
|
||||
void setPoints(T view, ReadableArray value);
|
||||
void setSizes(T view, ReadableArray value);
|
||||
}
|
||||
",
|
||||
@@ -128,11 +128,11 @@ package com.facebook.react.viewmanagers;
|
||||
import android.view.View;
|
||||
|
||||
public interface FloatPropNativeComponentInterface<T extends View> {
|
||||
void setBlurRadius(T view, Float value);,
|
||||
void setBlurRadius2(T view, Float value);,
|
||||
void setBlurRadius3(T view, Float value);,
|
||||
void setBlurRadius4(T view, Float value);,
|
||||
void setBlurRadius5(T view, Float value);,
|
||||
void setBlurRadius(T view, Float value);
|
||||
void setBlurRadius2(T view, Float value);
|
||||
void setBlurRadius3(T view, Float value);
|
||||
void setBlurRadius4(T view, Float value);
|
||||
void setBlurRadius5(T view, Float value);
|
||||
void setBlurRadius6(T view, Float value);
|
||||
}
|
||||
",
|
||||
@@ -162,8 +162,8 @@ package com.facebook.react.viewmanagers;
|
||||
import android.view.View;
|
||||
|
||||
public interface IntegerPropNativeComponentInterface<T extends View> {
|
||||
void setProgress1(T view, int value);,
|
||||
void setProgress2(T view, int value);,
|
||||
void setProgress1(T view, int value);
|
||||
void setProgress2(T view, int value);
|
||||
void setProgress3(T view, int value);
|
||||
}
|
||||
",
|
||||
@@ -193,9 +193,9 @@ import android.view.View;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
|
||||
public interface ImageColorPropNativeComponentInterface<T extends View> {
|
||||
void setThumbImage(T view, ReadableMap value);,
|
||||
void setColor(T view, Integer value);,
|
||||
void setThumbTintColor(T view, Integer value);,
|
||||
void setThumbImage(T view, ReadableMap value);
|
||||
void setColor(T view, Integer value);
|
||||
void setThumbTintColor(T view, Integer value);
|
||||
void setPoint(T view, ReadableMap value);
|
||||
}
|
||||
",
|
||||
@@ -239,7 +239,7 @@ package com.facebook.react.viewmanagers;
|
||||
import android.view.View;
|
||||
|
||||
public interface StringPropComponentInterface<T extends View> {
|
||||
void setAccessibilityHint(T view, String value);,
|
||||
void setAccessibilityHint(T view, String value);
|
||||
void setAccessibilityRole(T view, String value);
|
||||
}
|
||||
",
|
||||
|
||||
Reference in New Issue
Block a user