Skip to content

Commit 720ab2e

Browse files
sammy-SCfacebook-github-bot
authored andcommitted
Make React-utils its own pod (#37659)
Summary: Pull Request resolved: #37659 To better align with how BUCK is setup internally, let's make React utils its own pod. Differential Revision: D46358021 fbshipit-source-id: e99666a282ab8ef2c8605d02145ca825faccde8d
1 parent 0191d16 commit 720ab2e

File tree

12 files changed

+139
-33
lines changed

12 files changed

+139
-33
lines changed

packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ header_search_paths = [
4949
"$(PODS_CONFIGURATION_BUILD_DIR)/React-NativeModulesApple/React_NativeModulesApple.framework/Headers",
5050
"$(PODS_CONFIGURATION_BUILD_DIR)/React-RCTFabric/RCTFabric.framework/Headers/",
5151
"$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers/",
52+
"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers/"
5253
] : []).map{|p| "\"#{p}\""}.join(" ")
5354

5455
Pod::Spec.new do |s|
@@ -93,6 +94,7 @@ Pod::Spec.new do |s|
9394
s.dependency "React-RCTFabric"
9495
s.dependency "React-graphics"
9596
s.dependency "React-debug"
97+
s.dependency "React-utils"
9698

9799
s.script_phases = {
98100
:name => "Generate Legacy Components Interop",

packages/react-native/React-Core.podspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ Pod::Spec.new do |s|
130130
s.dependency "React-perflogger", version
131131
s.dependency "React-jsi", version
132132
s.dependency "React-jsiexecutor", version
133+
s.dependency "React-utils"
133134
s.dependency "SocketRocket", socket_rocket_version
134135
s.dependency "Yoga"
135136
s.dependency "glog"

packages/react-native/React/React-RCTFabric.podspec

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ if ENV['USE_FRAMEWORKS']
4444
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-ImageManager/React_ImageManager.framework/Headers\""
4545
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\""
4646
header_search_paths << "\"$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers\""
47+
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers\""
4748
end
4849

4950
Pod::Spec.new do |s|
@@ -81,6 +82,7 @@ Pod::Spec.new do |s|
8182
s.dependency "React-RCTText"
8283
s.dependency "React-FabricImage"
8384
s.dependency "React-debug"
85+
s.dependency "React-utils"
8486

8587
if ENV["USE_HERMES"] == nil || ENV["USE_HERMES"] == "1"
8688
s.dependency "hermes-engine"

packages/react-native/ReactCommon/React-Fabric.podspec

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ Pod::Spec.new do |s|
5252
s.dependency "DoubleConversion"
5353
s.dependency "React-Core"
5454
s.dependency "React-debug"
55-
# s.dependency "React-utils"
55+
s.dependency "React-utils"
5656
# s.dependency "React-runtimescheduler"
5757
s.dependency "React-cxxreact"
5858

@@ -324,10 +324,4 @@ Pod::Spec.new do |s|
324324
ss.header_dir = "react/renderer/runtimescheduler"
325325
ss.pod_target_xcconfig = { "GCC_WARN_PEDANTIC" => "YES" }
326326
end
327-
328-
s.subspec "utils" do |ss|
329-
ss.source_files = "react/utils/*.{m,mm,cpp,h}"
330-
ss.header_dir = "react/utils"
331-
end
332-
333327
end

packages/react-native/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ Pod::Spec.new do |s|
4848
"\"$(PODS_ROOT)/DoubleConversion\"",
4949
"\"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers\"",
5050
"\"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\"",
51-
"\"$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers\""
51+
"\"$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers\"",
52+
"\"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers\""
5253
]
5354
end
5455

@@ -63,5 +64,6 @@ Pod::Spec.new do |s|
6364
s.dependency "React-Core/Default"
6465
s.dependency "React-RCTImage"
6566
s.dependency "React-debug"
67+
s.dependency "React-utils"
6668
s.dependency "glog"
6769
end
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Copyright (c) Meta Platforms, Inc. and affiliates.
2+
#
3+
# This source code is licensed under the MIT license found in the
4+
# LICENSE file in the root directory of this source tree.
5+
6+
require "json"
7+
8+
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "..", "package.json")))
9+
version = package['version']
10+
11+
source = { :git => 'https://github.com/facebook/react-native.git' }
12+
if version == '1000.0.0'
13+
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
14+
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
15+
else
16+
source[:tag] = "v#{version}"
17+
end
18+
19+
folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
20+
folly_version = '2021.07.22.00'
21+
22+
header_search_paths = [
23+
"\"$(PODS_ROOT)/RCT-Folly\"",
24+
"\"$(PODS_TARGET_SRCROOT)\"",
25+
"\"$(PODS_TARGET_SRCROOT)/ReactCommon\"",
26+
]
27+
28+
if ENV["USE_FRAMEWORKS"]
29+
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-debug/React_debug.framework/Headers\""
30+
end
31+
32+
Pod::Spec.new do |s|
33+
s.name = "React-utils"
34+
s.version = version
35+
s.summary = "-" # TODO
36+
s.homepage = "https://reactnative.dev/"
37+
s.license = package["license"]
38+
s.author = "Meta Platforms, Inc. and its affiliates"
39+
s.platforms = { :ios => min_ios_version_supported }
40+
s.source = source
41+
s.source_files = "**/*.{cpp,h,mm}"
42+
s.compiler_flags = folly_compiler_flags
43+
s.header_dir = "react/utils"
44+
s.exclude_files = "tests"
45+
s.pod_target_xcconfig = {
46+
"CLANG_CXX_LANGUAGE_STANDARD" => "c++17",
47+
"HEADER_SEARCH_PATHS" => header_search_paths.join(' ')}
48+
49+
if ENV['USE_FRAMEWORKS']
50+
s.module_name = "React_utils"
51+
s.header_mappings_dir = "../.."
52+
end
53+
54+
s.dependency "RCT-Folly", folly_version
55+
s.dependency "React-debug"
56+
s.dependency "glog"
57+
end

packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,7 @@ def get_podspec_fabric_and_script_phases(script_phases)
578578
'React-rncore': [],
579579
'React-Fabric': [],
580580
'React-debug': [],
581-
581+
'React-utils': [],
582582
})
583583

584584
specs[:'script_phases'] = script_phases
@@ -590,12 +590,13 @@ def get_podspec_when_use_frameworks
590590
specs = get_podspec_no_fabric_no_script()
591591

592592
specs["pod_target_xcconfig"]["FRAMEWORK_SEARCH_PATHS"].concat([])
593-
specs["pod_target_xcconfig"]["HEADER_SEARCH_PATHS"].concat(" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_TARGET_SRCROOT)\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-Fabric/React_Fabric.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-FabricImage/React_FabricImage.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-graphics/React_graphics.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"$(PODS_CONFIGURATION_BUILD_DIR)/ReactCommon/ReactCommon.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-NativeModulesApple/React_NativeModulesApple.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-RCTFabric/RCTFabric.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers\"")
593+
specs["pod_target_xcconfig"]["HEADER_SEARCH_PATHS"].concat(" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_TARGET_SRCROOT)\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-Fabric/React_Fabric.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-FabricImage/React_FabricImage.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-graphics/React_graphics.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"$(PODS_CONFIGURATION_BUILD_DIR)/ReactCommon/ReactCommon.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-NativeModulesApple/React_NativeModulesApple.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-RCTFabric/RCTFabric.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers\"")
594594

595595
specs[:dependencies].merge!({
596596
'React-graphics': [],
597597
'React-Fabric': [],
598598
'React-debug': [],
599+
'React-utils': [],
599600
})
600601

601602
return specs

packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ def test_installModulesDependencies_whenNewArchEnabledAndNewArchAndNoSearchPaths
129129

130130
# Assert
131131
assert_equal(spec.compiler_flags, NewArchitectureHelper.folly_compiler_flags)
132-
assert_equal(spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/Headers/Private/Yoga\" \"$(PODS_ROOT)/DoubleConversion\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-FabricImage/React_FabricImage.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-debug/React_debug.framework/Headers\"")
132+
assert_equal(spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/Headers/Private/Yoga\" \"$(PODS_ROOT)/DoubleConversion\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-FabricImage/React_FabricImage.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-debug/React_debug.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers\"")
133133
assert_equal(spec.pod_target_xcconfig["CLANG_CXX_LANGUAGE_STANDARD"], "c++17")
134134
assert_equal(spec.pod_target_xcconfig["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DRCT_NEW_ARCH_ENABLED=1 -DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1")
135135
assert_equal(
@@ -149,6 +149,7 @@ def test_installModulesDependencies_whenNewArchEnabledAndNewArchAndNoSearchPaths
149149
{ :dependency_name => "React-Fabric" },
150150
{ :dependency_name => "React-graphics" },
151151
{ :dependency_name => "React-debug" },
152+
{ :dependency_name => "React-utils" },
152153
{ :dependency_name => "hermes-engine" }
153154
])
154155
end
@@ -167,7 +168,7 @@ def test_installModulesDependencies_whenNewArchDisabledAndSearchPathsAndCompiler
167168

168169
# Assert
169170
assert_equal(spec.compiler_flags, "-Wno-nullability-completeness #{NewArchitectureHelper.folly_compiler_flags}")
170-
assert_equal(spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], "#{other_flags} \"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/Headers/Private/Yoga\" \"$(PODS_ROOT)/DoubleConversion\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-FabricImage/React_FabricImage.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-debug/React_debug.framework/Headers\"")
171+
assert_equal(spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], "#{other_flags} \"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/Headers/Private/Yoga\" \"$(PODS_ROOT)/DoubleConversion\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-FabricImage/React_FabricImage.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-debug/React_debug.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers\"")
171172
assert_equal(spec.pod_target_xcconfig["CLANG_CXX_LANGUAGE_STANDARD"], "c++17")
172173
assert_equal(
173174
spec.dependencies,

packages/react-native/scripts/cocoapods/codegen_utils.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ def get_react_codegen_spec(package_json_file, folly_version: '2021.07.22.00', fa
101101
"\"$(PODS_CONFIGURATION_BUILD_DIR)/React-NativeModulesApple/React_NativeModulesApple.framework/Headers\"",
102102
"\"$(PODS_CONFIGURATION_BUILD_DIR)/React-RCTFabric/RCTFabric.framework/Headers\"",
103103
"\"$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers\"",
104+
"\"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers\""
104105
])
105106
end
106107

@@ -142,6 +143,7 @@ def get_react_codegen_spec(package_json_file, folly_version: '2021.07.22.00', fa
142143
'React-graphics': [],
143144
'React-Fabric': [],
144145
'React-debug': [],
146+
'React-utils': [],
145147
});
146148
end
147149

packages/react-native/scripts/cocoapods/new_architecture.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ def self.install_modules_dependencies(spec, new_arch_enabled, folly_version)
110110
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\""
111111
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\""
112112
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-debug/React_debug.framework/Headers\""
113+
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers\""
113114
end
114115
header_search_paths_string = header_search_paths.join(" ")
115116
spec.compiler_flags = compiler_flags.empty? ? @@folly_compiler_flags : "#{compiler_flags} #{@@folly_compiler_flags}"
@@ -137,6 +138,7 @@ def self.install_modules_dependencies(spec, new_arch_enabled, folly_version)
137138
spec.dependency "React-Fabric"
138139
spec.dependency "React-graphics"
139140
spec.dependency "React-debug"
141+
spec.dependency "React-utils"
140142

141143
if ENV["USE_HERMES"] == nil || ENV["USE_HERMES"] == "1"
142144
spec.dependency "hermes-engine"

packages/react-native/scripts/react_native_pods.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ def use_react_native! (
118118
pod 'React-rncore', :path => "#{prefix}/ReactCommon"
119119
pod 'React-cxxreact', :path => "#{prefix}/ReactCommon/cxxreact"
120120
pod 'React-debug', :path => "#{prefix}/ReactCommon/react/debug"
121+
pod 'React-utils', :path => "#{prefix}/ReactCommon/react/utils"
121122

122123
if hermes_enabled
123124
setup_hermes!(:react_native_path => prefix, :fabric_enabled => fabric_enabled)

0 commit comments

Comments
 (0)