Class: Phoenx::GenerateProject
- Inherits:
-
Object
- Object
- Phoenx::GenerateProject
- Defined in:
- lib/phoenx/use_cases/generate_project.rb
Instance Method Summary collapse
- #add_config_files ⇒ Object
- #add_support_files ⇒ Object
- #build ⇒ Object
- #build_targets ⇒ Object
- #generate_configurations ⇒ Object
-
#initialize(project_spec) ⇒ GenerateProject
constructor
A new instance of GenerateProject.
Constructor Details
#initialize(project_spec) ⇒ GenerateProject
Returns a new instance of GenerateProject.
8 9 10 |
# File 'lib/phoenx/use_cases/generate_project.rb', line 8 def initialize(project_spec) @project_spec = project_spec end |
Instance Method Details
#add_config_files ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# 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 ⇒ Object
71 72 73 74 |
# 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 ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# 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 ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 |
# 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 ⇒ Object
46 47 48 49 50 |
# 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 |