Skip to content

Commit

Permalink
RNTester Android: always compile Fabric files
Browse files Browse the repository at this point in the history
Summary:
This commit makes both `:ReactAndroid` and `:rn-tester:android:app` always compile in Fabric codegen outputs. However, one may still enable/disable Fabric at runtime by setting `USE_FABRIC` env var (set to 1 or 0, default is 0).

Note that we can't register custom components specific to the app, yet, so only the components in react-native github repo is covered by this commit.

RNTester doesn't enable Fabric by default yet due to known UI bugs that haven't been addressed yet.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D25674311

fbshipit-source-id: 8db660c959319250ebc683c84076677cf6489e94
  • Loading branch information
fkgozali authored and facebook-github-bot committed Dec 22, 2020
1 parent 8db181a commit 86ffbd0
Show file tree
Hide file tree
Showing 5 changed files with 7 additions and 18 deletions.
6 changes: 0 additions & 6 deletions ReactAndroid/build.gradle
Expand Up @@ -33,11 +33,6 @@ def thirdPartyNdkDir = new File("$buildDir/third-party-ndk")
// - glog-0.3.5
def dependenciesPath = System.getenv("REACT_NATIVE_DEPENDENCIES")

// The 'USE_FABRIC' environment variable will build Fabric C++ code into the bundle
// USE_FABRIC=0 will build RN excluding fabric
// USE_FABRIC=1 will build RN including fabric
def enableFabric = (System.getenv('USE_FABRIC') ?: '0').toBoolean()

// The Boost library is a very large download (>100MB).
// If Boost is already present on your system, define the REACT_NATIVE_BOOST_PATH env variable
// and the build will use that.
Expand Down Expand Up @@ -318,7 +313,6 @@ def buildReactNdkLib = tasks.register("buildReactNdkLib", Exec) {
"REACT_COMMON_DIR=$projectDir/../ReactCommon",
"REACT_GENERATED_SRC_DIR=$buildDir/generated/source",
"REACT_SRC_DIR=$projectDir/src/main/java/com/facebook/react",
"BUILD_FABRIC=$enableFabric",
"-C", file("src/main/jni/react/jni").absolutePath,
"--jobs", project.findProperty("jobs") ?: Runtime.runtime.availableProcessors()
)
Expand Down
5 changes: 1 addition & 4 deletions ReactAndroid/src/main/jni/react/jni/Android.mk
Expand Up @@ -134,10 +134,7 @@ include $(REACT_SRC_DIR)/reactperflogger/jni/Android.mk
# TODO (T48588859): Restructure this target to align with dir structure: "react/nativemodule/..."
# Note: Update this only when ready to minimize breaking changes.
include $(REACT_SRC_DIR)/turbomodule/core/jni/Android.mk

ifeq ($(BUILD_FABRIC),true)
include $(REACT_SRC_DIR)/fabric/jni/Android.mk
endif
include $(REACT_SRC_DIR)/fabric/jni/Android.mk

# TODO(ramanpreet):
# Why doesn't this import-module call generate a jscexecutor.so file?
Expand Down
6 changes: 3 additions & 3 deletions ReactCommon/jsi/Android.mk
Expand Up @@ -32,8 +32,8 @@ LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
LOCAL_CFLAGS := -fexceptions -frtti -O3
LOCAL_SHARED_LIBRARIES := libfolly_json libjsc glog

ifeq ($(BUILD_FABRIC),true)
LOCAL_CFLAGS += -DRN_FABRIC_ENABLED
endif
# TODO: Remove this flag when ready.
# Android has this enabled by default, but the flag is still needed for iOS.
LOCAL_CFLAGS += -DRN_FABRIC_ENABLED

include $(BUILD_STATIC_LIBRARY)
4 changes: 2 additions & 2 deletions packages/rn-tester/android/app/build.gradle
Expand Up @@ -66,7 +66,7 @@ plugins {
* // Root dir for all JS files for the app. Defaults to `root` above.
* jsRootDir: "../..",
*
* // Enable Fabric at build time and runtime.
* // Enable Fabric at runtime.
* enableFabric: true,
*
* // Java package name to use for any codegen artifacts produced during build time.
Expand Down Expand Up @@ -113,7 +113,7 @@ def enableProguardInReleaseBuilds = true
def enableCodegen = project.ext.react.enableCodegen

/**
* Build and enable Fabric in RN Tester app.
* Enable Fabric in RN Tester app.
*/
def enableFabric = project.ext.react.enableFabric

Expand Down
4 changes: 1 addition & 3 deletions scripts/generate-native-modules-specs-cli.js
Expand Up @@ -26,9 +26,7 @@ const path = require('path');
const USE_FABRIC = process.env.USE_FABRIC != null && !!process.env.USE_FABRIC;

const GENERATORS = {
android: USE_FABRIC
? ['componentsAndroid', 'modulesAndroid']
: ['modulesAndroid'],
android: ['componentsAndroid', 'modulesAndroid'],
ios: ['modulesIOS'],
};

Expand Down

0 comments on commit 86ffbd0

Please sign in to comment.