Class: Pod::Podfile::TargetDefinition
- Inherits:
-
Object
- Object
- Pod::Podfile::TargetDefinition
- Defined in:
- lib/cocoapods-core/podfile/target_definition.rb
Overview
The TargetDefinition stores the information of a CocoaPods static library. The target definition can be linked with one or more targets of the user project.
Target definitions can be nested and by default inherit the dependencies of the parent.
Attributes collapse
- PLATFORM_DEFAULTS =
————————————–#
{ :ios => '4.3', :osx => '10.6', :tvos => '9.0', :watchos => '2.0' }.freeze
Representations collapse
- HASH_KEYS =
Returns The keys used by the hash representation of the target definition.
%w( name platform podspecs exclusive link_with link_with_first_target inhibit_warnings use_modular_headers user_project_path build_configurations dependencies script_phases children configuration_pod_whitelist uses_frameworks swift_version_requirements inheritance abstract swift_version ).freeze
Instance Attribute Summary collapse
-
#children ⇒ Array<TargetDefinition>
readonly
The children target definitions.
-
#parent ⇒ TargetDefinition, Podfile
readonly
The parent target definition or the Podfile if the receiver is root.
Attributes collapse
-
#abstract=(abstract) ⇒ void
Sets whether this target definition is abstract.
-
#abstract? ⇒ Boolean
Whether this target definition is abstract.
-
#all_whitelisted_configurations ⇒ Array<String>
Unique list of all configurations for which pods have been whitelisted.
-
#build_configurations ⇒ Hash{String => symbol}
A hash where the keys are the name of the build configurations and the values a symbol that represents their type (‘:debug` or `:release`).
-
#build_configurations=(hash) ⇒ Hash{String => Symbol}, void
Sets the build configurations for this target.
-
#build_pod_as_module?(pod_name) ⇒ Bool
Whether the target definition should use modular headers for a single pod.
-
#exclusive? ⇒ Bool
Returns whether the target definition should inherit the dependencies of the parent.
-
#inheritance ⇒ String
The inheritance mode for this target definition.
-
#inheritance=(inheritance) ⇒ void
Sets the inheritance mode for this target definition.
-
#inhibit_all_warnings=(flag) ⇒ void
Sets whether the target definition should inhibit the warnings during compilation for all pods.
-
#inhibits_warnings_for_pod?(pod_name) ⇒ Bool
Whether the target definition should inhibit warnings for a single pod.
-
#matches_platform?(target_definition) ⇒ Boolean
Whether this target definition matches the platform of ‘target_definition`.
-
#name ⇒ String
The path of the project this target definition should link with.
-
#name=(name) ⇒ void
Sets the path of the user project this target definition should link with.
-
#platform ⇒ Platform
The platform of the target definition.
-
#pod_whitelisted_for_configuration?(pod_name, configuration_name) ⇒ Bool
Whether a specific pod should be linked to the target when building for a specific configuration.
-
#script_phases ⇒ Array<Hash>
The list of the script phases of the target definition.
-
#set_inhibit_warnings_for_pod(pod_name, should_inhibit) ⇒ void
Inhibits warnings for a specific pod during compilation.
-
#set_platform(name, target = nil) ⇒ void
Sets the platform of the target definition.
-
#set_platform!(name, target = nil) ⇒ void
Sets the platform of the target definition.
-
#set_use_modular_headers_for_pod(pod_name, flag) ⇒ void
Use modular headers for a specific pod during compilation.
-
#store_pod(name, *requirements) ⇒ void
Stores the dependency for a Pod with the given name.
-
#store_podspec(options = nil) ⇒ void
Stores the podspec whose dependencies should be included by the target.
-
#store_script_phase(options) ⇒ void
Stores the script phase to add for this target definition.
-
#store_swift_version_requirements(*requirements) ⇒ void
Stores the Swift version requirements to be used for this target.
-
#supports_swift_version?(swift_version) ⇒ Boolean
Queries the target if a version of Swift is supported or not.
-
#swift_version ⇒ String
The Swift version that the target definition should use.
-
#swift_version=(version) ⇒ void
Sets the Swift version that the target definition should use.
-
#swift_version_requirements ⇒ Array<String>
The Swift version requirements this target definition enforces.
-
#use_frameworks!(flag = true) ⇒ void
Sets whether the target definition should build a framework.
-
#use_modular_headers_for_all_pods=(flag) ⇒ void
Sets whether the target definition should use modular headers for all pods.
-
#use_modular_headers_hash ⇒ Hash<String, Array>
Returns the use_modular_headers hash pre-populated with default values.
-
#user_project_path ⇒ String
The path of the project this target definition should link with.
-
#user_project_path=(path) ⇒ void
Sets the path of the user project this target definition should link with.
-
#uses_frameworks? ⇒ Bool
Whether the target definition should build a framework.
-
#whitelist_pod_for_configuration(pod_name, configuration_name) ⇒ void
Whitelists a pod for a specific configuration.
Representations collapse
-
.from_hash(hash, parent) ⇒ TargetDefinition
Configures a new target definition from the given hash.
-
#to_hash ⇒ Hash
The hash representation of the target definition.
Instance Method Summary collapse
-
#dependencies ⇒ Array<Dependency>
The list of the dependencies of the target definition including the inherited ones.
-
#empty? ⇒ Bool
Whether the target definition has at least one dependency, excluding inherited ones.
-
#initialize(name, parent, internal_hash = nil) ⇒ TargetDefinition
constructor
A new instance of TargetDefinition.
-
#inspect ⇒ String
A string representation suitable for debug.
-
#label ⇒ String
(also: #to_s)
The label of the target definition according to its name.
-
#non_inherited_dependencies ⇒ Array
The list of the dependencies of the target definition, excluding inherited ones.
-
#podfile ⇒ Podfile
The podfile that contains the specification for this target definition.
-
#recursive_children ⇒ Array<TargetDefinition>
The targets definition descending from this one.
-
#root ⇒ TargetDefinition
The root target definition.
-
#root? ⇒ Bool
Whether the target definition is root.
-
#targets_to_inherit_search_paths ⇒ Array<TargetDefinition>
The targets from which this target definition should inherit only search paths.
Constructor Details
#initialize(name, parent, internal_hash = nil) ⇒ TargetDefinition
Returns a new instance of TargetDefinition.
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 22 def initialize(name, parent, internal_hash = nil) @internal_hash = internal_hash || {} @parent = parent @children = [] @label = nil self.name ||= name if parent.is_a?(TargetDefinition) parent.children << self end end |
Instance Attribute Details
#children ⇒ Array<TargetDefinition>
Returns the children target definitions.
35 36 37 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 35 def children @children end |
#parent ⇒ TargetDefinition, Podfile (readonly)
Returns the parent target definition or the Podfile if the receiver is root.
14 15 16 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 14 def parent @parent end |
Class Method Details
.from_hash(hash, parent) ⇒ TargetDefinition
Configures a new target definition from the given hash.
800 801 802 803 804 805 806 807 808 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 800 def self.from_hash(hash, parent) internal_hash = hash.dup children_hashes = internal_hash.delete('children') || [] definition = TargetDefinition.new(nil, parent, internal_hash) children_hashes.each do |child_hash| TargetDefinition.from_hash(child_hash, definition) end definition end |
Instance Method Details
#abstract=(abstract) ⇒ void
This method returns an undefined value.
Sets whether this target definition is abstract.
168 169 170 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 168 def abstract=(abstract) set_hash_value('abstract', abstract) end |
#abstract? ⇒ Boolean
Returns whether this target definition is abstract.
157 158 159 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 157 def abstract? get_hash_value('abstract', root?) end |
#all_whitelisted_configurations ⇒ Array<String>
Returns unique list of all configurations for which pods have been whitelisted.
474 475 476 477 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 474 def all_whitelisted_configurations parent_configurations = (root? || inheritance == 'none') ? [] : parent.all_whitelisted_configurations (configuration_pod_whitelist.keys + parent_configurations).uniq end |
#build_configurations ⇒ Hash{String => symbol}
Returns A hash where the keys are the name of the build configurations and the values a symbol that represents their type (‘:debug` or `:release`).
269 270 271 272 273 274 275 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 269 def build_configurations if root? get_hash_value('build_configurations') else get_hash_value('build_configurations') || parent.build_configurations end end |
#build_configurations=(hash) ⇒ Hash{String => Symbol}, void
Sets the build configurations for this target.
285 286 287 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 285 def build_configurations=(hash) set_hash_value('build_configurations', hash) unless hash.empty? end |
#build_pod_as_module?(pod_name) ⇒ Bool
Whether the target definition should use modular headers for a single pod. If use_modular_headers! is true, it will return true for any asked pod.
521 522 523 524 525 526 527 528 529 530 531 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 521 def build_pod_as_module?(pod_name) if Array(use_modular_headers_hash['not_for_pods']).include?(pod_name) false elsif use_modular_headers_hash['all'] true elsif !root? && parent.build_pod_as_module?(pod_name) true else Array(use_modular_headers_hash['for_pods']).include? pod_name end end |
#dependencies ⇒ Array<Dependency>
Returns The list of the dependencies of the target definition including the inherited ones.
70 71 72 73 74 75 76 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 70 def dependencies if exclusive? non_inherited_dependencies else non_inherited_dependencies + parent.dependencies end end |
#empty? ⇒ Bool
Returns Whether the target definition has at least one dependency, excluding inherited ones.
102 103 104 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 102 def empty? non_inherited_dependencies.empty? end |
#exclusive? ⇒ Bool
A target is always ‘exclusive` if it is root.
A target is always ‘exclusive` if the `platform` does not match the parent’s ‘platform`.
Returns whether the target definition should inherit the dependencies of the parent.
216 217 218 219 220 221 222 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 216 def exclusive? if root? true else !matches_platform?(parent) || (inheritance != 'complete') end end |
#inheritance ⇒ String
Returns the inheritance mode for this target definition.
176 177 178 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 176 def inheritance get_hash_value('inheritance', 'complete') end |
#inheritance=(inheritance) ⇒ void
This method returns an undefined value.
Sets the inheritance mode for this target definition.
190 191 192 193 194 195 196 197 198 199 200 201 202 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 190 def inheritance=(inheritance) inheritance = inheritance.to_s unless %w(none search_paths complete).include?(inheritance) raise Informative, "Unrecognized inheritance option `#{inheritance}` specified for target `#{name}`." end if root? raise Informative, 'Cannot set inheritance for the root target definition.' end if abstract? raise Informative, 'Cannot set inheritance for abstract target definition.' end set_hash_value('inheritance', inheritance) end |
#inhibit_all_warnings=(flag) ⇒ void
This method returns an undefined value.
Sets whether the target definition should inhibit the warnings during compilation for all pods.
323 324 325 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 323 def inhibit_all_warnings=(flag) raw_inhibit_warnings_hash['all'] = flag end |
#inhibits_warnings_for_pod?(pod_name) ⇒ Bool
Whether the target definition should inhibit warnings for a single pod. If inhibit_all_warnings is true, it will return true for any asked pod.
303 304 305 306 307 308 309 310 311 312 313 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 303 def inhibits_warnings_for_pod?(pod_name) if Array(inhibit_warnings_hash['not_for_pods']).include?(pod_name) false elsif inhibit_warnings_hash['all'] true elsif !root? && parent.inhibits_warnings_for_pod?(pod_name) true else Array(inhibit_warnings_hash['for_pods']).include? pod_name end end |
#inspect ⇒ String
Returns A string representation suitable for debug.
123 124 125 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 123 def inspect "#<#{self.class} label=#{label}>" end |
#label ⇒ String Also known as: to_s
Returns The label of the target definition according to its name.
109 110 111 112 113 114 115 116 117 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 109 def label @label ||= if root? && name == 'Pods' 'Pods' elsif exclusive? || parent.nil? "Pods-#{name}" else "#{parent.label}-#{name}" end end |
#matches_platform?(target_definition) ⇒ Boolean
Returns whether this target definition matches the platform of ‘target_definition`.
231 232 233 234 235 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 231 def matches_platform?(target_definition) return false unless target_definition return true if target_definition.platform == platform !target_definition.platform && target_definition.abstract? end |
#name ⇒ String
Returns the path of the project this target definition should link with.
136 137 138 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 136 def name get_hash_value('name') end |
#name=(name) ⇒ void
This method returns an undefined value.
Sets the path of the user project this target definition should link with.
148 149 150 151 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 148 def name=(name) @label = nil set_hash_value('name', name) end |
#non_inherited_dependencies ⇒ Array
Returns The list of the dependencies of the target definition, excluding inherited ones.
95 96 97 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 95 def non_inherited_dependencies pod_dependencies.concat(podspec_dependencies) end |
#platform ⇒ Platform
If no deployment target has been specified a default value is provided.
Returns the platform of the target definition.
578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 578 def platform name_or_hash = get_hash_value('platform') if name_or_hash if name_or_hash.is_a?(Hash) name = name_or_hash.keys.first.to_sym target = name_or_hash.values.first else name = name_or_hash.to_sym end target ||= PLATFORM_DEFAULTS[name] Platform.new(name, target) else parent.platform unless root? end end |
#pod_whitelisted_for_configuration?(pod_name, configuration_name) ⇒ Bool
Build configurations are case compared case-insensitively in CocoaPods.
Whether a specific pod should be linked to the target when building for a specific configuration. If a pod has not been explicitly whitelisted for any configuration, it is implicitly whitelisted.
437 438 439 440 441 442 443 444 445 446 447 448 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 437 def pod_whitelisted_for_configuration?(pod_name, configuration_name) found = false configuration_pod_whitelist.each do |configuration, pods| if pods.include?(pod_name) found = true if configuration.downcase == configuration_name.to_s.downcase return true end end end !found && (root? || (inheritance != 'none' && parent.pod_whitelisted_for_configuration?(pod_name, configuration_name))) end |
#podfile ⇒ Podfile
Returns The podfile that contains the specification for this target definition.
63 64 65 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 63 def podfile root.parent end |
#recursive_children ⇒ Array<TargetDefinition>
Returns the targets definition descending from this one.
40 41 42 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 40 def recursive_children (children + children.map(&:recursive_children)).flatten end |
#root ⇒ TargetDefinition
Returns The root target definition.
52 53 54 55 56 57 58 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 52 def root if root? self else parent.root end end |
#root? ⇒ Bool
Returns Whether the target definition is root.
46 47 48 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 46 def root? parent.is_a?(Podfile) || parent.nil? end |
#script_phases ⇒ Array<Hash>
Returns The list of the script phases of the target definition.
293 294 295 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 293 def script_phases get_hash_value('script_phases') || [] end |
#set_inhibit_warnings_for_pod(pod_name, should_inhibit) ⇒ void
This method returns an undefined value.
Inhibits warnings for a specific pod during compilation.
337 338 339 340 341 342 343 344 345 346 347 348 349 350 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 337 def set_inhibit_warnings_for_pod(pod_name, should_inhibit) hash_key = case should_inhibit when true 'for_pods' when false 'not_for_pods' when nil return else raise ArgumentError, "Got `#{should_inhibit.inspect}`, should be a boolean" end raw_inhibit_warnings_hash[hash_key] ||= [] raw_inhibit_warnings_hash[hash_key] << pod_name end |
#set_platform(name, target = nil) ⇒ void
This method returns an undefined value.
Sets the platform of the target definition.
606 607 608 609 610 611 612 613 614 615 616 617 618 619 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 606 def set_platform(name, target = nil) name = :osx if name == :macos unless [:ios, :osx, :tvos, :watchos].include?(name) raise StandardError, "Unsupported platform `#{name}`. Platform " \ 'must be `:ios`, `:osx`, `:macos`, `:tvos`, or `:watchos`.' end if target value = { name.to_s => target } else value = name.to_s end set_hash_value('platform', value) end |
#set_platform!(name, target = nil) ⇒ void
This method returns an undefined value.
Sets the platform of the target definition.
629 630 631 632 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 629 def set_platform!(name, target = nil) raise StandardError, "The target `#{label}` already has a platform set." if get_hash_value('platform') set_platform(name, target) end |
#set_use_modular_headers_for_pod(pod_name, flag) ⇒ void
This method returns an undefined value.
Use modular headers for a specific pod during compilation.
554 555 556 557 558 559 560 561 562 563 564 565 566 567 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 554 def set_use_modular_headers_for_pod(pod_name, flag) hash_key = case flag when true 'for_pods' when false 'not_for_pods' when nil return else raise ArgumentError, "Got `#{flag.inspect}`, should be a boolean" end raw_use_modular_headers_hash[hash_key] ||= [] raw_use_modular_headers_hash[hash_key] << pod_name end |
#store_pod(name, *requirements) ⇒ void
This needs urgently a rename.
The dependencies are stored as an array. To simplify the YAML representation if they have requirements they are represented as a Hash, otherwise only the String of the name is added to the array.
This method returns an undefined value.
Stores the dependency for a Pod with the given name.
664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 664 def store_pod(name, *requirements) return if parse_subspecs(name, requirements) # This parse method must be called first parse_inhibit_warnings(name, requirements) parse_modular_headers(name, requirements) parse_configuration_whitelist(name, requirements) if requirements && !requirements.empty? pod = { name => requirements } else pod = name end get_hash_value('dependencies', []) << pod nil end |
#store_podspec(options = nil) ⇒ void
This urgently needs a rename.
The storage of this information is optimized for YAML readability.
This method returns an undefined value.
Stores the podspec whose dependencies should be included by the target.
697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 697 def store_podspec( = nil) ||= {} unless .keys.all? { |key| [:name, :path, :subspecs, :subspec].include?(key) } raise StandardError, 'Unrecognized options for the podspec ' \ "method `#{}`" end if subspec_name = [:subspec] unless subspec_name.is_a?(String) raise StandardError, "Option `:subspec => #{subspec_name.inspect}` should be a String" end end if subspec_names = [:subspecs] if !subspec_names.is_a?(Array) || !subspec_names.all? { |name| name.is_a? String } raise StandardError, "Option `:subspecs => #{subspec_names.inspect}` " \ 'should be an Array of Strings' end end [:autodetect] = true if !.include?(:name) && !.include?(:path) get_hash_value('podspecs', []) << end |
#store_script_phase(options) ⇒ void
This method returns an undefined value.
Stores the script phase to add for this target definition.
729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 729 def store_script_phase() option_keys = .keys unrecognized_keys = option_keys - Specification::ALL_SCRIPT_PHASE_KEYS unless unrecognized_keys.empty? raise StandardError, "Unrecognized options `#{unrecognized_keys}` in shell script `#{[:name]}` within `#{name}` target. " \ "Available options are `#{Specification::ALL_SCRIPT_PHASE_KEYS}`." end missing_required_keys = Specification::SCRIPT_PHASE_REQUIRED_KEYS - option_keys unless missing_required_keys.empty? raise StandardError, "Missing required shell script phase options `#{missing_required_keys.join(', ')}`" end script_phases_hash = get_hash_value('script_phases', []) if script_phases_hash.map { || [:name] }.include?([:name]) raise StandardError, "Script phase with name `#{[:name]}` name already present for target `#{name}`." end [:execution_position] = :any unless .key?(:execution_position) unless Specification::EXECUTION_POSITION_KEYS.include?([:execution_position]) raise StandardError, "Invalid execution position value `#{[:execution_position]}` in shell script `#{[:name]}` within `#{name}` target. " \ "Available options are `#{Specification::EXECUTION_POSITION_KEYS}`." end script_phases_hash << end |
#store_swift_version_requirements(*requirements) ⇒ void
This method returns an undefined value.
Stores the Swift version requirements to be used for this target.
641 642 643 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 641 def store_swift_version_requirements(*requirements) set_hash_value('swift_version_requirements', requirements.flatten.map(&:to_s)) end |
#supports_swift_version?(swift_version) ⇒ Boolean
Queries the target if a version of Swift is supported or not.
409 410 411 412 413 414 415 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 409 def supports_swift_version?(swift_version) if swift_version_requirements.nil? root? || parent.supports_swift_version?(swift_version) else Requirement.create(swift_version_requirements).satisfied_by?(swift_version) end end |
#swift_version ⇒ String
Returns the Swift version that the target definition should use.
392 393 394 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 392 def swift_version get_hash_value('swift_version') end |
#swift_version=(version) ⇒ void
This method returns an undefined value.
Sets the Swift version that the target definition should use.
385 386 387 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 385 def swift_version=(version) set_hash_value('swift_version', version) end |
#swift_version_requirements ⇒ Array<String>
Returns the Swift version requirements this target definition enforces.
398 399 400 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 398 def swift_version_requirements get_hash_value('swift_version_requirements') end |
#targets_to_inherit_search_paths ⇒ Array<TargetDefinition>
Returns the targets from which this target definition should inherit only search paths.
81 82 83 84 85 86 87 88 89 90 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 81 def targets_to_inherit_search_paths can_inherit = !root? && matches_platform?(parent) if inheritance == 'search_paths' # && can_inherit parent.targets_to_inherit_search_paths << parent elsif can_inherit parent.targets_to_inherit_search_paths else [] end end |
#to_hash ⇒ Hash
Returns The hash representation of the target definition.
785 786 787 788 789 790 791 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 785 def to_hash hash = internal_hash.dup unless children.empty? hash['children'] = children.map(&:to_hash) end hash end |
#use_frameworks!(flag = true) ⇒ void
This method returns an undefined value.
Sets whether the target definition should build a framework.
361 362 363 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 361 def use_frameworks!(flag = true) set_hash_value('uses_frameworks', flag) end |
#use_modular_headers_for_all_pods=(flag) ⇒ void
This method returns an undefined value.
Sets whether the target definition should use modular headers for all pods.
540 541 542 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 540 def use_modular_headers_for_all_pods=(flag) raw_use_modular_headers_hash['all'] = flag end |
#use_modular_headers_hash ⇒ Hash<String, Array>
Returns the use_modular_headers hash pre-populated with default values.
492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 492 def use_modular_headers_hash raw_hash = raw_use_modular_headers_hash if exclusive? raw_hash else parent_hash = parent.send(:use_modular_headers_hash).dup if parent_hash['not_for_pods'] # Remove pods that are set to not use modular headers inside parent # if they are set to use modular headers inside current target. parent_hash['not_for_pods'] -= Array(raw_hash['for_pods']) end if parent_hash['for_pods'] # Remove pods that are set to use modular headers inside parent if they are set to not use modular headers inside current target. parent_hash['for_pods'] -= Array(raw_hash['for_pods']) end if raw_hash['all'] # Clean pods that are set to not use modular headers inside parent if use_modular_headers! was set. parent_hash['not_for_pods'] = nil end parent_hash.merge(raw_hash) do |_, l, r| Array(l).concat(r).uniq end end end |
#user_project_path ⇒ String
Returns the path of the project this target definition should link with.
242 243 244 245 246 247 248 249 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 242 def user_project_path path = get_hash_value('user_project_path') if path Pathname(path).sub_ext('.xcodeproj').to_path else parent.user_project_path unless root? end end |
#user_project_path=(path) ⇒ void
This method returns an undefined value.
Sets the path of the user project this target definition should link with.
259 260 261 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 259 def user_project_path=(path) set_hash_value('user_project_path', path) end |
#uses_frameworks? ⇒ Bool
Returns whether the target definition should build a framework.
368 369 370 371 372 373 374 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 368 def uses_frameworks? if internal_hash['uses_frameworks'].nil? root? ? false : parent.uses_frameworks? else get_hash_value('uses_frameworks') end end |
#whitelist_pod_for_configuration(pod_name, configuration_name) ⇒ void
Build configurations are stored as a String.
This method returns an undefined value.
Whitelists a pod for a specific configuration. If a pod is whitelisted for any configuration, it will only be linked with the target in the configuration(s) specified. If it is not whitelisted for any configuration, it is implicitly included in all configurations.
465 466 467 468 469 |
# File 'lib/cocoapods-core/podfile/target_definition.rb', line 465 def whitelist_pod_for_configuration(pod_name, configuration_name) configuration_name = configuration_name.to_s list = raw_configuration_pod_whitelist[configuration_name] ||= [] list << pod_name end |