Class: Pod::DyInstaller::Xcode::PodsProjectGenerator::PodTargetInstaller

Inherits:
TargetInstaller
  • Object
show all
Defined in:
lib/pod/installer/xcode/pods_project_generator/pod_target_installer.rb

Overview

Creates the target for the Pods libraries in the Pods project and the relative support files.

Instance Attribute Summary collapse

Attributes inherited from TargetInstaller

#sandbox, #target

Instance Method Summary collapse

Methods inherited from TargetInstaller

#initialize

Constructor Details

This class inherits a constructor from Pod::DyInstaller::Xcode::PodsProjectGenerator::TargetInstaller

Instance Attribute Details

#umbrella_headers_by_dirHash<Pathname,Pathname>

Returns A hash of all umbrella headers, grouped by the directory the are stored in.

Returns:

  • (Hash<Pathname,Pathname>)

    A hash of all umbrella headers, grouped by the directory the are stored in



76
77
78
# File 'lib/pod/installer/xcode/pods_project_generator/pod_target_installer.rb', line 76

def umbrella_headers_by_dir
  @umbrella_headers_by_dir
end

Instance Method Details

#install!void

This method returns an undefined value.

Creates the target in the Pods project and the relative support files.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/pod/installer/xcode/pods_project_generator/pod_target_installer.rb', line 13

def install!
  unless target.should_build?
    add_resources_bundle_targets
    return
  end

  UI.message "- Installing target `#{target.name}` #{target.platform}" do
    add_target
    create_support_files_dir
    if target.contains_test_specifications?
      add_test_targets
      add_test_app_host_targets
    end
    add_resources_bundle_targets
    add_files_to_build_phases
    create_xcconfig_file
    create_test_xcconfig_files if target.contains_test_specifications?

    if target.defines_module?
      create_module_map do |generator|
        generator.headers.concat module_map_additional_headers
      end
      create_umbrella_header do |generator|
        file_accessors = target.file_accessors
        file_accessors = file_accessors.reject { |f| f.spec.test_specification? } if target.contains_test_specifications?
        generator.imports += if header_mappings_dir
                               file_accessors.flat_map(&:public_headers).map do |pathname|
                                 pathname.relative_path_from(header_mappings_dir)
                               end
                             else
                               file_accessors.flat_map(&:public_headers).map(&:basename)
                            end
      end
    end

    if target.requires_frameworks?
      unless target.static_framework?
        create_info_plist_file(target.info_plist_path, native_target, target.version, target.platform)
      end
      create_build_phase_to_symlink_header_folders
    elsif target.uses_swift?
      add_swift_static_library_compatibility_header_phase
    end

    unless skip_pch?(target.non_test_specs)
      path = target.prefix_header_path
      file_accessors = target.file_accessors.reject { |f| f.spec.test_specification? }
      create_prefix_header(path, file_accessors, target.platform, [native_target])
    end
    unless skip_pch?(target.test_specs)
      target.supported_test_types.each do |test_type|
        path = target.prefix_header_path_for_test_type(test_type)
        file_accessors = target.file_accessors.select { |f| f.spec.test_specification? }
        create_prefix_header(path, file_accessors, target.platform, target.test_native_targets)
      end
    end
    create_dummy_source
  end
end