lib/xcodeproj/project/object/build_file.rb
module Xcodeproj class Project module Object # Contains the information about the build settings of a file used by an # {AbstractBuildPhase}. # class PBXBuildFile < AbstractObject # @!group Attributes # @return [Hash] the list of build settings for this file. # # @note The contents of this array depend on the phase of the build # file. # # For PBXHeadersBuildPhase is `{ "ATTRIBUTES" => [:value] }` # where `:value` can be `Public`, `Private`, or nil # (Protected). # attribute :settings, Hash # @return [PBXFileReference] the file to build. # # @todo I think that is possible to add any kind of group (for # example folders linked to a path). # has_one :file_ref, [ PBXFileReference, PBXGroup, PBXVariantGroup, XCVersionGroup, PBXReferenceProxy, ] # @return [XCSwiftPackageProductDependency] the Swift Package file to build. # has_one :product_ref, XCSwiftPackageProductDependency # @return [String] the platform filter for this build file. # attribute :platform_filter, String # @return [Array<String>] the platform filters for this build file. # attribute :platform_filters, Array #---------------------------------------------------------------------# public # @!group AbstractObject Hooks # @return [String] A name suitable for displaying the object to the # user. # def display_name if product_ref product_ref.display_name elsif file_ref file_ref.display_name else super end end # @return [Hash{String => Hash}, String] A hash suitable to display the # object to the user. # def pretty_print if settings.nil? || settings.empty? display_name else { display_name => settings } end end def ascii_plist_annotation " #{display_name} in #{GroupableHelper.parent(self).display_name} " end #---------------------------------------------------------------------# end end end end