176 lines
4.1 KiB
Python
176 lines
4.1 KiB
Python
CXX_LIBRARY_COMPILER_FLAGS = []
|
|
REACT_LIBRARY_EXTRA_COMPILER_FLAGS = []
|
|
if THIS_IS_FBOBJC:
|
|
inherited_buck_flags = buck_flags(STATIC_LIBRARY_IOS_FLAGS)
|
|
CXX_LIBRARY_COMPILER_FLAGS = inherited_buck_flags.combined_flags_as_dict()['compiler_flags']
|
|
REACT_LIBRARY_EXTRA_COMPILER_FLAGS = ['-Wno-shadow', '-Wno-missing-prototypes', '-Wno-global-constructors']
|
|
|
|
def kwargs_add(base_kwargs, **new_kwargs):
|
|
ret_kwargs = dict(base_kwargs)
|
|
for name, add_value in new_kwargs.iteritems():
|
|
if name in ret_kwargs:
|
|
# Don't use +=, it will modify base_kwargs
|
|
ret_kwargs[name] = ret_kwargs[name] + add_value
|
|
else:
|
|
ret_kwargs[name] = add_value
|
|
return ret_kwargs
|
|
|
|
if THIS_IS_FBANDROID:
|
|
include_defs('//ReactAndroid/DEFS')
|
|
|
|
def react_library(**kwargs):
|
|
kwargs = kwargs_add(
|
|
kwargs,
|
|
# We depend on JSC, support the same platforms
|
|
supported_platforms_regex = '^android-(armv7|x86)$',
|
|
compiler_flags = [
|
|
'-Wno-pessimizing-move',
|
|
],
|
|
deps = [
|
|
'//xplat/folly:molly',
|
|
])
|
|
|
|
cxx_library(
|
|
name = 'bridge',
|
|
**kwargs_add(
|
|
kwargs,
|
|
preprocessor_flags = [
|
|
'-DWITH_JSC_EXTRA_TRACING=1',
|
|
'-DWITH_JSC_MEMORY_PRESSURE=1',
|
|
'-DWITH_REACT_INTERNAL_SETTINGS=1',
|
|
'-DWITH_FB_MEMORY_PROFILING=1',
|
|
],
|
|
deps = JSC_DEPS
|
|
)
|
|
)
|
|
|
|
elif THIS_IS_FBOBJC:
|
|
def react_library(**kwargs):
|
|
ios_library(
|
|
name = 'bridge',
|
|
header_path_prefix = "cxxreact",
|
|
inherited_buck_flags = buck_flags(STATIC_LIBRARY_IOS_FLAGS),
|
|
frameworks = [
|
|
'$SDKROOT/System/Library/Frameworks/JavaScriptCore.framework',
|
|
],
|
|
**kwargs_add(
|
|
kwargs,
|
|
preprocessor_flags = DEBUG_PREPROCESSOR_FLAGS,
|
|
deps = [
|
|
'//xplat/folly:molly',
|
|
]
|
|
)
|
|
)
|
|
|
|
cxx_library(
|
|
name = 'module',
|
|
force_static = True,
|
|
compiler_flags = CXX_LIBRARY_COMPILER_FLAGS,
|
|
exported_headers = [
|
|
'CxxModule.h',
|
|
'FollySupport.h',
|
|
'JsArgumentHelpers.h',
|
|
'JsArgumentHelpers-inl.h',
|
|
],
|
|
header_namespace = 'cxxreact',
|
|
deps = [
|
|
'//xplat/folly:molly',
|
|
],
|
|
visibility = [
|
|
'PUBLIC',
|
|
],
|
|
)
|
|
|
|
cxx_library(
|
|
name = 'samplemodule',
|
|
soname = 'libxplat_react_module_samplemodule.so',
|
|
srcs = ['SampleCxxModule.cpp'],
|
|
exported_headers = ['SampleCxxModule.h'],
|
|
header_namespace = '',
|
|
compiler_flags = CXX_LIBRARY_COMPILER_FLAGS + [
|
|
'-fno-omit-frame-pointer',
|
|
'-Wall',
|
|
'-Werror',
|
|
'-std=c++11',
|
|
'-fexceptions',
|
|
],
|
|
deps = [
|
|
':module',
|
|
'//xplat/folly:molly',
|
|
],
|
|
visibility = [
|
|
'PUBLIC',
|
|
],
|
|
)
|
|
|
|
react_library(
|
|
soname = 'libreactnativefb.so',
|
|
header_namespace = 'cxxreact',
|
|
force_static = True,
|
|
srcs = [
|
|
'CxxMessageQueue.cpp',
|
|
'CxxNativeModule.cpp',
|
|
'Executor.cpp',
|
|
'Instance.cpp',
|
|
'JSCExecutor.cpp',
|
|
'JSCHelpers.cpp',
|
|
'JSCLegacyProfiler.cpp',
|
|
'JSCLegacyTracing.cpp',
|
|
'JSCMemory.cpp',
|
|
'JSCPerfStats.cpp',
|
|
'JSCSamplingProfiler.cpp',
|
|
'JSCTracing.cpp',
|
|
'JSCWebWorker.cpp',
|
|
'MethodCall.cpp',
|
|
'ModuleRegistry.cpp',
|
|
'NativeToJsBridge.cpp',
|
|
'Platform.cpp',
|
|
'Value.cpp',
|
|
],
|
|
headers = [
|
|
'JSCLegacyProfiler.h',
|
|
'JSCLegacyTracing.h',
|
|
'JSCMemory.h',
|
|
'JSCPerfStats.h',
|
|
'JSCSamplingProfiler.h',
|
|
'JSCTracing.h',
|
|
],
|
|
exported_headers = [
|
|
'CxxMessageQueue.h',
|
|
'CxxNativeModule.h',
|
|
'Executor.h',
|
|
'ExecutorToken.h',
|
|
'ExecutorTokenFactory.h',
|
|
'Instance.h',
|
|
'JSCExecutor.h',
|
|
'JSCHelpers.h',
|
|
'JSCWebWorker.h',
|
|
'JSModulesUnbundle.h',
|
|
'MessageQueueThread.h',
|
|
'MethodCall.h',
|
|
'ModuleRegistry.h',
|
|
'NativeModule.h',
|
|
'NativeToJsBridge.h',
|
|
'noncopyable.h',
|
|
'Platform.h',
|
|
'SystraceSection.h',
|
|
'Value.h',
|
|
],
|
|
preprocessor_flags = [
|
|
'-DLOG_TAG="ReactNative"',
|
|
'-DWITH_FBSYSTRACE=1',
|
|
],
|
|
compiler_flags = [
|
|
'-Wall',
|
|
'-fexceptions',
|
|
'-fvisibility=hidden',
|
|
'-frtti',
|
|
] + REACT_LIBRARY_EXTRA_COMPILER_FLAGS,
|
|
deps = [
|
|
':module',
|
|
'//xplat/fbsystrace:fbsystrace',
|
|
react_native_xplat_target('microprofiler:microprofiler'),
|
|
],
|
|
visibility = [ 'PUBLIC' ],
|
|
)
|