cocoapods-spm 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 82ee497116a843f58d7c720e348099991ffa073f2666496fab41c807197c8e60
4
- data.tar.gz: c057825ee4c7e194d2a45c76373e280090fd175611be45dc456d756cb5997f1f
3
+ metadata.gz: b31c9b35087187bc68aa7537abeb5fec4fb45e496c767382b8b8300ebadebf30
4
+ data.tar.gz: fa9dcb1a770f7aeb42db04739bc81ae9ff52c9e0fffe0368e7769f36e1b99977
5
5
  SHA512:
6
- metadata.gz: 682233630b82af675249d02cebbb97df63887741b27b0c2036ca05d3b762f3ea8e9c58020dca8a09c58889e907e33d3316c8565ee9c102b7d27b0b6cf6f86fe3
7
- data.tar.gz: '070698bb276319f11d4a133276cc3b4e4694770f07bfc52c946409130f4b0b22516f500e00294a6185b6e4edbc62b25fe3cc6b5be6b841dda824036a8cb41efb'
6
+ metadata.gz: e644e4b8ba131f6eac0694ee25548e85f0782fadc794d68c944a18c969671f175aa14baaa0928b31cbbdbea0a8b3e14cd8ca01fb78022d8b4db1a66f676758e7
7
+ data.tar.gz: ea77387bf7c1e8ecb35fc00693450d0456b3535490561c4012397ab347127381719038d3ce6de88b529ba3966645d40d9d42adc8e5481763006f731f0c4e82d2
@@ -62,6 +62,9 @@ module Pod
62
62
  hash = update.call(target, setting, config)
63
63
  setting.xcconfig.merge!(hash)
64
64
  setting.generate.merge!(hash)
65
+ Installer::Xcode::PodsProjectGenerator::TargetInstallerHelper.update_changed_file(
66
+ setting, target.xcconfig_path(config)
67
+ )
65
68
  end
66
69
 
67
70
  pod_targets.each do |target|
@@ -32,7 +32,7 @@ module Pod
32
32
  end
33
33
 
34
34
  def update_other_swift_flags
35
- return unless spm_config.macros
35
+ return if spm_config.all_macros.empty?
36
36
 
37
37
  # For prebuilt macros
38
38
  perform_settings_update(
@@ -43,7 +43,7 @@ module Pod
43
43
  end
44
44
 
45
45
  def update_linker_flags
46
- return unless @spm_analyzer.spm_pkgs
46
+ return if @spm_analyzer.spm_pkgs.empty?
47
47
 
48
48
  # For packages to work in the main target
49
49
  perform_settings_update(
@@ -65,7 +65,7 @@ module Pod
65
65
  end
66
66
 
67
67
  def update_swift_include_paths
68
- return unless @spm_analyzer.spm_pkgs
68
+ return if @spm_analyzer.spm_pkgs.empty?
69
69
 
70
70
  # For macro packages
71
71
  perform_settings_update(
@@ -1,3 +1,5 @@
1
+ require "cocoapods-spm/installer/validator"
2
+
1
3
  module Pod
2
4
  class Installer
3
5
  class SPMAnalyzer
@@ -13,6 +15,7 @@ module Pod
13
15
  def analyze
14
16
  analyze_spm_pkgs
15
17
  analyze_spm_dependencies_by_target
18
+ validate!
16
19
  end
17
20
 
18
21
  def spm_dependencies_for(target)
@@ -64,6 +67,11 @@ module Pod
64
67
  @_spm_pkgs_by_name ||= @spm_pkgs.to_h { |pkg| [pkg.name, pkg] }
65
68
  @_spm_pkgs_by_name[name]
66
69
  end
70
+
71
+ def validate!
72
+ validator = SPMValidator.new(@aggregate_targets, @spm_pkgs, @spm_dependencies_by_target)
73
+ validator.validate!
74
+ end
67
75
  end
68
76
  end
69
77
  end
@@ -0,0 +1,32 @@
1
+ module Pod
2
+ class Installer
3
+ class SPMValidator
4
+ def initialize(aggregate_targets, spm_pkgs, spm_dependencies_by_target)
5
+ @aggregate_targets = aggregate_targets
6
+ @spm_pkgs = spm_pkgs
7
+ @spm_dependencies_by_target = spm_dependencies_by_target
8
+ end
9
+
10
+ def validate!
11
+ verify_no_missing_pkgs
12
+ end
13
+
14
+ private
15
+
16
+ def dependents_of_pkg(name)
17
+ @specs ||= @aggregate_targets.flat_map(&:specs).uniq
18
+ @specs.select { |s| s.spm_dependencies.any? { |d| d.name == name } }.map(&:name)
19
+ end
20
+
21
+ def verify_no_missing_pkgs
22
+ missing_pkgs = @spm_dependencies_by_target.values.flatten.select { |d| d.pkg.nil? }.map(&:name).uniq
23
+ return if missing_pkgs.empty?
24
+
25
+ messages = ["The following packages were not declared in Podfile:"]
26
+ messages += missing_pkgs.map { |pkg| " • #{pkg}: used by #{dependents_of_pkg(pkg).join(', ')}" }
27
+ messages << "Use the `spm_pkg` method to declare those packages in Podfile."
28
+ raise Informative, messages.join("\n")
29
+ end
30
+ end
31
+ end
32
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-spm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thuyen Trinh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-30 00:00:00.000000000 Z
11
+ date: 2024-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xcodeproj
@@ -46,8 +46,9 @@ files:
46
46
  - lib/cocoapods-spm/hooks/base.rb
47
47
  - lib/cocoapods-spm/hooks/post_integrate/add_spm_pkgs.rb
48
48
  - lib/cocoapods-spm/hooks/post_integrate/update_embed_frameworks_script.rb
49
- - lib/cocoapods-spm/hooks/pre_integrate/update_settings.rb
49
+ - lib/cocoapods-spm/hooks/post_integrate/update_settings.rb
50
50
  - lib/cocoapods-spm/installer/analyzer.rb
51
+ - lib/cocoapods-spm/installer/validator.rb
51
52
  - lib/cocoapods-spm/macro/fetcher.rb
52
53
  - lib/cocoapods-spm/macro/pod_installer.rb
53
54
  - lib/cocoapods-spm/macro/prebuilder.rb
@@ -75,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
76
  - !ruby/object:Gem::Version
76
77
  version: '0'
77
78
  requirements: []
78
- rubygems_version: 3.1.6
79
+ rubygems_version: 3.2.33
79
80
  signing_key:
80
81
  specification_version: 4
81
82
  summary: CocoaPods plugin to add SPM dependencies to CocoaPods targets