Sha256: 0c783318097cea80d33d2f44657ccecdfd1b85dc523aafdbf090f4e8ebfbaa6e

Contents?: true

Size: 1.57 KB

Versions: 11

Compression:

Stored size: 1.57 KB

Contents

require 'xcodeproj'

module Xcake
  # This generator processes the configurations
  # and creates xcode build configurations.
  #
  class ConfigurationGenerator < Generator

    def self.dependencies
      [TargetGenerator, ProjectStructureGenerator]
    end

    def visit_project(project)
      create_build_configurations_for(project)
    end

    def visit_target(target)
      create_build_configurations_for(target)
    end

    def create_build_configurations_for(configuration_object)
      puts "Creating build configurations for #{configuration_object}..."

      configuration_object.all_configurations.each do |configuration|
        puts "Creating build configuration #{configuration.name} for #{configuration_object}..."

        build_configuration = @context.native_object_for(configuration)
        build_configuration.name = configuration.name
        build_configuration.build_settings = configuration.settings

        native_configuration_object = @context.native_object_for(configuration_object)
        native_configuration_object.build_configurations << build_configuration

        if configuration.configuration_file != nil
          xcconfig = install_xcconfig(configuration)
          native_configuration_object.base_configuration_reference = xcconfig
        end
      end
    end

    def install_xcconfig(configuration)
      # TODO: Remove need to construct a Node Object to do this.
      node = Node.new
      node.path = configuration.configuration_file
      native_group = @context.native_object_for(node)
      native_group.new_reference(node.path)
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
xcake-0.6.19 lib/xcake/generator/configuration_generator.rb
xcake-0.6.18 lib/xcake/generator/configuration_generator.rb
xcake-0.6.17 lib/xcake/generator/configuration_generator.rb
xcake-0.6.16 lib/xcake/generator/configuration_generator.rb
xcake-0.6.14 lib/xcake/generator/configuration_generator.rb
xcake-0.6.13 lib/xcake/generator/configuration_generator.rb
xcake-0.6.12 lib/xcake/generator/configuration_generator.rb
xcake-0.6.11 lib/xcake/generator/configuration_generator.rb
xcake-0.6.10 lib/xcake/generator/configuration_generator.rb
xcake-0.6.9 lib/xcake/generator/configuration_generator.rb
xcake-0.6.8 lib/xcake/generator/configuration_generator.rb