mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Unify usage of USE_HERMES flag (#41625)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/41625 To tell React Native whether we are building with hermes or not on iOS, we were using 2 different build time flags: - USE_HERMES - RCT_USE_HERMES The first was widely used by the OSS use case, while the latter was set internally. Worse than that, their default values were the opposite and we were never setting the RCT_USE_HERMES explicitly with Cocoapods, while there was some piece of code that was trying to "smartly" detect whether Hermes was included or not. This change unifies the behavior, removing the "smartness" in favor od a declarative approach. ## Changelog: [Internal] - Unify the USE_HERMES flags Reviewed By: christophpurrer Differential Revision: D51549284 fbshipit-source-id: 829ad361e185d5b4fa227605523af3a8e590e95c
This commit is contained in:
committed by
Facebook GitHub Bot
parent
6d9d6def98
commit
3a045b6026
@@ -22,6 +22,7 @@ socket_rocket_version = '0.7.0'
|
||||
boost_compiler_flags = '-Wno-documentation'
|
||||
|
||||
use_hermes = ENV['USE_HERMES'] == nil || ENV['USE_HERMES'] == '1'
|
||||
use_hermes_flag = use_hermes ? "-DUSE_HERMES=1" : ""
|
||||
|
||||
header_subspecs = {
|
||||
'CoreModulesHeaders' => 'React/CoreModules/**/*.h',
|
||||
@@ -63,7 +64,7 @@ Pod::Spec.new do |s|
|
||||
s.platforms = min_supported_versions
|
||||
s.source = source
|
||||
s.resource_bundle = { "RCTI18nStrings" => ["React/I18n/strings/*.lproj"]}
|
||||
s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
|
||||
s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags + ' ' + use_hermes_flag
|
||||
s.header_dir = "React"
|
||||
s.framework = "JavaScriptCore"
|
||||
s.pod_target_xcconfig = {
|
||||
|
||||
@@ -41,15 +41,7 @@
|
||||
#import <jsireact/JSIExecutor.h>
|
||||
#import <reactperflogger/BridgeNativeModulePerfLogger.h>
|
||||
|
||||
#ifndef RCT_USE_HERMES
|
||||
#if __has_include(<reacthermes/HermesExecutorFactory.h>)
|
||||
#define RCT_USE_HERMES 1
|
||||
#else
|
||||
#define RCT_USE_HERMES 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if RCT_USE_HERMES
|
||||
#if USE_HERMES
|
||||
#import <reacthermes/HermesExecutorFactory.h>
|
||||
#else
|
||||
#import "JSCExecutorFactory.h"
|
||||
@@ -423,7 +415,7 @@ struct RCTInstanceCallback : public InstanceCallback {
|
||||
}
|
||||
if (!executorFactory) {
|
||||
auto installBindings = RCTJSIExecutorRuntimeInstaller(nullptr);
|
||||
#if RCT_USE_HERMES
|
||||
#if USE_HERMES
|
||||
executorFactory = std::make_shared<HermesExecutorFactory>(installBindings);
|
||||
#else
|
||||
executorFactory = std::make_shared<JSCExecutorFactory>(installBindings);
|
||||
|
||||
Reference in New Issue
Block a user