Skip to content

Commit fc30bd3

Browse files
committed
Allow overriding REACT_NATIVE_OVERRIDE_HERMES_DIR externally
1 parent d47ee08 commit fc30bd3

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

packages/host/scripts/patch-hermes.rb

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,20 @@
44
raise "React Native Node-API cannot reliably patch JSI when React Native Core is prebuilt."
55
end
66

7-
VENDORED_HERMES_DIR ||= `npx react-native-node-api vendor-hermes --silent '#{Pod::Config.instance.installation_root}'`.strip
8-
if Dir.exist?(VENDORED_HERMES_DIR)
9-
Pod::UI.info "Hermes vendored into #{VENDORED_HERMES_DIR.inspect}"
10-
else
11-
raise "Hermes patching failed. Please check the output above for errors."
7+
if ENV['REACT_NATIVE_OVERRIDE_HERMES_DIR'].nil?
8+
VENDORED_HERMES_DIR ||= `npx react-native-node-api vendor-hermes --silent '#{Pod::Config.instance.installation_root}'`.strip
9+
# Signal the patched Hermes to React Native
10+
ENV['BUILD_FROM_SOURCE'] = 'true'
11+
ENV['REACT_NATIVE_OVERRIDE_HERMES_DIR'] = VENDORED_HERMES_DIR
12+
elsif Dir.exist?(ENV['REACT_NATIVE_OVERRIDE_HERMES_DIR'])
13+
# Setting an override path implies building from source
14+
ENV['BUILD_FROM_SOURCE'] = 'true'
1215
end
1316

14-
# Signal the patched Hermes to React Native
15-
ENV['BUILD_FROM_SOURCE'] = 'true'
16-
ENV['REACT_NATIVE_OVERRIDE_HERMES_DIR'] = VENDORED_HERMES_DIR
17+
if !ENV['REACT_NATIVE_OVERRIDE_HERMES_DIR'].empty?
18+
if Dir.exist?(ENV['REACT_NATIVE_OVERRIDE_HERMES_DIR'])
19+
Pod::UI.info "[Node-API] Using overridden Hermes in #{ENV['REACT_NATIVE_OVERRIDE_HERMES_DIR'].inspect}"
20+
else
21+
raise "Hermes patching failed: Expected override to exist in #{ENV['REACT_NATIVE_OVERRIDE_HERMES_DIR'].inspect}"
22+
end
23+
end

0 commit comments

Comments
 (0)