class Phoenx::GenerateProject
Public Class Methods
new(project_spec)
click to toggle source
# File lib/phoenx/use_cases/generate_project.rb, line 8 def initialize(project_spec) @project_spec = project_spec end
Public Instance Methods
add_config_files()
click to toggle source
# File lib/phoenx/use_cases/generate_project.rb, line 52 def add_config_files Phoenx::add_groups_for_files(@project,@project_spec.config_files.values) @project_spec.config_files.keys.each do |config| file_name = @project_spec.config_files[config] unless file_name == nil g = @project.main_group.find_subpath(File.dirname(file_name), false) file = g.find_file_by_path(File.basename(file_name)) unless file != nil file = g.new_reference(File.basename(file_name)) end configuration = @project.build_configuration_list[config] unless configuration abort "Config file assigned to invalid configuration '#{config}'' ".red + file_name.bold end configuration.base_configuration_reference = file end end end
add_support_files()
click to toggle source
# File lib/phoenx/use_cases/generate_project.rb, line 71 def add_support_files files = Phoenx.merge_files_array(@project_spec.support_files, @project_spec.excluded_support_files) Phoenx.get_or_add_files(@project, files) end
build()
click to toggle source
# File lib/phoenx/use_cases/generate_project.rb, line 12 def build @project_spec.pre_install_scripts.each do |pre_script| abort "Missing pre install script ".red + pre_script.bold unless File.exists?(pre_script) puts `./#{pre_script}` end # Build Project @project = Xcodeproj::Project::new(@project_spec.project_file_name) self.generate_configurations self.add_config_files self.add_support_files self.build_targets @project.main_group.sort_recursively if @project_spec.deterministic_project @project.predictabilize_uuids end @project.save(@project_spec.project_file_name) @project_spec.post_install_scripts.each do |post_script| abort "Missing post install script ".red + post_script.bold unless File.exists?(post_script) puts `./#{post_script}` end end
build_targets()
click to toggle source
# File lib/phoenx/use_cases/generate_project.rb, line 34 def build_targets @project_spec.targets.each do |target| if target.target_type == :application builder = ApplicationTargetBuilder.new @project, target, @project_spec builder.build elsif target.target_type == :framework builder = FrameworkTargetBuilder.new @project, target, @project_spec builder.build end end end
generate_configurations()
click to toggle source
# File lib/phoenx/use_cases/generate_project.rb, line 46 def generate_configurations @project_spec.configurations.each do |config| @project.add_build_configuration(config.name, config.parent) end end