Skip to content

Commit

Permalink
Unify usage of USE_HERMES flag (#41625)
Browse files Browse the repository at this point in the history
Summary:

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
  • Loading branch information
Riccardo Cipolleschi authored and facebook-github-bot committed Nov 27, 2023
1 parent 99b898e commit 20d08bf
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 11 deletions.
3 changes: 2 additions & 1 deletion packages/react-native/React-Core.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down Expand Up @@ -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 = {
Expand Down
12 changes: 2 additions & 10 deletions packages/react-native/React/CxxBridge/RCTCxxBridge.mm
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -423,7 +415,7 @@ - (void)start
}
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);
Expand Down

0 comments on commit 20d08bf

Please sign in to comment.