Class: Pod::SPM::Hook::AddSpmPkgs

Inherits:
Pod::SPM::Hook show all
Defined in:
lib/cocoapods-spm/hooks/post_integrate/1.add_spm_pkgs.rb

Instance Method Summary collapse

Methods inherited from Pod::SPM::Hook

#aggregate_targets, #config, #initialize, #perform_settings_update, #pod_target_subprojects, #pod_targets, #podfile, #pods_project, #projects_to_integrate, run_hooks, #sandbox, #user_build_configurations

Methods included from Config::SPMConfigMixin

#local_macro_pod?, #local_macro_pod_dir, #macro_pods, #spm_config

Methods included from Config::PodConfigMixin

#pod_config

Methods included from Config::ProjectConfigMixin

#project_config

Constructor Details

This class inherits a constructor from Pod::SPM::Hook

Instance Method Details

#runObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/cocoapods-spm/hooks/post_integrate/1.add_spm_pkgs.rb', line 8

def run
  return if @spm_resolver.result.spm_pkgs.empty?

  projects_to_integrate.compact.each do |project|
    spm_pkg_refs = {}
    project.targets.each do |target|
      @spm_resolver.result.spm_dependencies_for(target).each do |dep|
        pkg_ref = dep.pkg.create_pkg_ref(project)
        target_dep_ref = pkg_ref.create_target_dependency_ref(dep.product)
        target.dependencies << target_dep_ref
        target.package_product_dependencies << target_dep_ref.product_ref if dep.pkg.use_default_xcode_linking?
        spm_pkg_refs.store(dep.pkg.name, pkg_ref)
      end
    end
    spm_pkg_refs.each_value do |pkg_ref|
      project.root_object.package_references << pkg_ref
    end
    project.save
  end
end