pod-builder 4.4.1 → 4.4.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3b61237b9ba9ce8a64c815e9802ded560720e61fd602cbcba5a0e527350940c
4
- data.tar.gz: 738482aa4ba2c93fd51f7461b3fdbd12527877249eb9f5f3537fbc4f32a5a12b
3
+ metadata.gz: b997b0b093cce5c58a5b3f7b169bc9c0bf56f7bf45c4305677d5225bcb601fde
4
+ data.tar.gz: 0dd7183f48fcb9cee574f52b07f1879d027546eaf73f4994455c10c44d4baa9a
5
5
  SHA512:
6
- metadata.gz: 92de40ca5a513bf4c7d4f9cbdd36f3fe4550bef9ee400473f567377c2f9f7041f90afddf98cad2c7aabe64e62eb95ba953024a1c7c93f09f5d965e4adb6f173e
7
- data.tar.gz: 4470fbee9ac31820c71a8892a027151474dc358b9c5a5b02ca25ac8def663ddc248284c6281b6271b83e40f42256f0648bc100ebb4153ca5a14a4530579e808a
6
+ metadata.gz: 66f9bf382df640e48f48511d92b78459ffb55a00b66569143b22aa3731393477531c4519911556da40be04cd95a0b31ce68c3d17bb443234e733267b49ef638e
7
+ data.tar.gz: ad206eebf7ccf4e21d0d5bc990a70bcfb34877863741621f2b0fc545c737991b20baf39aef09791fc114dadfecd1378d065d3ce16163d69ef7c893d9c620cc3b
data/README.md CHANGED
@@ -71,6 +71,7 @@ PodBuilder comes with a rich set of commands:
71
71
  - `restore_all`: rebuilts all pods declared in the Restore-Podfile file
72
72
  - `install_sources`: installs sources of pods to debug into prebuild frameworks
73
73
  - `switch`: switch between prebuilt, development or standard pod in the Application-Podfile
74
+ - `switch_all`: switch all pods between prebuilt, development or standard in the Application-Podfile
74
75
  - `clean`: removes unused prebuilt frameworks, dSYMs and source files added by install_sources
75
76
  - `sync_podfile`: updates the Application-Podfile with all pods declared in the PodBuilder-Podfile file
76
77
  - `info`: outputs json-formatted information reflecting the current status of prebuilt pods
@@ -158,6 +159,10 @@ To support development pods you should specify the path(s) that contain the pods
158
159
 
159
160
  PodBuilder will automatically determine the proper path when switching a particular pod.
160
161
 
162
+ #### `switch_all` command
163
+
164
+ As `switch` but will switch all pods defined in PodBuilder-Podfile.
165
+
161
166
  #### `clean` command
162
167
 
163
168
  Deletes all unused files by PodBuilder, including .frameworks, .dSYMs and _Source_ repos.
data/exe/pod_builder CHANGED
@@ -41,6 +41,7 @@ Command:
41
41
  + install_sources Install sources of pods to debug into prebuilt items
42
42
  + generate_lldbinit Generate an lldbinit file with setting target.source-map to debug prebuilt items
43
43
  + switch Switch between prebuilt/development/standard pod in the Application-Podfile
44
+ + switch_all Switch all pods between prebuilt/development/standard in the Application-Podfile
44
45
  + clean Remove prebuild items, dSYMs and source files added by `install_sources` command that are no longer in the PodBuilder-Podfile
45
46
  + sync_podfile Update your Application-Podfile with all pods declared in the PodBuilder-Podfile
46
47
  + info Print json-formatted informations about prebuilt items
@@ -316,6 +317,41 @@ Options:
316
317
  ]
317
318
  },
318
319
 
320
+ "switch_all" => {
321
+ :opts => OptionParser.new do |opts|
322
+ opts.banner = "
323
+ Usage:
324
+
325
+ $ pod_builder switch_all [OPTIONS]
326
+
327
+ Switch all pods integration between prebuilt/development/default version.
328
+
329
+ Options:
330
+ "
331
+ opts.on("-p", "--prebuilt", "Use prebuilt") do |o|
332
+ OPTIONS[:switch_mode] = "prebuilt"
333
+ end
334
+ opts.on("-d", "--development", "Development pod") do |o|
335
+ OPTIONS[:switch_mode] = "development"
336
+ end
337
+ opts.on("-s", "--default", "Default version specified in PodBuilder-Podfile") do |o|
338
+ OPTIONS[:switch_mode] = "default"
339
+ end
340
+ opts.on("-c", "--child-deps", "Include dependencies of the specified <PODNAME...>") do |o|
341
+ OPTIONS[:resolve_child_dependencies] = true
342
+ end
343
+ opts.on("-r", "--parent-deps", "Include all pods that depend on the specified <PODNAME...>") do |o|
344
+ OPTIONS[:resolve_parent_dependencies] = true
345
+ end
346
+ opts.on("-u", "--skip-repo-update", "Skip CocoaPods repo update (only when passing --parent-deps") do |o|
347
+ OPTIONS[:update_repos] = false
348
+ end
349
+ end,
350
+ :call => [
351
+ PodBuilder::Command::SwitchAll
352
+ ]
353
+ },
354
+
319
355
  "sync_podfile" => {
320
356
  :opts => OptionParser.new do |opts|
321
357
  opts.banner = "
@@ -65,6 +65,10 @@ module PodBuilder
65
65
  source_path_rel_path,
66
66
  development_pods_config_rel_path]
67
67
 
68
+ if Configuration.react_native_project
69
+ git_ignores.push("build/")
70
+ end
71
+
68
72
  File.write("#{OPTIONS[:prebuild_path]}/.gitignore", git_ignores.join("\n"))
69
73
  end
70
74
 
@@ -141,7 +145,7 @@ module PodBuilder
141
145
  expected_header_search_path_prefix = "\"HEADER_SEARCH_PATHS\" => \""
142
146
  raise "\n\nExpected header search path entry not found\n".red unless content.include?(expected_header_search_path_prefix)
143
147
 
144
- content.sub!(expected_header_search_path_prefix, "#{expected_header_search_path_prefix}\\\"$(PODS_ROOT)/Headers/Public/Flipper-Folly\\\" ")
148
+ content.sub!(expected_header_search_path_prefix, "#{expected_header_search_path_prefix}\\\"$(PODS_ROOT)/Headers/Public/Flipper-Folly\\\" \\\"$(PODS_ROOT)/../build/generated/ios\\\" ")
145
149
  File.write(paths[0], content)
146
150
  end
147
151
  end
@@ -9,7 +9,22 @@ module PodBuilder
9
9
  PodBuilder::prepare_basepath
10
10
 
11
11
  argument_pods = ARGV.dup
12
-
12
+ switch_all = argument_pods.first == "*"
13
+
14
+ if switch_all
15
+ pods = []
16
+ podspecs = Dir.glob("#{PodBuilder::prebuiltpath}/**/*.podspec")
17
+ podspecs.each do |podspec|
18
+ spec = Pod::Specification.from_file(podspec)
19
+ podname = spec.attributes_hash["name"]
20
+ pods.push(podname)
21
+ end
22
+ argument_pods = pods
23
+ if OPTIONS[:switch_mode] == "development"
24
+ argument_pods.reject! { |pod_name| self.find_podspec(pod_name).nil? }
25
+ end
26
+ end
27
+
13
28
  unless argument_pods.count > 0
14
29
  return -1
15
30
  end
@@ -235,7 +250,7 @@ module PodBuilder
235
250
  if Pathname.new(path).relative?
236
251
  path = PodBuilder::basepath(path)
237
252
  end
238
- podspec_paths = Dir.glob(File.expand_path("#{path}/**/#{podname}*.podspec*"))
253
+ podspec_paths = Dir.glob(File.expand_path("#{path}/**/#{podname}.podspec"))
239
254
  podspec_paths.select! { |t| !t.include?("/Local Podspecs/") }
240
255
  podspec_paths.select! { |t| Dir.glob(File.join(File.dirname(t), "*")).count > 1 } # exclude podspec folder (which has one file per folder)
241
256
  if podspec_paths.count > 1
@@ -0,0 +1,15 @@
1
+ require 'pod_builder/core'
2
+
3
+ module PodBuilder
4
+ module Command
5
+ class SwitchAll
6
+ def self.call
7
+ Configuration.check_inited
8
+ PodBuilder::prepare_basepath
9
+
10
+ ARGV << "*"
11
+ return Command::Switch::call
12
+ end
13
+ end
14
+ end
15
+ end
@@ -9,6 +9,7 @@ require 'pod_builder/command/deintegrate'
9
9
  require 'pod_builder/command/generate_podspec'
10
10
  require 'pod_builder/command/install_sources'
11
11
  require 'pod_builder/command/switch'
12
+ require 'pod_builder/command/switch_all'
12
13
  require 'pod_builder/command/sync_podfile'
13
14
  require 'pod_builder/command/info'
14
15
  require 'pod_builder/command/generate_lldbinit'
@@ -176,6 +176,9 @@ module PodBuilder
176
176
  end
177
177
 
178
178
  PodBuilder::safe_rm_rf(basepath("Pods"))
179
+ if Configuration.react_native_project
180
+ PodBuilder::safe_rm_rf(basepath("build"))
181
+ end
179
182
  end
180
183
 
181
184
  def self.system_swift_version
@@ -198,8 +198,6 @@ module PodBuilder
198
198
  gitignored_files = PodBuilder::gitignoredfiles
199
199
 
200
200
  swift_version = PodBuilder::system_swift_version
201
-
202
- write_prebuilt_info_filename_gitattributes
203
201
 
204
202
  ret = Hash.new
205
203
  root_names = podfile_items.reject(&:is_prebuilt).map(&:root_name).uniq
@@ -441,14 +439,6 @@ module PodBuilder
441
439
  FileUtils.cp_r(PodBuilder::buildpath_dsympath, PodBuilder::basepath)
442
440
  end
443
441
  end
444
-
445
- def self.write_prebuilt_info_filename_gitattributes
446
- gitattributes_path = PodBuilder::basepath(".gitattributes")
447
- expected_attributes = ["#{Configuration.configuration_filename} binary"].join
448
- unless File.exists?(gitattributes_path) && File.read(gitattributes_path).include?(expected_attributes)
449
- File.write(gitattributes_path, expected_attributes, mode: 'a')
450
- end
451
- end
452
442
 
453
443
  def self.build_folder_hash_in_prebuilt_info_file(podfile_item)
454
444
  prebuilt_info_path = PodBuilder::prebuiltpath(File.join(podfile_item.root_name, Configuration.prebuilt_info_filename))
@@ -727,6 +727,15 @@ module PodBuilder
727
727
 
728
728
  def self.prepare_react_native_compilation_workarounds(podfile_content)
729
729
  return podfile_content + """
730
+
731
+ def prepare_rn_react_codegen
732
+ # Beginning with version 0.68.0 react native project compilation relies on some autogenerated files
733
+ # that are added to the React-Codegen target
734
+ source_path = \"#{PodBuilder::project_path}/build/generated/ios/.\"
735
+ destination_path = \"#{PodBuilder::basepath}/build/generated/ios\"
736
+ FileUtils.cp_r(source_path, destination_path)
737
+ end
738
+
730
739
  def prepare_rn_compilation_libevent
731
740
  path = \"Pods/libevent/include/event.h\"
732
741
  replace(path, \"#include <evutil.h>\", \"// #include <evutil.h>\")
@@ -745,11 +754,46 @@ def replace(path, find, replace)
745
754
  content = File.read(path).gsub(find, replace)
746
755
  File.write(path, content)
747
756
  end
748
- end
757
+ end
758
+
759
+ pre_install do |installer|
760
+ require 'json'
761
+
762
+ pods_path = \"#{PodBuilder::project_path}/Pods\"
763
+ j = JSON.parse(File.read(\"\#{pods_path}/Local Podspecs/FBReactNativeSpec.podspec.json\"))
764
+
765
+ output_files = j.dig(\"script_phases\", \"output_files\")
766
+
767
+ script_lines = j.dig(\"script_phases\", \"script\").split(\"\\n\")
768
+ script_lines.insert(0, \"export SCRIPT_OUTPUT_FILE_0=\\\"\#{output_files[0]}\\\"\")
769
+ script_lines.insert(0, \"export DERIVED_FILE_DIR=/tmp\")
770
+ script_lines.insert(0, \"export PODS_TARGET_SRCROOT=\\\"#{PodBuilder::project_path}/../node_modules/react-native/React/FBReactNativeSpec\\\"\")
771
+ script_lines.insert(0, \"export PODS_ROOT=\\\"\#{pods_path}\\\"\")
772
+
773
+ Dir.chdir(pods_path) do
774
+ cmd = script_lines.reject(&:blank?).join(\";\\n\")
775
+ system(cmd)
776
+ end
777
+ end
749
778
 
750
779
  post_install do |installer|
751
780
  prepare_rn_compilation_libevent()
752
781
  prepare_rn_flipper_module_redefinition()
782
+ prepare_rn_react_codegen()
783
+
784
+ installer.pods_project.targets.each do |target|
785
+ target.build_configurations.each do |config|
786
+ if target.name == 'React-Codegen'
787
+ config.build_settings['HEADER_SEARCH_PATHS'] = config.build_settings.fetch('HEADER_SEARCH_PATHS', []) + ['$(inherited)', '${PODS_ROOT}/Flipper-Folly', '${PODS_ROOT}/React-Core/ReactCommon', '$(PODS_ROOT)/React-Core/ReactCommon/react/renderer/graphics/platform/cxx', '$(PODS_ROOT)/React-Codegen/build/generated/ios']
788
+ end
789
+ if target.name == 'React-Core'
790
+ config.build_settings['HEADER_SEARCH_PATHS'] = config.build_settings.fetch('HEADER_SEARCH_PATHS', []) + ['$(inherited)', '${PODS_ROOT}/Flipper-Folly']
791
+ end
792
+ if target.name == 'React-CoreModules'
793
+ config.build_settings['HEADER_SEARCH_PATHS'] = config.build_settings.fetch('HEADER_SEARCH_PATHS', []) + ['$(inherited)', '${PODS_ROOT}/Flipper-Folly', '$(PODS_ROOT)/../build/generated/ios']
794
+ end
795
+ end
796
+ end
753
797
  end
754
798
  """
755
799
  end
@@ -1,3 +1,3 @@
1
1
  module PodBuilder
2
- VERSION = "4.4.1"
2
+ VERSION = "4.4.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pod-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.4.1
4
+ version: 4.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomas Camin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-31 00:00:00.000000000 Z
11
+ date: 2022-06-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -197,6 +197,7 @@ files:
197
197
  - lib/pod_builder/command/none.rb
198
198
  - lib/pod_builder/command/restore_all.rb
199
199
  - lib/pod_builder/command/switch.rb
200
+ - lib/pod_builder/command/switch_all.rb
200
201
  - lib/pod_builder/command/sync_podfile.rb
201
202
  - lib/pod_builder/command/update.rb
202
203
  - lib/pod_builder/configuration.rb