Class: Phoenx::ApplicationTargetBuilder

Inherits:
TestableTargetBuilder show all
Defined in:
lib/phoenx/use_cases/generate_target.rb

Instance Attribute Summary

Attributes inherited from TargetBuilder

#framework_files, #project, #project_spec, #target_spec

Instance Method Summary collapse

Methods inherited from TestableTargetBuilder

#add_schemes, #add_test_targets, #generate_target_scheme, #sort_build_phases

Methods inherited from TargetBuilder

#add_build_phase_scripts, #add_config_files, #add_frameworks_and_libraries, #add_headers, #add_private_headers, #add_project_headers, #add_public_headers, #add_resources, #add_sources, #add_support_files, #add_system_dependencies, #configure_target, #initialize

Constructor Details

This class inherits a constructor from Phoenx::TargetBuilder

Instance Method Details

#add_sub_projectsObject



275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
# File 'lib/phoenx/use_cases/generate_target.rb', line 275

def add_sub_projects
  super
  frameworks_group = @project.main_group.find_subpath(FRAMEWORKS_ROOT,false)
  @target_spec.dependencies.each do |dp|
    file = nil
    if dp.embed == false
      next
    end
    if dp.path == nil
      # Copy internal references
      target = Phoenx.target_for_name(@project,dp.target_name)
      build_file = @copy_frameworks.add_file_reference(target.product_reference)
      build_file.settings = ATTRIBUTES_CODE_SIGN_ON_COPY
    else
      # Copy external products
      proj_file = frameworks_group.find_file_by_path(dp.path)
      proj = Xcodeproj::Project::open(dp.path)
      target = Phoenx.target_for_name(proj,dp.target_name)
      proj_file.file_reference_proxies.each do |e|
        if e.remote_ref.remote_global_id_string == target.product_reference.uuid
          build_file = @copy_frameworks.add_file_reference(e)
          build_file.settings = ATTRIBUTES_CODE_SIGN_ON_COPY
        end
      end
    end
  end
end

#buildObject



303
304
305
306
307
308
309
310
311
312
# File 'lib/phoenx/use_cases/generate_target.rb', line 303

def build
  @target = @project.new_target(@target_spec.target_type, @target_spec.name, @target_spec.platform, @target_spec.version)
  @copy_frameworks = @target.new_copy_files_build_phase "Embed Frameworks"
  @copy_frameworks.symbol_dst_subfolder_spec = :frameworks
  super()
  self.framework_files.each do |file|
    build_file = @copy_frameworks.add_file_reference(file)
    build_file.settings = ATTRIBUTES_CODE_SIGN_ON_COPY
  end
end

#targetObject



314
315
316
# File 'lib/phoenx/use_cases/generate_target.rb', line 314

def target
  return @target
end