cocoapods-spm 0.0.4 → 0.1.0
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 +4 -4
- data/lib/cocoapods-spm/def/spm_package.rb +27 -10
- data/lib/cocoapods-spm/executables.rb +9 -0
- data/lib/cocoapods-spm/hooks/base.rb +3 -2
- data/lib/cocoapods-spm/installer/analyzer.rb +6 -6
- data/lib/cocoapods-spm/macro/prebuilder.rb +14 -8
- data/lib/cocoapods-spm/main.rb +3 -0
- data/lib/cocoapods-spm/metadata.rb +5 -1
- data/lib/cocoapods-spm/patch/installer.rb +0 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 82ee497116a843f58d7c720e348099991ffa073f2666496fab41c807197c8e60
|
4
|
+
data.tar.gz: c057825ee4c7e194d2a45c76373e280090fd175611be45dc456d756cb5997f1f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 682233630b82af675249d02cebbb97df63887741b27b0c2036ca05d3b762f3ea8e9c58020dca8a09c58889e907e33d3316c8565ee9c102b7d27b0b6cf6f86fe3
|
7
|
+
data.tar.gz: '070698bb276319f11d4a133276cc3b4e4694770f07bfc52c946409130f4b0b22516f500e00294a6185b6e4edbc62b25fe3cc6b5be6b841dda824036a8cb41efb'
|
@@ -8,11 +8,28 @@ module Pod
|
|
8
8
|
|
9
9
|
def initialize(name, options = {})
|
10
10
|
@name = name
|
11
|
-
@
|
12
|
-
@
|
13
|
-
@
|
14
|
-
@
|
11
|
+
@_options = options
|
12
|
+
@relative_path = nil
|
13
|
+
@linkage = nil
|
14
|
+
@url = nil
|
15
|
+
@requirement = nil
|
16
|
+
parse_options(options)
|
17
|
+
end
|
18
|
+
|
19
|
+
def parse_options(options)
|
20
|
+
@url = options[:url] || options[:git]
|
15
21
|
@linkage = options[:linkage]
|
22
|
+
@relative_path = relative_path_from(options)
|
23
|
+
@requirement = requirement_from(options)
|
24
|
+
end
|
25
|
+
|
26
|
+
def relative_path_from(options)
|
27
|
+
if (relative_path = options[:relative_path])
|
28
|
+
relative_path
|
29
|
+
elsif (path = options[:path])
|
30
|
+
path = Pathname(path).expand_path
|
31
|
+
path.relative_path_from(File.absolute_path("Pods")).to_s
|
32
|
+
end
|
16
33
|
end
|
17
34
|
|
18
35
|
def inspect
|
@@ -24,7 +41,7 @@ module Pod
|
|
24
41
|
end
|
25
42
|
|
26
43
|
def to_dependencies
|
27
|
-
if (products = @
|
44
|
+
if (products = @_options[:products])
|
28
45
|
products.map { |product| Dependency.new(@name, product: product, pkg: self) }
|
29
46
|
else
|
30
47
|
[Dependency.new(@name, pkg: self)]
|
@@ -47,16 +64,16 @@ module Pod
|
|
47
64
|
private
|
48
65
|
|
49
66
|
def requirement_from(options)
|
50
|
-
if
|
51
|
-
|
52
|
-
|
67
|
+
return if @relative_path
|
68
|
+
|
69
|
+
if (requirement = options[:requirement])
|
70
|
+
requirement
|
71
|
+
elsif (version = options.delete(:version) || options.delete(:tag))
|
53
72
|
{ :kind => "exactVersion", :version => version }
|
54
73
|
elsif (branch = options.delete(:branch))
|
55
74
|
{ :kind => "branch", :branch => branch }
|
56
75
|
elsif (revision = options.delete(:commit))
|
57
76
|
{ :kind => "revision", :revision => revision }
|
58
|
-
elsif options[:relative_path]
|
59
|
-
nil
|
60
77
|
else
|
61
78
|
raise "Missing requirement for SPM package: #{name}"
|
62
79
|
end
|
@@ -45,8 +45,9 @@ module Pod
|
|
45
45
|
require f
|
46
46
|
id = File.basename(f, ".*")
|
47
47
|
cls_name = "Pod::SPM::Hook::#{id.camelize}"
|
48
|
-
UI.message "Running hook: #{cls_name}"
|
49
|
-
|
48
|
+
UI.message "- Running hook: #{cls_name}" do
|
49
|
+
cls_name.constantize.new(context, options).run
|
50
|
+
end
|
50
51
|
end
|
51
52
|
end
|
52
53
|
|
@@ -3,9 +3,9 @@ module Pod
|
|
3
3
|
class SPMAnalyzer
|
4
4
|
attr_reader :spm_pkgs, :spm_dependencies_by_target
|
5
5
|
|
6
|
-
def initialize(podfile,
|
6
|
+
def initialize(podfile, aggregate_targets)
|
7
7
|
@podfile = podfile
|
8
|
-
@
|
8
|
+
@aggregate_targets = aggregate_targets
|
9
9
|
@spm_pkgs = []
|
10
10
|
@spm_dependencies_by_target = {}
|
11
11
|
end
|
@@ -27,19 +27,19 @@ module Pod
|
|
27
27
|
|
28
28
|
def analyze_spm_dependencies_by_target
|
29
29
|
analyze_dependencies_for_targets
|
30
|
-
|
30
|
+
analyze_dependencies_for_aggregate_targets
|
31
31
|
@spm_dependencies_by_target.values.flatten.each { |d| d.pkg = spm_pkg_for(d.name) }
|
32
32
|
end
|
33
33
|
|
34
34
|
def analyze_dependencies_for_targets
|
35
|
-
specs = @
|
35
|
+
specs = @aggregate_targets.flat_map(&:specs).uniq
|
36
36
|
specs.each do |spec|
|
37
37
|
@spm_dependencies_by_target[spec.name] = spec.spm_dependencies
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
-
def
|
42
|
-
@
|
41
|
+
def analyze_dependencies_for_aggregate_targets
|
42
|
+
@aggregate_targets.each do |target|
|
43
43
|
spm_dependencies = target.specs.flat_map(&:spm_dependencies)
|
44
44
|
@spm_dependencies_by_target[target.to_s] = merge_spm_dependencies(spm_dependencies)
|
45
45
|
end
|
@@ -4,6 +4,7 @@ module Pod
|
|
4
4
|
module SPM
|
5
5
|
class MacroPrebuilder
|
6
6
|
include Config::Mixin
|
7
|
+
include Executables
|
7
8
|
|
8
9
|
attr_reader :name
|
9
10
|
|
@@ -36,12 +37,13 @@ module Pod
|
|
36
37
|
raise "Package.swift not exist in #{macro_downloaded_dir}" \
|
37
38
|
unless (macro_downloaded_dir / "Package.swift").exist?
|
38
39
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
40
|
+
UI.message "Generating metadata at: #{metadata_path}" do
|
41
|
+
raw = Dir.chdir(macro_downloaded_dir) do
|
42
|
+
swift! ["package", "dump-package"]
|
43
|
+
end
|
44
|
+
metadata_path.write(raw)
|
45
|
+
@metadata = Metadata.from_s(raw)
|
46
|
+
end
|
45
47
|
end
|
46
48
|
|
47
49
|
def prebuild_macro_impl
|
@@ -51,8 +53,12 @@ module Pod
|
|
51
53
|
impl_module_name = @metadata.macro_impl_name
|
52
54
|
return if spm_config.dont_prebuild_macros_if_exist? && (macro_prebuilt_dir / config / impl_module_name).exist?
|
53
55
|
|
54
|
-
UI.
|
55
|
-
|
56
|
+
UI.section "Building macro implementation: #{impl_module_name} (#{config})...".green do
|
57
|
+
Dir.chdir(macro_downloaded_dir) do
|
58
|
+
swift! ["build", "-c", config, "--product", impl_module_name]
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
56
62
|
(macro_prebuilt_dir / config).mkpath
|
57
63
|
FileUtils.copy_entry(
|
58
64
|
macro_downloaded_dir / ".build" / config / impl_module_name,
|
data/lib/cocoapods-spm/main.rb
CHANGED
@@ -55,7 +55,6 @@ module Pod
|
|
55
55
|
end
|
56
56
|
|
57
57
|
def resolve_spm_dependencies
|
58
|
-
# TODO: convert aggregate_targets to umbrella_targets?
|
59
58
|
UI.section "Analyzing SPM dependencies" do
|
60
59
|
@spm_analyzer ||= Pod::Installer::SPMAnalyzer.new(podfile, aggregate_targets)
|
61
60
|
@spm_analyzer.analyze
|
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.0
|
4
|
+
version: 0.1.0
|
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-
|
11
|
+
date: 2023-12-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xcodeproj
|
@@ -42,6 +42,7 @@ files:
|
|
42
42
|
- lib/cocoapods-spm/def/spm_package.rb
|
43
43
|
- lib/cocoapods-spm/def/target_definition.rb
|
44
44
|
- lib/cocoapods-spm/def/xcodeproj.rb
|
45
|
+
- lib/cocoapods-spm/executables.rb
|
45
46
|
- lib/cocoapods-spm/hooks/base.rb
|
46
47
|
- lib/cocoapods-spm/hooks/post_integrate/add_spm_pkgs.rb
|
47
48
|
- lib/cocoapods-spm/hooks/post_integrate/update_embed_frameworks_script.rb
|