cocoapods-spm 0.1.0 → 0.1.1

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: 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