Skip to content

Commit 47d7297

Browse files
sammy-SCfacebook-github-bot
authored andcommitted
Make React-utils its own pod (#37659)
Summary: Pull Request resolved: #37659 Differential Revision: D46358021 fbshipit-source-id: 43332bbe51270969e6ac79a6a980aa59e2bacd11
1 parent ec91cca commit 47d7297

File tree

10 files changed

+130
-30
lines changed

10 files changed

+130
-30
lines changed

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
@@ -43,6 +43,7 @@ if ENV['USE_FRAMEWORKS']
4343
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\""
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\""
46+
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers\""
4647
end
4748

4849
Pod::Spec.new do |s|
@@ -79,6 +80,7 @@ Pod::Spec.new do |s|
7980
s.dependency "Yoga"
8081
s.dependency "React-RCTText"
8182
s.dependency "React-FabricImage"
83+
s.dependency "React-utils"
8284

8385
if ENV["USE_HERMES"] == nil || ENV["USE_HERMES"] == "1"
8486
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
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: 2 additions & 1 deletion
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
@@ -596,6 +596,7 @@ def get_podspec_when_use_frameworks
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: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ def get_react_codegen_spec(package_json_file, folly_version: '2021.07.22.00', fa
142142
'React-graphics': [],
143143
'React-Fabric': [],
144144
'React-debug': [],
145+
'React-utils': [],
145146
});
146147
end
147148

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)