Class: Pod::Installer::Xcode::TargetValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/cocoapods-use-frameworks-dynamic-wrapper/cocoapods-use-frameworks-dynamic-wrapper.rb

Instance Method Summary collapse

Instance Method Details

#dynamic_wrapper_flush(pod_targets) ⇒ Object



54
55
56
57
58
59
60
61
62
63
# File 'lib/cocoapods-use-frameworks-dynamic-wrapper/cocoapods-use-frameworks-dynamic-wrapper.rb', line 54

def dynamic_wrapper_flush(pod_targets)
  pod_targets.each do |pod_target|
    pod_target.instance_variable_set(:@should_build, true)
    module_name = pod_target.root_spec.attributes_hash['module_name'] || pod_target.root_spec.attributes_hash['name']
    pod_target.root_spec.attributes_hash['module_name'] = module_name + '_dynamic_wrapper_pod'
    pod_target.build_settings.each_value do |setting|
      def setting.requires_objc_linker_flag?; true; end
    end
  end
end

#original_verify_no_static_framework_transitive_dependenciesObject



38
# File 'lib/cocoapods-use-frameworks-dynamic-wrapper/cocoapods-use-frameworks-dynamic-wrapper.rb', line 38

alias_method :original_verify_no_static_framework_transitive_dependencies, :verify_no_static_framework_transitive_dependencies

#verify_no_static_framework_transitive_dependenciesObject



39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/cocoapods-use-frameworks-dynamic-wrapper/cocoapods-use-frameworks-dynamic-wrapper.rb', line 39

def verify_no_static_framework_transitive_dependencies
  aggregate_targets.each do |aggregate_target|
    aggregate_target.user_build_configurations.each_key do |config|
      pod_targets = aggregate_target.pod_targets_for_build_configuration(config)
      built_targets, unbuilt_targets = pod_targets.partition(&:should_build?)
      dynamic_pod_targets = built_targets.select(&:build_as_dynamic?)
      dependencies = dynamic_pod_targets.flat_map(&:dependent_targets).uniq
      depended_upon_targets = unbuilt_targets & dependencies
      wrapper_targets = depended_upon_targets.select(&:should_dynamic_wrapper?)
      dynamic_wrapper_flush(wrapper_targets)
      original_verify_no_static_framework_transitive_dependencies
    end
  end
end