lib/xcodeproj/project/object/build_rule.rb
module Xcodeproj class Project module Object # This class represents a custom build rule of a Target. # class PBXBuildRule < AbstractObject # @!group Attributes # @return [String] the name of the rule. # attribute :name, String # @return [String] a string representing what compiler to use. # # @example # `com.apple.compilers.proxy.script`. # attribute :compiler_spec, String # @return [String] the discovered dependency file to use. # # @example # `$(DERIVED_FILES_DIR)/$(INPUT_FILE_NAME).d`. # attribute :dependency_file, String # @return [String] the type of the files that should be processed by # this rule. # # @example # `pattern.proxy`. # attribute :file_type, String # @return [String] the pattern of the files that should be processed by # this rule. This attribute is an alternative to to # `file_type`. # # @example # `*.css`. # attribute :file_patterns, String # @return [String] whether the rule is editable. # # @example # `1`. # attribute :is_editable, String, '1' # @return [ObjectList<PBXFileReference>] the file references for the # input files files. # attribute :input_files, Array # @return [ObjectList<PBXFileReference>] the file references for the # output files. # attribute :output_files, Array # @return [ObjectList<String>] the compiler flags used when creating the # respective output files. # attribute :output_files_compiler_flags, Array # @return [String] whether the rule should be run once per architecture. # # @example # `0`. # attribute :run_once_per_architecture, String # @return [String] the content of the script to use for the build rule. # # @note This attribute is present if the #{#compiler_spec} is # `com.apple.compilers.proxy.script` # attribute :script, String # @!group Helpers # Adds an output file with the specified compiler flags. # # @param [PBXFileReference] file the file to add. # # @param [String] compiler_flags the compiler flags for the file. # # @return [Void] # def add_output_file(file, compiler_flags = '') (self.output_files ||= []) << file (self.output_files_compiler_flags ||= []) << compiler_flags end # @return [Array<[PBXFileReference, String]>] # An array containing tuples of output files and their compiler # flags. # def output_files_and_flags (output_files || []).zip(output_files_compiler_flags || []) end def ascii_plist_annotation " #{isa} " end end end end end