Page MenuHomePhabricator

D9227.id31269.diff
No OneTemporary

D9227.id31269.diff

diff --git a/patches/expo-modules-core+1.1.1.patch b/patches/expo-modules-core+1.1.1.patch
new file mode 100644
--- /dev/null
+++ b/patches/expo-modules-core+1.1.1.patch
@@ -0,0 +1,21 @@
+diff --git a/node_modules/expo-modules-core/ios/EXDefines.h b/node_modules/expo-modules-core/ios/EXDefines.h
+index 33b4d72..91b639f 100644
+--- a/node_modules/expo-modules-core/ios/EXDefines.h
++++ b/node_modules/expo-modules-core/ios/EXDefines.h
+@@ -10,6 +10,8 @@
+ #define EX_EXTERN_C_END
+ #endif
+
++#import <Foundation/Foundation.h>
++
+ EX_EXTERN_C_BEGIN
+
+ #define EX_EXPORTED_METHODS_PREFIX __ex_export__
+@@ -79,7 +81,6 @@ if (var == nil) { return; }
+ #define EXNullIfNil(value) (value ?: [NSNull null])
+
+ #import <UIKit/UIKit.h>
+-#import <Foundation/Foundation.h>
+
+ typedef struct EXMethodInfo {
+ const char *const jsName;
diff --git a/patches/react-native+0.70.8.patch b/patches/react-native+0.70.9.patch
rename from patches/react-native+0.70.8.patch
rename to patches/react-native+0.70.9.patch
--- a/patches/react-native+0.70.8.patch
+++ b/patches/react-native+0.70.9.patch
@@ -59,7 +59,7 @@
index 92371bc..e991835 100644
--- a/node_modules/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.m
+++ b/node_modules/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.m
-@@ -164,8 +164,12 @@ - (void)setSelectedTextRange:(UITextRange *)selectedTextRange notifyDelegate:(BO
+@@ -164,8 +164,12 @@ static UIColor *defaultPlaceholderColor()
- (void)paste:(id)sender
{
@@ -74,7 +74,7 @@
}
// Turn off scroll animation to fix flaky scrolling.
-@@ -254,6 +258,10 @@ - (BOOL)canPerformAction:(SEL)action withSender:(id)sender
+@@ -254,6 +258,10 @@ static UIColor *defaultPlaceholderColor()
return NO;
}
@@ -111,7 +111,7 @@
@implementation RCTBaseTextInputView {
__weak RCTBridge *_bridge;
__weak id<RCTEventDispatcherProtocol> _eventDispatcher;
-@@ -491,6 +493,46 @@ - (void)textInputDidChangeSelection
+@@ -491,6 +493,46 @@ RCT_NOT_IMPLEMENTED(- (instancetype)initWithFrame:(CGRect)frame)
});
}
@@ -162,7 +162,7 @@
index b1ecf85..3462f98 100644
--- a/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputViewManager.m
+++ b/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputViewManager.m
-@@ -33,6 +33,7 @@ @implementation RCTBaseTextInputViewManager
+@@ -33,6 +33,7 @@ RCT_EXPORT_MODULE()
#pragma mark - Unified <TextInput> properties
@@ -170,3 +170,93 @@
RCT_REMAP_VIEW_PROPERTY(autoCapitalize, backedTextInputView.autocapitalizationType, UITextAutocapitalizationType)
RCT_REMAP_VIEW_PROPERTY(autoCorrect, backedTextInputView.autocorrectionType, UITextAutocorrectionType)
RCT_REMAP_VIEW_PROPERTY(contextMenuHidden, backedTextInputView.contextMenuHidden, BOOL)
+diff --git a/node_modules/react-native/sdks/hermes/hermes-engine.podspec b/node_modules/react-native/sdks/hermes/hermes-engine.podspec
+new file mode 100644
+index 0000000..8d331e0
+--- /dev/null
++++ b/node_modules/react-native/sdks/hermes/hermes-engine.podspec
+@@ -0,0 +1,84 @@
++# Copyright (c) Meta Platforms, Inc. and affiliates.
++#
++# This source code is licensed under the MIT license found in the
++# LICENSE file in the root directory of this source tree.
++
++require "json"
++require "open3"
++
++# sdks/hermesc/osx-bin/ImportHermesc.cmake
++import_hermesc_file=File.join(__dir__, "..", "hermesc", "osx-bin", "ImportHermesc.cmake")
++
++# package.json
++package_file = File.join(__dir__, "..", "..", "package.json")
++package = JSON.parse(File.read(package_file))
++version = package['version']
++
++# We need to check the current git branch/remote to verify if
++# we're on a React Native release branch to actually build Hermes.
++currentbranch, err = Open3.capture3("git rev-parse --abbrev-ref HEAD")
++currentremote, err = Open3.capture3("git config --get remote.origin.url")
++
++source = {}
++git = "https://github.com/facebook/hermes.git"
++
++if ENV.has_key?('HERMES_ENGINE_TARBALL_PATH')
++ Pod::UI.puts '[Hermes] Using pre-built Hermes binaries from local path.' if Object.const_defined?("Pod::UI")
++ source[:http] = "file://#{ENV['HERMES_ENGINE_TARBALL_PATH']}"
++elsif version == '1000.0.0'
++ Pod::UI.puts '[Hermes] Hermes needs to be compiled, installing hermes-engine may take a while...'.yellow if Object.const_defined?("Pod::UI")
++ source[:git] = git
++ source[:commit] = `git ls-remote https://github.com/facebook/hermes main | cut -f 1`.strip
++elsif currentremote.strip.end_with?("facebook/react-native.git") and currentbranch.strip.end_with?("-stable")
++ Pod::UI.puts '[Hermes] Detected that you are on a React Native release branch, building Hermes from source...'.yellow if Object.const_defined?("Pod::UI")
++ hermestag_file = File.join(__dir__, "..", ".hermesversion")
++ hermestag = File.read(hermestag_file).strip
++ source[:git] = git
++ source[:tag] = hermestag
++else
++ source[:http] = "https://github.com/facebook/react-native/releases/download/v#{version}/hermes-runtime-darwin-v#{version}.tar.gz"
++end
++
++module HermesHelper
++ # BUILD_TYPE = :debug
++ BUILD_TYPE = :release
++end
++
++Pod::Spec.new do |spec|
++ spec.name = "hermes-engine"
++ spec.version = version
++ spec.summary = "Hermes is a small and lightweight JavaScript engine optimized for running React Native."
++ spec.description = "Hermes is a JavaScript engine optimized for fast start-up of React Native apps. It features ahead-of-time static optimization and compact bytecode."
++ spec.homepage = "https://hermesengine.dev"
++ spec.license = package["license"]
++ spec.author = "Facebook"
++ spec.source = source
++ spec.platforms = { :osx => "10.13", :ios => "12.4" }
++
++ spec.preserve_paths = ["destroot/bin/*"].concat(HermesHelper::BUILD_TYPE == :debug ? ["**/*.{h,c,cpp}"] : [])
++ spec.source_files = "destroot/include/**/*.h"
++ spec.header_mappings_dir = "destroot/include"
++
++ spec.ios.vendored_frameworks = "destroot/Library/Frameworks/universal/hermes.xcframework"
++ spec.osx.vendored_frameworks = "destroot/Library/Frameworks/macosx/hermes.framework"
++
++ spec.xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => "c++17", "CLANG_CXX_LIBRARY" => "compiler-default", "GCC_PREPROCESSOR_DEFINITIONS" => "HERMES_ENABLE_DEBUGGER=1" }
++
++ if source[:git] then
++ spec.prepare_command = <<-EOS
++ # When true, debug build will be used.
++ # See `build-apple-framework.sh` for details
++ DEBUG=#{HermesHelper::BUILD_TYPE == :debug}
++
++ # Set HERMES_OVERRIDE_HERMESC_PATH if pre-built HermesC is available
++ #{File.exist?(import_hermesc_file) ? "export HERMES_OVERRIDE_HERMESC_PATH=#{import_hermesc_file}" : ""}
++ #{File.exist?(import_hermesc_file) ? "echo \"Overriding HermesC path...\"" : ""}
++
++ # Build iOS framework
++ ./utils/build-ios-framework.sh
++
++ # Build Mac framework
++ ./utils/build-mac-framework.sh
++ EOS
++ end
++end

File Metadata

Mime Type
text/plain
Expires
Mon, Dec 23, 2:55 AM (17 h, 25 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2693301
Default Alt Text
D9227.id31269.diff (6 KB)

Event Timeline