2016-06-12 03:47:59 +00:00
|
|
|
CXX_LIBRARY_COMPILER_FLAGS = []
|
|
|
|
REACT_LIBRARY_EXTRA_COMPILER_FLAGS = []
|
|
|
|
if THIS_IS_FBOBJC:
|
2016-08-29 20:20:14 +00:00
|
|
|
inherited_buck_flags = STATIC_LIBRARY_IOS_FLAGS
|
2016-08-29 17:09:11 +00:00
|
|
|
CXX_LIBRARY_COMPILER_FLAGS = inherited_buck_flags.get_flag_value('compiler_flags')
|
2016-06-22 20:42:55 +00:00
|
|
|
REACT_LIBRARY_EXTRA_COMPILER_FLAGS = ['-Wno-shadow', '-Wno-missing-prototypes', '-Wno-global-constructors']
|
2016-06-12 03:47:59 +00:00
|
|
|
|
2016-05-04 02:29:58 +00:00
|
|
|
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",
|
2016-08-29 20:20:14 +00:00
|
|
|
inherited_buck_flags = STATIC_LIBRARY_IOS_FLAGS,
|
2016-05-04 02:29:58 +00:00
|
|
|
frameworks = [
|
|
|
|
'$SDKROOT/System/Library/Frameworks/JavaScriptCore.framework',
|
|
|
|
],
|
|
|
|
**kwargs_add(
|
|
|
|
kwargs,
|
2016-05-14 00:15:03 +00:00
|
|
|
preprocessor_flags = DEBUG_PREPROCESSOR_FLAGS,
|
2016-05-04 02:29:58 +00:00
|
|
|
deps = [
|
|
|
|
'//xplat/folly:molly',
|
|
|
|
]
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
2016-05-25 02:24:57 +00:00
|
|
|
cxx_library(
|
|
|
|
name = 'module',
|
|
|
|
force_static = True,
|
2016-06-12 03:47:59 +00:00
|
|
|
compiler_flags = CXX_LIBRARY_COMPILER_FLAGS,
|
2016-05-25 02:24:57 +00:00
|
|
|
exported_headers = [
|
|
|
|
'CxxModule.h',
|
2016-05-27 23:02:50 +00:00
|
|
|
'FollySupport.h',
|
2016-05-25 02:24:57 +00:00
|
|
|
'JsArgumentHelpers.h',
|
|
|
|
'JsArgumentHelpers-inl.h',
|
|
|
|
],
|
2016-05-27 23:02:50 +00:00
|
|
|
header_namespace = 'cxxreact',
|
2016-05-25 02:24:57 +00:00
|
|
|
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 = '',
|
2016-06-12 03:47:59 +00:00
|
|
|
compiler_flags = CXX_LIBRARY_COMPILER_FLAGS + [
|
2016-05-25 02:24:57 +00:00
|
|
|
'-fno-omit-frame-pointer',
|
|
|
|
'-Wall',
|
|
|
|
'-Werror',
|
|
|
|
'-std=c++11',
|
|
|
|
'-fexceptions',
|
|
|
|
],
|
|
|
|
deps = [
|
|
|
|
':module',
|
|
|
|
'//xplat/folly:molly',
|
|
|
|
],
|
|
|
|
visibility = [
|
|
|
|
'PUBLIC',
|
|
|
|
],
|
|
|
|
)
|
2016-05-04 02:29:58 +00:00
|
|
|
|
|
|
|
react_library(
|
|
|
|
soname = 'libreactnativefb.so',
|
|
|
|
header_namespace = 'cxxreact',
|
|
|
|
force_static = True,
|
2016-05-25 02:24:57 +00:00
|
|
|
srcs = [
|
2016-06-14 01:12:33 +00:00
|
|
|
'CxxMessageQueue.cpp',
|
2016-08-03 22:58:45 +00:00
|
|
|
'CxxNativeModule.cpp',
|
2016-07-14 22:23:53 +00:00
|
|
|
'Executor.cpp',
|
2016-05-25 02:24:57 +00:00
|
|
|
'Instance.cpp',
|
|
|
|
'JSCExecutor.cpp',
|
|
|
|
'JSCHelpers.cpp',
|
|
|
|
'JSCLegacyProfiler.cpp',
|
|
|
|
'JSCLegacyTracing.cpp',
|
|
|
|
'JSCMemory.cpp',
|
|
|
|
'JSCPerfStats.cpp',
|
2016-07-15 18:51:10 +00:00
|
|
|
'JSCSamplingProfiler.cpp',
|
2016-05-25 02:24:57 +00:00
|
|
|
'JSCTracing.cpp',
|
|
|
|
'JSCWebWorker.cpp',
|
|
|
|
'MethodCall.cpp',
|
|
|
|
'ModuleRegistry.cpp',
|
|
|
|
'NativeToJsBridge.cpp',
|
|
|
|
'Platform.cpp',
|
|
|
|
'Value.cpp',
|
2016-08-24 00:06:18 +00:00
|
|
|
'Unicode.cpp',
|
2016-05-25 02:24:57 +00:00
|
|
|
],
|
|
|
|
headers = [
|
|
|
|
'JSCLegacyProfiler.h',
|
|
|
|
'JSCLegacyTracing.h',
|
|
|
|
'JSCMemory.h',
|
|
|
|
'JSCPerfStats.h',
|
2016-07-15 18:51:10 +00:00
|
|
|
'JSCSamplingProfiler.h',
|
2016-05-25 02:24:57 +00:00
|
|
|
'JSCTracing.h',
|
|
|
|
],
|
|
|
|
exported_headers = [
|
2016-06-14 01:12:33 +00:00
|
|
|
'CxxMessageQueue.h',
|
2016-08-03 22:58:45 +00:00
|
|
|
'CxxNativeModule.h',
|
2016-05-25 02:24:57 +00:00
|
|
|
'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',
|
2016-08-24 00:06:18 +00:00
|
|
|
'Unicode.h',
|
2016-05-25 02:24:57 +00:00
|
|
|
],
|
2016-05-04 02:29:58 +00:00
|
|
|
preprocessor_flags = [
|
|
|
|
'-DLOG_TAG="ReactNative"',
|
|
|
|
'-DWITH_FBSYSTRACE=1',
|
|
|
|
],
|
|
|
|
compiler_flags = [
|
|
|
|
'-Wall',
|
|
|
|
'-fexceptions',
|
|
|
|
'-fvisibility=hidden',
|
|
|
|
'-frtti',
|
2016-06-12 03:47:59 +00:00
|
|
|
] + REACT_LIBRARY_EXTRA_COMPILER_FLAGS,
|
2016-05-04 02:29:58 +00:00
|
|
|
deps = [
|
2016-08-03 22:58:45 +00:00
|
|
|
':module',
|
2016-05-04 02:29:58 +00:00
|
|
|
'//xplat/fbsystrace:fbsystrace',
|
2016-08-02 14:32:59 +00:00
|
|
|
react_native_xplat_target('microprofiler:microprofiler'),
|
2016-05-04 02:29:58 +00:00
|
|
|
],
|
|
|
|
visibility = [ 'PUBLIC' ],
|
|
|
|
)
|