Sha256: 32935411e66d827ee470e1ef7bcb1b44b59fb65ad25e03817de5c9f9c724d5fd

Contents?: true

Size: 1.65 KB

Versions: 3

Compression:

Stored size: 1.65 KB

Contents

module Xcake
  class SchemeGenerator < Generator
    def self.dependencies
      [TargetGenerator, DefaultProjectStructureGenerator, ConfigurationGenerator]
    end

    def visit_project(project)
      EventHooks.run_hook :before_adding_user_schemes
      @project = project
    end

    def visit_target(target)
      scheme_list = @context.scheme_list
      native_target = @context.native_object_for(target)

      target.schemes.each do |scheme| 

        scheme_list.supress_autocreation_of_target(native_target)

        native_scheme = @context.native_object_for(scheme)
        native_scheme.name = scheme.name

          #TODO: Find multiple testing targets, move this into the DSL ?
          native_project = @context.native_object_for(@project)
          native_unit_test_target = native_project.find_unit_test_target_for_target(target)

          if native_unit_test_target
            scheme_list.supress_autocreation_of_target(native_unit_test_target)
          end

          native_scheme.configure_with_targets(native_target, native_unit_test_target)
          native_scheme.test_action.build_configuration = scheme.test_configuration
          native_scheme.launch_action.build_configuration = scheme.launch_configuration
          native_scheme.profile_action.build_configuration = scheme.profile_configuration
          native_scheme.analyze_action.build_configuration = scheme.analyze_configuration
          native_scheme.archive_action.build_configuration = scheme.archive_configuration

          scheme_list.schemes << native_scheme
      end
    end

    def leave_project(project)
      scheme_list = @context.scheme_list
      scheme_list.save
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
xcake-0.8.7 lib/xcake/generator/scheme_generator.rb
xcake-0.8.6 lib/xcake/generator/scheme_generator.rb
xcake-0.8.3 lib/xcake/generator/scheme_generator.rb