react_native_pods.rb 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. # Copyright (c) Facebook, Inc. and its 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. def use_react_native! (options={})
  6. # The prefix to the react-native
  7. prefix = options[:path] ||= "../RNCo../RNCo../RNCo../RNCode/node_modules/react-native"
  8. # Include Fabric dependencies
  9. fabric_enabled = options[:fabric_enabled] ||= false
  10. # Include DevSupport dependency
  11. production = options[:production] ||= false
  12. # The Pods which should be included in all projects
  13. pod 'FBLazyVector', :path => "#{prefix}/Libraries/FBLazyVector"
  14. pod 'FBReactNativeSpec', :path => "#{prefix}/Libraries/FBReactNativeSpec"
  15. pod 'RCTRequired', :path => "#{prefix}/Libraries/RCTRequired"
  16. pod 'RCTTypeSafety', :path => "#{prefix}/Libraries/TypeSafety"
  17. pod 'React', :path => "#{prefix}/"
  18. pod 'React-Core', :path => "#{prefix}/"
  19. pod 'React-CoreModules', :path => "#{prefix}/React/CoreModules"
  20. pod 'React-RCTActionSheet', :path => "#{prefix}/Libraries/ActionSheetIOS"
  21. pod 'React-RCTAnimation', :path => "#{prefix}/Libraries/NativeAnimation"
  22. pod 'React-RCTBlob', :path => "#{prefix}/Libraries/Blob"
  23. pod 'React-RCTImage', :path => "#{prefix}/Libraries/Image"
  24. pod 'React-RCTLinking', :path => "#{prefix}/Libraries/LinkingIOS"
  25. pod 'React-RCTNetwork', :path => "#{prefix}/Libraries/Network"
  26. pod 'React-RCTSettings', :path => "#{prefix}/Libraries/Settings"
  27. pod 'React-RCTText', :path => "#{prefix}/Libraries/Text"
  28. pod 'React-RCTVibration', :path => "#{prefix}/Libraries/Vibration"
  29. pod 'React-Core/RCTWebSocket', :path => "#{prefix}/"
  30. unless production
  31. pod 'React-Core/DevSupport', :path => "#{prefix}/"
  32. end
  33. pod 'React-cxxreact', :path => "#{prefix}/ReactCommon/cxxreact"
  34. pod 'React-jsi', :path => "#{prefix}/ReactCommon/jsi"
  35. pod 'React-jsiexecutor', :path => "#{prefix}/ReactCommon/jsiexecutor"
  36. pod 'React-jsinspector', :path => "#{prefix}/ReactCommon/jsinspector"
  37. pod 'React-callinvoker', :path => "#{prefix}/ReactCommon/callinvoker"
  38. pod 'ReactCommon/turbomodule/core', :path => "#{prefix}/ReactCommon"
  39. pod 'Yoga', :path => "#{prefix}/ReactCommon/yoga", :modular_headers => true
  40. pod 'DoubleConversion', :podspec => "#{prefix}/third-party-podspecs/DoubleConversion.podspec"
  41. pod 'glog', :podspec => "#{prefix}/third-party-podspecs/glog.podspec"
  42. pod 'Folly', :podspec => "#{prefix}/third-party-podspecs/Folly.podspec"
  43. if fabric_enabled
  44. pod 'React-Fabric', :path => "#{prefix}/ReactCommon"
  45. pod 'React-graphics', :path => "#{prefix}/ReactCommon/fabric/graphics"
  46. pod 'React-jsi/Fabric', :path => "#{prefix}/ReactCommon/jsi"
  47. pod 'React-RCTFabric', :path => "#{prefix}/React"
  48. pod 'Folly/Fabric', :podspec => "#{prefix}/third-party-podspecs/Folly.podspec"
  49. end
  50. end
  51. def use_flipper!(versions = {}, configurations: ['Debug'])
  52. versions['Flipper'] ||= '~> 0.54.0'
  53. versions['Flipper-DoubleConversion'] ||= '1.1.7'
  54. versions['Flipper-Folly'] ||= '~> 2.2'
  55. versions['Flipper-Glog'] ||= '0.3.6'
  56. versions['Flipper-PeerTalk'] ||= '~> 0.0.4'
  57. versions['Flipper-RSocket'] ||= '~> 1.1'
  58. pod 'FlipperKit', versions['Flipper'], :configurations => configurations
  59. pod 'FlipperKit/FlipperKitLayoutPlugin', versions['Flipper'], :configurations => configurations
  60. pod 'FlipperKit/SKIOSNetworkPlugin', versions['Flipper'], :configurations => configurations
  61. pod 'FlipperKit/FlipperKitUserDefaultsPlugin', versions['Flipper'], :configurations => configurations
  62. pod 'FlipperKit/FlipperKitReactPlugin', versions['Flipper'], :configurations => configurations
  63. # List all transitive dependencies for FlipperKit pods
  64. # to avoid them being linked in Release builds
  65. pod 'Flipper', versions['Flipper'], :configurations => configurations
  66. pod 'Flipper-DoubleConversion', versions['Flipper-DoubleConversion'], :configurations => configurations
  67. pod 'Flipper-Folly', versions['Flipper-Folly'], :configurations => configurations
  68. pod 'Flipper-Glog', versions['Flipper-Glog'], :configurations => configurations
  69. pod 'Flipper-PeerTalk', versions['Flipper-PeerTalk'], :configurations => configurations
  70. pod 'Flipper-RSocket', versions['Flipper-RSocket'], :configurations => configurations
  71. pod 'FlipperKit/Core', versions['Flipper'], :configurations => configurations
  72. pod 'FlipperKit/CppBridge', versions['Flipper'], :configurations => configurations
  73. pod 'FlipperKit/FBCxxFollyDynamicConvert', versions['Flipper'], :configurations => configurations
  74. pod 'FlipperKit/FBDefines', versions['Flipper'], :configurations => configurations
  75. pod 'FlipperKit/FKPortForwarding', versions['Flipper'], :configurations => configurations
  76. pod 'FlipperKit/FlipperKitHighlightOverlay', versions['Flipper'], :configurations => configurations
  77. pod 'FlipperKit/FlipperKitLayoutTextSearchable', versions['Flipper'], :configurations => configurations
  78. pod 'FlipperKit/FlipperKitNetworkPlugin', versions['Flipper'], :configurations => configurations
  79. end
  80. # Post Install processing for Flipper
  81. def flipper_post_install(installer)
  82. installer.pods_project.targets.each do |target|
  83. if target.name == 'YogaKit'
  84. target.build_configurations.each do |config|
  85. config.build_settings['SWIFT_VERSION'] = '4.1'
  86. end
  87. end
  88. end
  89. end