-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathreact-native-node-api.podspec
More file actions
51 lines (42 loc) · 2.04 KB
/
react-native-node-api.podspec
File metadata and controls
51 lines (42 loc) · 2.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
require "json"
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
require_relative "./scripts/patch-hermes"
NODE_PATH ||= `which node`.strip
CLI_COMMAND ||= "'#{NODE_PATH}' '#{File.join(__dir__, "dist/node/cli/run.js")}'"
COPY_FRAMEWORKS_COMMAND ||= "#{CLI_COMMAND} link --apple '#{Pod::Config.instance.installation_root}'"
# We need to run this now to ensure the xcframeworks are copied vendored_frameworks are considered
XCFRAMEWORKS_DIR ||= File.join(__dir__, "xcframeworks")
unless defined?(@xcframeworks_copied)
puts "Executing #{COPY_FRAMEWORKS_COMMAND}"
system(COPY_FRAMEWORKS_COMMAND) or raise "Failed to copy xcframeworks"
# Setting a flag to avoid running this command on every require
@xcframeworks_copied = true
end
Pod::Spec.new do |s|
s.name = package["name"]
s.version = package["version"]
s.summary = package["description"]
s.homepage = package["homepage"]
s.license = package["license"]
s.authors = package["author"]
s.platforms = { :ios => min_ios_version_supported }
s.source = { :git => "https://github.com/callstackincubator/react-native-node-api.git", :tag => "#{s.version}" }
s.source_files = "ios/**/*.{h,m,mm}", "cpp/**/*.{hpp,cpp,c,h}", "weak-node-api/include/*.h", "weak-node-api/*.hpp"
s.public_header_files = "weak-node-api/include/*.h"
s.vendored_frameworks = "auto-linked/apple/*.xcframework", "weak-node-api/weak-node-api.xcframework"
s.script_phase = {
:name => 'Copy Node-API xcframeworks',
:execution_position => :before_compile,
:script => <<-CMD
set -e
#{COPY_FRAMEWORKS_COMMAND}
CMD
}
# Use install_modules_dependencies helper to install the dependencies (requires React Native version >=0.71.0).
# See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.
if respond_to?(:install_modules_dependencies, true)
install_modules_dependencies(s)
else
raise "This version of React Native is too old for React Native Node-API."
end
end