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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b31c9b35087187bc68aa7537abeb5fec4fb45e496c767382b8b8300ebadebf30
|
4
|
+
data.tar.gz: fa9dcb1a770f7aeb42db04739bc81ae9ff52c9e0fffe0368e7769f36e1b99977
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
|
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
|
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.
|
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:
|
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/
|
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.
|
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
|