load("@fbsource//tools/build_defs:fb_native_wrapper.bzl", "fb_native") load("@fbsource//tools/build_defs:fb_xplat_cxx_binary.bzl", "fb_xplat_cxx_binary") load("@fbsource//tools/build_defs:platform_defs.bzl", "ANDROID", "APPLE", "IOS") load("@fbsource//tools/build_defs/oss:rn_defs.bzl", "rn_android_library", "rn_xplat_cxx_library") load("@fbsource//tools/build_defs/third_party:yarn_defs.bzl", "yarn_workspace") load("@fbsource//xplat/js/react-native-github/packages/react-native-codegen:DEFS.bzl", "rn_codegen_components", "rn_codegen_modules") load("//tools/build_defs/oss:rn_defs.bzl", "react_native_target") fb_native.sh_binary( name = "codegen_rn_modules_tests", main = "src/cli/verify_with_old_codegen.sh", visibility = ["PUBLIC"], resources = [ "src/cli/verify_with_old_codegen.js", "src/cli/verify_with_old_codegen.sh", "//xplat/js:setup_env", ], ) fb_native.sh_test( name = "verify_all_modules_with_old_codegen", test = "src/cli/verify_all_modules_with_old_codegen.sh", visibility = ["PUBLIC"], ) fb_native.sh_binary( name = "write_to_json", main = "src/cli/combine/combine_js_to_schema.sh", resources = [ "src/cli/combine/combine-js-to-schema.js", "src/cli/combine/combine_js_to_schema.sh", ":yarn-workspace", "//xplat/js:setup_env", ], visibility = ["PUBLIC"], ) fb_native.sh_binary( name = "rn_codegen", main = "buck_tests/generate-tests.sh", resources = glob( [ "buck_tests/**/*.js", "src/**/*.js", ], ) + [ "buck_tests/generate-tests.js", "package.json", "//xplat/js:setup_env", "yarn.lock", ], visibility = ["PUBLIC"], ) fb_native.genrule( name = "codegen_tests_schema", srcs = glob( [ "**/e2e/__test_fixtures__/components/*NativeComponent.js", "**/e2e/__test_fixtures__/modules/Native*.js", ], ), cmd = "$(exe //xplat/js/react-native-github/packages/react-native-codegen:write_to_json) $OUT $SRCS", out = "schema-codegen_tests.json", ) rn_codegen_components( name = "codegen_tests", schema_target = ":codegen_tests_schema", ) rn_codegen_modules( name = "codegen_tests", native_module_spec_name = "FBReactNativeTestSpec", schema_target = ":codegen_tests_schema", ) fb_xplat_cxx_binary( name = "rn_codegen_binary", srcs = ["buck_tests/emptyFile.cpp"], compiler_flags = [ "-fexceptions", "-frtti", "-std=c++14", "-Wall", ], platforms = (ANDROID, APPLE), preprocessor_flags = [ "-DLOG_TAG=\"ReactNative\"", "-DWITH_FBSYSTRACE=1", ], visibility = ["PUBLIC"], deps = [ ":generated_components-codegen_tests", ], ) rn_android_library( name = "rn_codegen_library_java", srcs = glob(["**/*.java"]), visibility = [ "PUBLIC", ], deps = [ react_native_target("java/com/facebook/react/bridge:bridge"), react_native_target("java/com/facebook/react/common:common"), react_native_target("java/com/facebook/react/views/view:view"), react_native_target("java/com/facebook/react/uimanager:uimanager"), ":generated_components_java-codegen_tests", ], ) rn_xplat_cxx_library( name = "rn_codegen_library", srcs = ["buck_tests/emptyFile.cpp"], headers = [], compiler_flags = [ "-fexceptions", "-frtti", "-std=c++14", "-Wall", ], platforms = (ANDROID, APPLE), preprocessor_flags = [ "-DLOG_TAG=\"ReactNative\"", "-DWITH_FBSYSTRACE=1", ], visibility = [ "PUBLIC", ], deps = [ ":generated_components-codegen_tests", ], ) rn_xplat_cxx_library( name = "rn_codegen_library_mm", srcs = ["buck_tests/emptyFile.mm"], headers = [], apple_sdks = (IOS,), compiler_flags = [ "-fexceptions", "-frtti", "-std=c++14", "-Wall", ], platforms = (APPLE), preprocessor_flags = [ "-DLOG_TAG=\"ReactNative\"", "-DWITH_FBSYSTRACE=1", ], visibility = [ "PUBLIC", ], deps = [ ":generated_components-codegen_tests", ":generated_objcpp_modules-codegen_tests", ], ) yarn_workspace( name = "yarn-workspace", srcs = glob( ["**/*.js"], exclude = [ "**/__fixtures__/**", "**/__flowtests__/**", "**/__mocks__/**", "**/__server_snapshot_tests__/**", "**/__tests__/**", "**/node_modules/**", "**/node_modules/.bin/**", "**/.*", "**/.*/**", "**/.*/.*", "**/*.xcodeproj/**", "**/*.xcworkspace/**", ], ), visibility = ["PUBLIC"], )