diff --git a/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/Android.mk b/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/Android.mk new file mode 100644 index 0000000000..ea4e89c91e --- /dev/null +++ b/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/Android.mk @@ -0,0 +1,29 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +# Header search path for all source files in this module. +LOCAL_C_INCLUDES := $(LOCAL_PATH)/jsireact + +# Header search path for modules that depend on this module +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) + +LOCAL_CFLAGS += -fexceptions -frtti -std=c++14 -Wall + +LOCAL_STATIC_LIBRARIES = libjscallinvoker + +LOCAL_SHARED_LIBRARIES = libfb + +# Name of this module. +LOCAL_MODULE := jscallinvokerholder + +# Compile all local c++ files under ./platform/android/jsireact +LOCAL_SRC_FILES := $(LOCAL_PATH)/jsireact/JSCallInvokerHolder.cpp + +# Build the files in this directory as a shared library +include $(BUILD_STATIC_LIBRARY) diff --git a/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/BUCK b/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/BUCK index 0b255a2e1e..b2a7e529a7 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/BUCK @@ -3,13 +3,13 @@ load("@fbsource//tools/build_defs/oss:rn_defs.bzl", "ANDROID", "FBJNI_TARGET", " rn_xplat_cxx_library( name = "jni", srcs = [ - "OnLoad.cpp", - "TurboModuleManager.cpp", + "jsireact/OnLoad.cpp", + "jsireact/TurboModuleManager.cpp", ], header_namespace = "", exported_headers = { - "jsireact/TurboModuleManager.h": "TurboModuleManager.h", - "jsireact/TurboModuleManagerDelegate.h": "TurboModuleManagerDelegate.h", + "jsireact/TurboModuleManager.h": "jsireact/TurboModuleManager.h", + "jsireact/TurboModuleManagerDelegate.h": "jsireact/TurboModuleManagerDelegate.h", }, compiler_flags = [ "-fexceptions", @@ -39,11 +39,11 @@ rn_xplat_cxx_library( rn_xplat_cxx_library( name = "jscallinvokerholder", srcs = [ - "JSCallInvokerHolder.cpp", + "jsireact/JSCallInvokerHolder.cpp", ], header_namespace = "", exported_headers = { - "jsireact/JSCallInvokerHolder.h": "JSCallInvokerHolder.h", + "jsireact/JSCallInvokerHolder.h": "jsireact/JSCallInvokerHolder.h", }, compiler_flags = [ "-fexceptions", diff --git a/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/JSCallInvokerHolder.cpp b/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/jsireact/JSCallInvokerHolder.cpp similarity index 100% rename from ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/JSCallInvokerHolder.cpp rename to ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/jsireact/JSCallInvokerHolder.cpp diff --git a/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/JSCallInvokerHolder.h b/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/jsireact/JSCallInvokerHolder.h similarity index 100% rename from ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/JSCallInvokerHolder.h rename to ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/jsireact/JSCallInvokerHolder.h diff --git a/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/OnLoad.cpp b/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/jsireact/OnLoad.cpp similarity index 100% rename from ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/OnLoad.cpp rename to ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/jsireact/OnLoad.cpp diff --git a/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/TurboModuleManager.cpp b/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/jsireact/TurboModuleManager.cpp similarity index 100% rename from ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/TurboModuleManager.cpp rename to ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/jsireact/TurboModuleManager.cpp diff --git a/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/TurboModuleManager.h b/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/jsireact/TurboModuleManager.h similarity index 100% rename from ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/TurboModuleManager.h rename to ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/jsireact/TurboModuleManager.h diff --git a/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/TurboModuleManagerDelegate.h b/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/jsireact/TurboModuleManagerDelegate.h similarity index 100% rename from ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/TurboModuleManagerDelegate.h rename to ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/jsireact/TurboModuleManagerDelegate.h diff --git a/ReactAndroid/src/main/jni/react/jni/Android.mk b/ReactAndroid/src/main/jni/react/jni/Android.mk index 2dad091049..7d410f44c1 100644 --- a/ReactAndroid/src/main/jni/react/jni/Android.mk +++ b/ReactAndroid/src/main/jni/react/jni/Android.mk @@ -25,7 +25,7 @@ LOCAL_LDLIBS += -landroid LOCAL_SHARED_LIBRARIES := libfolly_json libfb libglog_init libyoga # The static libraries (.a files) that this module depends on. -LOCAL_STATIC_LIBRARIES := libreactnative +LOCAL_STATIC_LIBRARIES := libreactnative libjscallinvokerholder # Name of this module. # @@ -59,6 +59,9 @@ $(call import-module,yogajni) $(call import-module,cxxreact) $(call import-module,jsi) $(call import-module,jsiexecutor) +$(call import-module,jscallinvoker) + +include $(REACT_SRC_DIR)/turbomodule/core/jni/Android.mk # TODO(ramanpreet): # Why doesn't this import-module call generate a jscexecutor.so file? diff --git a/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp b/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp index 486e05b565..0b1396d6ca 100644 --- a/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +++ b/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp @@ -267,7 +267,7 @@ void CatalystInstanceImpl::handleMemoryPressure(int pressureLevel) { } jni::alias_ref CatalystInstanceImpl::getJSCallInvokerHolder() { - if (javaInstanceHolder_ == nullptr) { + if (!javaInstanceHolder_) { jsCallInvoker_ = std::make_shared(instance_); javaInstanceHolder_ = jni::make_global(JSCallInvokerHolder::newObjectCxxArgs(jsCallInvoker_)); } diff --git a/ReactCommon/jscallinvoker/Android.mk b/ReactCommon/jscallinvoker/Android.mk new file mode 100644 index 0000000000..82e87cd216 --- /dev/null +++ b/ReactCommon/jscallinvoker/Android.mk @@ -0,0 +1,27 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +# Header search path for all source files in this module. +LOCAL_C_INCLUDES := $(LOCAL_PATH)/jsireact + +# Header search path for modules that depend on this module +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) + +LOCAL_CFLAGS += -fexceptions -frtti -std=c++14 -Wall + +LOCAL_STATIC_LIBRARIES = libreactnative + +# Name of this module. +LOCAL_MODULE := jscallinvoker + +# Compile all local c++ files under ./jsireact +LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/jsireact/*.cpp) + +# Build the files in this directory as a shared library +include $(BUILD_STATIC_LIBRARY) diff --git a/ReactCommon/jscallinvoker/BUCK b/ReactCommon/jscallinvoker/BUCK index 068eadab52..a4b3523476 100644 --- a/ReactCommon/jscallinvoker/BUCK +++ b/ReactCommon/jscallinvoker/BUCK @@ -1,17 +1,14 @@ -load("//tools/build_defs/oss:rn_defs.bzl", "ANDROID", "APPLE", "react_native_xplat_target", "rn_xplat_cxx_library", "subdir_glob") +load("//tools/build_defs/oss:rn_defs.bzl", "ANDROID", "APPLE", "react_native_xplat_target", "rn_xplat_cxx_library") rn_xplat_cxx_library( name = "jscallinvoker", - srcs = glob( - ["*.cpp"], - ), + srcs = [ + "jsireact/JSCallInvoker.cpp", + ], header_namespace = "", - exported_headers = subdir_glob( - [ - ("", "*.h"), - ], - prefix = "jsireact", - ), + exported_headers = { + "jsireact/JSCallInvoker.h": "jsireact/JSCallInvoker.h", + }, compiler_flags = [ "-fexceptions", "-frtti", diff --git a/ReactCommon/jscallinvoker/JSCallInvoker.cpp b/ReactCommon/jscallinvoker/jsireact/JSCallInvoker.cpp similarity index 100% rename from ReactCommon/jscallinvoker/JSCallInvoker.cpp rename to ReactCommon/jscallinvoker/jsireact/JSCallInvoker.cpp diff --git a/ReactCommon/jscallinvoker/JSCallInvoker.h b/ReactCommon/jscallinvoker/jsireact/JSCallInvoker.h similarity index 100% rename from ReactCommon/jscallinvoker/JSCallInvoker.h rename to ReactCommon/jscallinvoker/jsireact/JSCallInvoker.h