Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/breezy-donuts-approve.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@rnx-kit/react-native-host": patch
---

Build fixes for 0.78
3 changes: 3 additions & 0 deletions packages/react-native-host/cocoa/RNXBridgelessHeaders.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@
#import <ReactCommon/RCTJscInstance.h>
#endif // USE_HERMES

#if __has_include(<react/config/ReactNativeConfig.h>)
#import <react/config/ReactNativeConfig.h>
#define USE_REACT_NATIVE_CONFIG
#endif // __has_include(<react/config/ReactNativeConfig.h>)

#if __has_include(<react/featureflags/ReactNativeFeatureFlags.h>)
#import <react/featureflags/ReactNativeFeatureFlags.h>
Expand Down
12 changes: 12 additions & 0 deletions packages/react-native-host/cocoa/ReactNativeHost.mm
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@

@class RCTSurfacePresenter;

#ifdef USE_REACT_NATIVE_CONFIG
using ReactNativeConfig = facebook::react::EmptyReactNativeConfig const;
#endif // USE_REACT_NATIVE_CONFIG

#if USE_BRIDGELESS
@interface ReactNativeHost () <RCTContextContainerHandling>
Expand All @@ -34,7 +36,9 @@ @implementation ReactNativeHost {
RCTHost *_reactHost;
NSLock *_isShuttingDown;
RNXHostReleaser *_hostReleaser;
#ifdef USE_REACT_NATIVE_CONFIG
std::shared_ptr<ReactNativeConfig> _reactNativeConfig;
#endif // USE_REACT_NATIVE_CONFIG
}

- (instancetype)initWithConfig:(id<RNXHostConfig>)config
Expand Down Expand Up @@ -197,7 +201,9 @@ - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
- (void)didCreateContextContainer:
(std::shared_ptr<facebook::react::ContextContainer>)contextContainer
{
#ifdef USE_REACT_NATIVE_CONFIG
contextContainer->insert("ReactNativeConfig", _reactNativeConfig);
#endif // USE_REACT_NATIVE_CONFIG
}

#else // USE_BRIDGELESS
Expand Down Expand Up @@ -254,15 +260,21 @@ - (void)initializeReactHost
RCTEnableTurboModuleInterop(YES);
RCTEnableTurboModuleInteropBridgeProxy(YES);

#ifdef USE_REACT_NATIVE_CONFIG
_reactNativeConfig = std::make_shared<ReactNativeConfig>();
std::weak_ptr<ReactNativeConfig> reactNativeConfig{_reactNativeConfig};
#endif // USE_REACT_NATIVE_CONFIG

SharedJSRuntimeFactory (^jsEngineProvider)() = ^SharedJSRuntimeFactory {
#if USE_HERMES
#ifdef USE_REACT_NATIVE_CONFIG
auto config = reactNativeConfig.lock();
NSAssert(config, @"Expected nonnull ReactNativeConfig instance");
return std::make_shared<facebook::react::RCTHermesInstance>(config, nullptr);
#else
return std::make_shared<facebook::react::RCTHermesInstance>(nullptr, false);
#endif // USE_REACT_NATIVE_CONFIG
#else // USE_HERMES
return std::make_shared<facebook::react::RCTJscInstance>();
#endif // USE_HERMES
};
Expand Down
Loading