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/47458 We are in a weird situation where React Native depends on some files that are generated by Codegen. Codegen runs in the user project, so those dependencies are not available to React Native if we try to build it in isolation. This is a problem and a blocker to prepare the prebuilds for iOS. This image show the changes we are introducing: On the right we have the current situation. On the left the new one. {F1954418630} ## Changelog: [Internal] - Generate React Native specific code inside React Native Reviewed By: cortinico, blakef Differential Revision: D65541505 fbshipit-source-id: 1412d7f23c4d2230b795af41f1e832c8a70d5859
57 lines
2.4 KiB
Ruby
57 lines
2.4 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]
|
||
|
||
header_search_paths = [
|
||
"\"$(PODS_ROOT)/RCT-Folly\"",
|
||
"\"${PODS_ROOT}/Headers/Public/ReactCodegen/react/renderer/components\"",
|
||
]
|
||
|
||
Pod::Spec.new do |s|
|
||
s.name = "React-RCTPushNotification"
|
||
s.version = version
|
||
s.summary = "A library for handling push notifications for your app, including permission handling and icon badge number."
|
||
s.homepage = "https://reactnative.dev/"
|
||
s.documentation_url = "https://reactnative.dev/docs/pushnotificationios"
|
||
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 = "*.{m,mm}"
|
||
s.preserve_paths = "package.json", "LICENSE", "LICENSE-docs"
|
||
s.header_dir = "RCTPushNotification"
|
||
s.pod_target_xcconfig = {
|
||
"USE_HEADERMAP" => "YES",
|
||
"CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
|
||
"HEADER_SEARCH_PATHS" => header_search_paths.join(' ')
|
||
}
|
||
s.framework = ["UIKit", "UserNotifications"]
|
||
|
||
s.dependency "RCTTypeSafety"
|
||
s.dependency "React-Core/RCTPushNotificationHeaders"
|
||
s.dependency "React-jsi"
|
||
|
||
add_dependency(s, "React-RCTFBReactNativeSpec")
|
||
add_dependency(s, "ReactCommon", :subspec => "turbomodule/core", :additional_framework_paths => ["react/nativemodule/core"])
|
||
add_dependency(s, "React-NativeModulesApple")
|
||
end
|