Class: Pod::SPM::Resolver::Result
- Inherits:
-
Object
- Object
- Pod::SPM::Resolver::Result
- Includes:
- Config::Mixin
- Defined in:
- lib/cocoapods-spm/resolver/result.rb
Direct Known Subclasses
Defined Under Namespace
Classes: WritableResult
Constant Summary collapse
- ATTRS =
{ :spm_pkgs => [], :spm_dependencies_by_target => {}, :project_pkgs => nil, }.freeze
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Result
constructor
A new instance of Result.
- #linker_flags_for(target) ⇒ Object
- #spm_dependencies_for(target) ⇒ Object
- #spm_pkgs_for(target) ⇒ Object
- #spm_targets_for(target, exclude_default_xcode_linking: true) ⇒ Object
Methods included from Config::SPMConfigMixin
Methods included from Config::PodConfigMixin
Methods included from Config::ProjectConfigMixin
Constructor Details
#initialize(options = {}) ⇒ Result
Returns a new instance of Result.
23 24 25 26 27 |
# File 'lib/cocoapods-spm/resolver/result.rb', line 23 def initialize( = {}) ATTRS.each do |k, v| instance_variable_set("@#{k}", [k] || v) end end |
Instance Method Details
#linker_flags_for(target) ⇒ Object
49 50 51 52 53 54 |
# File 'lib/cocoapods-spm/resolver/result.rb', line 49 def linker_flags_for(target) ( spm_targets_for(target).flat_map(&:linker_flags) + spm_pkgs_for(target).flat_map(&:linker_flags) ).uniq end |
#spm_dependencies_for(target) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/cocoapods-spm/resolver/result.rb', line 33 def spm_dependencies_for(target) filtered_dependencies = @spm_dependencies_by_target[spec_name_of(target)]&.reject do |dep| dep.pkg&.should_exclude_from_target?(target.name) end filtered_dependencies.to_a end |
#spm_pkgs_for(target) ⇒ Object
29 30 31 |
# File 'lib/cocoapods-spm/resolver/result.rb', line 29 def spm_pkgs_for(target) spm_dependencies_for(target).map(&:pkg).uniq(&:name) end |
#spm_targets_for(target, exclude_default_xcode_linking: true) ⇒ Object
40 41 42 43 44 45 46 47 |
# File 'lib/cocoapods-spm/resolver/result.rb', line 40 def spm_targets_for(target, exclude_default_xcode_linking: true) targets = spm_dependencies_for(target).flat_map do |d| project_pkgs.resolve_recursive_targets_of(d.pkg.name, d.product, platform: target.platform.name) end.uniq(&:name) return targets.reject(&:use_default_xcode_linking?) if exclude_default_xcode_linking targets end |