Files
react-native/React/CoreModules/BUCK
T
Ramanpreet Nara fb34fba01c Use native_module_spec_name to name codegen targets
Summary:
## Description
Suppose this was the codegen declaration before:

```
rn_library(
  name = "FooModule",
  native_module_spec_name = "FBReactNativeSpec",
  codegen_modules = True,
  # ...
)
```

Previously, this would generate the following BUCK targets:
- generated_objcpp_modules-FooModuleApple
- generated_java_modules-FooModuleAndroid
- generated_java_modules-FooModule-jniAndroid

## Changes
We will now generate:
- FBReactNativeSpecApple
- FBReactNativeSpecAndroid
- FBReactNativeSpec-jniAndroid

This matches the naming scheme of the old codegen.

Changelog: [Internal]

Reviewed By: fkgozali

Differential Revision: D25680224

fbshipit-source-id: 617ac18fd915f3277f6bd98072d147f20fb193e5
2020-12-24 00:50:01 -08:00

137 lines
5.3 KiB
Python

load("@fbsource//tools/build_defs/apple:flag_defs.bzl", "get_objc_arc_preprocessor_flags", "get_preprocessor_flags_for_build_mode")
load("@fbsource//tools/build_defs/oss:rn_defs.bzl", "rn_apple_library", "rn_extra_build_flags")
load(
"@fbsource//xplat/configurations/buck/apple/plugins/sad_xplat_hosted_configurations:react_module_registration.bzl",
"react_module_plugin_providers",
)
rn_apple_library(
name = "CoreModulesApple",
srcs = glob(
[
"**/*.m",
"**/*.mm",
],
),
exported_headers = glob(["**/*.h"]),
compiler_flags = [
"-Wno-error=unguarded-availability-new",
"-Wno-unknown-warning-option",
"-Wno-unused-property-ivar",
],
contacts = ["oncall+react_native@xmail.facebook.com"],
enable_exceptions = True,
exported_linker_flags = [
"-weak_framework",
"UserNotifications",
"-weak_framework",
"WebKit",
],
exported_preprocessor_flags = rn_extra_build_flags(),
extension_api_only = True,
frameworks = [
"Foundation",
"UIKit",
],
header_path_prefix = "React",
labels = [
"depslint_never_remove", # Some old NativeModule still relies on +load unfortunately.
"disable_plugins_only_validation",
"supermodule:xplat/default/public.react_native.infra",
],
link_whole = True,
platform_preprocessor_flags = [(
"linux",
["-D PIC_MODIFIER=@PLT"],
)],
plugins =
react_module_plugin_providers(
name = "AccessibilityManager",
native_class_func = "RCTAccessibilityManagerCls",
) + react_module_plugin_providers(
name = "Appearance",
native_class_func = "RCTAppearanceCls",
) + react_module_plugin_providers(
name = "DeviceInfo",
native_class_func = "RCTDeviceInfoCls",
) + react_module_plugin_providers(
name = "ExceptionsManager",
native_class_func = "RCTExceptionsManagerCls",
) + react_module_plugin_providers(
name = "PlatformConstants",
native_class_func = "RCTPlatformCls",
) + react_module_plugin_providers(
name = "Clipboard",
native_class_func = "RCTClipboardCls",
) + react_module_plugin_providers(
name = "I18nManager",
native_class_func = "RCTI18nManagerCls",
) + react_module_plugin_providers(
name = "SourceCode",
native_class_func = "RCTSourceCodeCls",
) + react_module_plugin_providers(
name = "ActionSheetManager",
native_class_func = "RCTActionSheetManagerCls",
) + react_module_plugin_providers(
name = "AlertManager",
native_class_func = "RCTAlertManagerCls",
) + react_module_plugin_providers(
name = "AsyncLocalStorage",
native_class_func = "RCTAsyncLocalStorageCls",
) + react_module_plugin_providers(
name = "Timing",
native_class_func = "RCTTimingCls",
) + react_module_plugin_providers(
name = "StatusBarManager",
native_class_func = "RCTStatusBarManagerCls",
) + react_module_plugin_providers(
name = "KeyboardObserver",
native_class_func = "RCTKeyboardObserverCls",
) + react_module_plugin_providers(
name = "AppState",
native_class_func = "RCTAppStateCls",
) + react_module_plugin_providers(
name = "PerfMonitor",
native_class_func = "RCTPerfMonitorCls",
) + react_module_plugin_providers(
name = "DevMenu",
native_class_func = "RCTDevMenuCls",
) + react_module_plugin_providers(
name = "DevSettings",
native_class_func = "RCTDevSettingsCls",
) + react_module_plugin_providers(
name = "RedBox",
native_class_func = "RCTRedBoxCls",
) + react_module_plugin_providers(
name = "LogBox",
native_class_func = "RCTLogBoxCls",
) + react_module_plugin_providers(
name = "WebSocketExecutor",
native_class_func = "RCTWebSocketExecutorCls",
) + react_module_plugin_providers(
name = "WebSocketModule",
native_class_func = "RCTWebSocketModuleCls",
) + react_module_plugin_providers(
name = "DevLoadingView",
native_class_func = "RCTDevLoadingViewCls",
) + react_module_plugin_providers(
name = "DevSplitBundleLoader",
native_class_func = "RCTDevSplitBundleLoaderCls",
) + react_module_plugin_providers(
name = "EventDispatcher",
native_class_func = "RCTEventDispatcherCls",
),
plugins_header = "FBCoreModulesPlugins.h",
preprocessor_flags = get_objc_arc_preprocessor_flags() + get_preprocessor_flags_for_build_mode() + rn_extra_build_flags() + [
"-DRN_DISABLE_OSS_PLUGIN_HEADER",
],
reexport_all_header_dependencies = True,
visibility = ["PUBLIC"],
exported_deps = [
"//xplat/js:RCTLinkingApple",
"//xplat/js:RCTPushNotificationApple",
"//xplat/js/react-native-github:ReactInternalApple",
"//xplat/js/react-native-github/Libraries:FBReactNativeSpecApple",
],
)