class Xcodeproj::XCScheme::BuildAction
This class wraps the BuildAction
node of a .xcscheme XML file
Note: It’s not a AbstractSchemeAction
like the others because it is a special case of action (with no build_configuration, etc)
Public Class Methods
new(node = nil)
click to toggle source
@param [REXML::Element] node
The 'BuildAction' XML node that this object will wrap. If nil, will create a default XML node to use.
# File lib/xcodeproj/scheme/build_action.rb, line 15 def initialize(node = nil) create_xml_element_with_fallback(node, 'BuildAction') do self.parallelize_buildables = true self.build_implicit_dependencies = true end end
Public Instance Methods
add_entry(entry)
click to toggle source
@param [BuildAction::Entry] entry
The BuildActionEntry to add to the list of targets to build for the various actions
# File lib/xcodeproj/scheme/build_action.rb, line 165 def add_entry(entry) entries = @xml_element.elements['BuildActionEntries'] || @xml_element.add_element('BuildActionEntries') entries.add_element(entry.xml_element) end
add_post_action(post_action)
click to toggle source
@param [ExecutionAction] post_action
Add an action to the list of actions to run after this scheme action. It can be either a 'Run Script' or a 'Send Email' action.
# File lib/xcodeproj/scheme/build_action.rb, line 131 def add_post_action(post_action) post_actions = @xml_element.elements['PostActions'] || @xml_element.add_element('PostActions') post_actions.add_element(post_action.xml_element) end
add_pre_action(pre_action)
click to toggle source
@param [ExecutionAction] pre_action
Add an action to the list of actions to run before this scheme action. It can be either a 'Run Script' or a 'Send Email' action.
# File lib/xcodeproj/scheme/build_action.rb, line 95 def add_pre_action(pre_action) pre_actions = @xml_element.elements['PreActions'] || @xml_element.add_element('PreActions') pre_actions.add_element(pre_action.xml_element) end
build_implicit_dependencies=(flag)
click to toggle source
@param [Bool] flag
Whether or not to detect and build implicit dependencies for each target
# File lib/xcodeproj/scheme/build_action.rb, line 60 def build_implicit_dependencies=(flag) @xml_element.attributes['buildImplicitDependencies'] = bool_to_string(flag) end
build_implicit_dependencies?()
click to toggle source
@return [Bool]
Whether or not to detect and build implicit dependencies for each target
# File lib/xcodeproj/scheme/build_action.rb, line 53 def build_implicit_dependencies? string_to_bool(@xml_element.attributes['buildImplicitDependencies']) end
entries()
click to toggle source
@return [Array<BuildAction::Entry>]
The list of BuildActionEntry nodes associated with this Build Action. Each entry represent a target to build and tells for which action it's needed to be built.
# File lib/xcodeproj/scheme/build_action.rb, line 140 def entries entries = @xml_element.elements['BuildActionEntries'] return nil unless entries entries.get_elements('BuildActionEntry').map do |entry_node| BuildAction::Entry.new(entry_node) end end
entries=(entries)
click to toggle source
@param [Array<BuildAction::Entry>] entries
Sets the list of BuildActionEntry nodes associated with this Build Action.
# File lib/xcodeproj/scheme/build_action.rb, line 151 def entries=(entries) @xml_element.delete_element('BuildActionEntries') unless entries.empty? entries_element = @xml_element.add_element('BuildActionEntries') entries.each do |entry_node| entries_element.add_element(entry_node.xml_element) end end entries end
parallelize_buildables=(flag)
click to toggle source
@param [Bool] flag
Set whether or not to build the various targets in parallel
# File lib/xcodeproj/scheme/build_action.rb, line 46 def parallelize_buildables=(flag) @xml_element.attributes['parallelizeBuildables'] = bool_to_string(flag) end
parallelize_buildables?()
click to toggle source
@return [Bool]
Whether or not to build the various targets in parallel
# File lib/xcodeproj/scheme/build_action.rb, line 39 def parallelize_buildables? string_to_bool(@xml_element.attributes['parallelizeBuildables']) end
post_actions()
click to toggle source
@return [Array<ExecutionAction>]
The list of actions to run after this scheme action. Each entry can be either a 'Run Script' or a 'Send Email' action.
# File lib/xcodeproj/scheme/build_action.rb, line 104 def post_actions post_actions = @xml_element.elements['PostActions'] return nil unless post_actions post_actions.get_elements('ExecutionAction').map do |entry_node| ExecutionAction.new(entry_node) end end
post_actions=(post_actions)
click to toggle source
@param [Array<ExecutionAction>] post_actions
Set the list of actions to run after this scheme action. Each entry can be either a 'Run Script' or a 'Send Email' action.
# File lib/xcodeproj/scheme/build_action.rb, line 116 def post_actions=(post_actions) @xml_element.delete_element('PostActions') unless post_actions.empty? post_actions_element = @xml_element.add_element('PostActions') post_actions.each do |entry_node| post_actions_element.add_element(entry_node.xml_element) end end post_actions end
pre_actions()
click to toggle source
@return [Array<ExecutionAction>]
The list of actions to run before this scheme action. Each entry can be either a 'Run Script' or a 'Send Email' action.
# File lib/xcodeproj/scheme/build_action.rb, line 68 def pre_actions pre_actions = @xml_element.elements['PreActions'] return nil unless pre_actions pre_actions.get_elements('ExecutionAction').map do |entry_node| ExecutionAction.new(entry_node) end end
pre_actions=(pre_actions)
click to toggle source
@param [Array<ExecutionAction>] pre_actions
Set the list of actions to run before this scheme action. Each entry can be either a 'Run Script' or a 'Send Email' action.
# File lib/xcodeproj/scheme/build_action.rb, line 80 def pre_actions=(pre_actions) @xml_element.delete_element('PreActions') unless pre_actions.empty? pre_actions_element = @xml_element.add_element('PreActions') pre_actions.each do |entry_node| pre_actions_element.add_element(entry_node.xml_element) end end pre_actions end
run_post_actions_on_failure=(flag)
click to toggle source
@param [Bool] flag
Set whether or not to run post actions on build failure
# File lib/xcodeproj/scheme/build_action.rb, line 32 def run_post_actions_on_failure=(flag) @xml_element.attributes['runPostActionsOnFailure'] = bool_to_string(flag) end
run_post_actions_on_failure?()
click to toggle source
@return [Bool]
Whether or not to run post actions on build failure
# File lib/xcodeproj/scheme/build_action.rb, line 25 def run_post_actions_on_failure? string_to_bool(@xml_element.attributes['runPostActionsOnFailure']) end