mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/42635 Changelog: [Internal] Adds a RuntimeAgent interface to the modern CDP backend, plus an `InstanceTargetDelegate::createRuntimeAgent()` method. This allows the RN integration to provide an engine-specific CDP implementation. This diff includes all the plumbing in Bridge and Bridgeless to route `createRuntimeAgent()` calls to the right place - ending up at `JSExecutor::createRuntimeAgent()` and `JSIRuntimeHolder::createInspectorAgent` respectively - at which point we currently return `nullptr` to signify that JS debugging isn't supported. ## Next steps In upcoming diffs we'll add concrete implementations of `RuntimeAgent`, and teach both Bridge and Bridgeless to create them as appropriate: * `HermesRuntimeAgent` for Hermes * `FallbackRuntimeAgent` for all other JS engines (JSI or not) We'll also (likely) add assertions to ensure that any JSI runtime that reports itself as "inspectable" (a flag used to control some of the in-app debugging UI) comes with a non-default `createRuntimeAgent()` implementation. We avoid this for now to prevent crashing the modern backend on Hermes. NOTE: Like the rest of the modern CDP backend, the `RuntimeAgent` API is 100% experimental and subject to change without notice. A *future* version of this API will allow out-of-tree JSI engines to integrate with the modern CDP backend. Either way, it is intended strictly for the use case of integrating with a JS engine, not for adding any other framework-level CDP functionality. Reviewed By: huntie Differential Revision: D51231326 fbshipit-source-id: 81e87c5134df73cc4aac0f9d5793a5236b5720d6
66 lines
2.6 KiB
Ruby
66 lines
2.6 KiB
Ruby
# 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"
|
||
|
||
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 if system("git rev-parse --git-dir > /dev/null 2>&1")
|
||
else
|
||
source[:tag] = "v#{version}"
|
||
end
|
||
|
||
folly_config = get_folly_config()
|
||
folly_compiler_flags = folly_config[:compiler_flags]
|
||
folly_version = folly_config[:version]
|
||
socket_rocket_version = '0.7.0'
|
||
|
||
header_search_paths = [
|
||
"\"$(PODS_ROOT)/boost\"",
|
||
"\"$(PODS_TARGET_SRCROOT)/React/CoreModules\"",
|
||
"\"$(PODS_ROOT)/RCT-Folly\"",
|
||
"\"$(PODS_ROOT)/DoubleConversion\"",
|
||
"\"$(PODS_ROOT)/fmt/include\"",
|
||
"\"${PODS_ROOT}/Headers/Public/React-Codegen/react/renderer/components\"",
|
||
]
|
||
|
||
Pod::Spec.new do |s|
|
||
s.name = "React-CoreModules"
|
||
s.version = version
|
||
s.summary = "-" # TODO
|
||
s.homepage = "https://reactnative.dev/"
|
||
s.license = package["license"]
|
||
s.author = "Meta Platforms, Inc. and its affiliates"
|
||
s.platforms = min_supported_versions
|
||
s.compiler_flags = folly_compiler_flags + ' -Wno-nullability-completeness'
|
||
s.source = source
|
||
s.source_files = "**/*.{c,m,mm,cpp}"
|
||
s.header_dir = "CoreModules"
|
||
s.pod_target_xcconfig = {
|
||
"USE_HEADERMAP" => "YES",
|
||
"CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
|
||
"HEADER_SEARCH_PATHS" => header_search_paths.join(" ")
|
||
}
|
||
s.framework = "UIKit"
|
||
s.dependency "DoubleConversion"
|
||
s.dependency "fmt", "9.1.0"
|
||
s.dependency "RCT-Folly", folly_version
|
||
s.dependency "RCTTypeSafety", version
|
||
s.dependency "React-Core/CoreModulesHeaders", version
|
||
s.dependency "React-RCTImage", version
|
||
s.dependency "React-jsi", version
|
||
s.dependency 'React-RCTBlob'
|
||
s.dependency "SocketRocket", socket_rocket_version
|
||
add_dependency(s, "React-jsinspector", :framework_name => 'jsinspector_modern')
|
||
|
||
add_dependency(s, "React-Codegen")
|
||
add_dependency(s, "ReactCommon", :subspec => "turbomodule/core", :additional_framework_paths => ["react/nativemodule/core"])
|
||
add_dependency(s, "React-NativeModulesApple")
|
||
end
|