diff --git a/React-Core.podspec b/React-Core.podspec index 357c0093c5d153..8ffb65908f60db 100644 --- a/React-Core.podspec +++ b/React-Core.podspec @@ -63,17 +63,6 @@ Pod::Spec.new do |s| ss.private_header_files = "React/Cxx*/*.h" end - s.subspec "Hermes" do |ss| - ss.platforms = { :osx => "10.14", :ios => "10.0" } - ss.source_files = "ReactCommon/hermes/executor/*.{cpp,h}", - "ReactCommon/hermes/inspector/*.{cpp,h}", - "ReactCommon/hermes/inspector/chrome/*.{cpp,h}", - "ReactCommon/hermes/inspector/detail/*.{cpp,h}" - ss.pod_target_xcconfig = { "GCC_PREPROCESSOR_DEFINITIONS" => "HERMES_ENABLE_DEBUGGER=1" } - ss.dependency "RCT-Folly/Futures" - ss.dependency "hermes-engine" - end - s.subspec "DevSupport" do |ss| ss.source_files = "React/DevSupport/*.{h,mm,m}", "React/Inspector/*.{h,mm,m}" diff --git a/React/CxxBridge/RCTCxxBridge.mm b/React/CxxBridge/RCTCxxBridge.mm index bf1647fc7acc02..43a15cd4fac1cb 100644 --- a/React/CxxBridge/RCTCxxBridge.mm +++ b/React/CxxBridge/RCTCxxBridge.mm @@ -41,7 +41,7 @@ #define RCT_USE_HERMES 1 #endif #if RCT_USE_HERMES -#import "HermesExecutorFactory.h" +#import #else #import "JSCExecutorFactory.h" #endif diff --git a/ReactCommon/hermes/React-hermes.podspec b/ReactCommon/hermes/React-hermes.podspec new file mode 100644 index 00000000000000..d28d3018f13e21 --- /dev/null +++ b/ReactCommon/hermes/React-hermes.podspec @@ -0,0 +1,53 @@ +# Copyright (c) Facebook, Inc. and its 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" + +package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json"))) +version = package['version'] + +source = { :git => 'https://github.com/facebook/react-native.git' } +if version == '1000.0.0' + # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in. + source[:commit] = `git rev-parse HEAD`.strip +else + source[:tag] = "v#{version}" +end + +folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32' +folly_version = '2020.01.13.00' +boost_compiler_flags = '-Wno-documentation' + +Pod::Spec.new do |s| + s.name = "React-hermes" + s.version = version + s.summary = "-" # TODO + s.homepage = "https://reactnative.dev/" + s.license = package["license"] + s.author = "Facebook, Inc. and its affiliates" + s.platforms = { :osx => "10.14", :ios => "10.0" } + s.source = source + s.source_files = "executor/*.{cpp,h}", + "inspector/*.{cpp,h}", + "inspector/chrome/*.{cpp,h}", + "inspector/detail/*.{cpp,h}" + s.public_header_files = "executor/HermesExecutorFactory.h" + s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags + s.pod_target_xcconfig = { + "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/..\" \"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\"", + "GCC_PREPROCESSOR_DEFINITIONS" => "HERMES_ENABLE_DEBUGGER=1", + } + s.header_dir = "reacthermes" + s.dependency "React-cxxreact", version + s.dependency "React-jsi", version + s.dependency "React-jsiexecutor", version + s.dependency "React-jsinspector", version + s.dependency "React-perflogger", version + s.dependency "RCT-Folly", folly_version + s.dependency "RCT-Folly/Futures", folly_version + s.dependency "DoubleConversion" + s.dependency "glog" + s.dependency "hermes-engine" +end diff --git a/packages/rn-tester/RNTester/AppDelegate.mm b/packages/rn-tester/RNTester/AppDelegate.mm index 0b9b534cd68f37..311b1e15ae8d39 100644 --- a/packages/rn-tester/RNTester/AppDelegate.mm +++ b/packages/rn-tester/RNTester/AppDelegate.mm @@ -11,7 +11,7 @@ #define RCT_USE_HERMES 1 #endif #if RCT_USE_HERMES -#import +#import #else #import #endif diff --git a/scripts/react_native_pods.rb b/scripts/react_native_pods.rb index a31c51dbde30c3..da3ceb1ab44d31 100644 --- a/scripts/react_native_pods.rb +++ b/scripts/react_native_pods.rb @@ -62,7 +62,7 @@ def use_react_native! (options={}) end if hermes_enabled - pod 'React-Core/Hermes', :path => "#{prefix}/" + pod 'React-hermes', :path => "#{prefix}/ReactCommon/hermes" pod 'hermes-engine', '~> 0.7.2' pod 'libevent', :podspec => "#{prefix}/third-party-podspecs/libevent.podspec" end