# ========================================================================== # Generator: APP # Copyright: ©2006-2011 Strobe Inc. and contributors # portions copyright ©2009 Apple Inc. # ==========================================================================

namespace :generator do

# Require a project then make sure the build root is always the project
# root.
task :prepare do
  GENERATOR.requires! :target_project

  # if the target name has a slash in it, then we are trying to create a
  # nested target.  extract the final part (since this is the target name)
  # and then set the build root to the parent target.
  if GENERATOR.target_name && GENERATOR.target_name =~ /\//
    parent_target_name = GENERATOR.target_name.split('/')
    GENERATOR.target_name = parent_target_name.pop

    parent_target_name = parent_target_name * "/"
    project = GENERATOR.target_project

    GENERATOR.parent_target_name = parent_target_name
    GENERATOR.parent_target = project.target_for(parent_target_name)
    GENERATOR.requires! :parent_target, :parent_target_name

    GENERATOR.build_root = GENERATOR.parent_target.source_root

  # otherwise just use project_root
  else        
    GENERATOR.build_root = GENERATOR.target_project.project_root
  end
end

end