Sha256: 7eb58e139633cca0c579909ac1af2411e61ba4c0c92673d09ae4517b7a45327c

Contents?: true

Size: 1.58 KB

Versions: 3

Compression:

Stored size: 1.58 KB

Contents

# Author::    Nicolas Pouillard  <ertai@lrde.epita.fr>.
# Copyright:: Copyright (c) 2004, 2005, 2006 Uttk team. All rights reserved.
# License::   LGPL
# $Id: /w/fey/uttk/trunk/lib/uttk/strategies/Make.rb 24394 2006-07-10T07:38:58.276210Z ertai  $


module Uttk

  module Strategies

    class Make < Strategy
      include Concrete

      def prologue
        super
        @runner = mk_system_runner
        @make = (@symtbl[:make] || ENV['MAKE'] || 'make').to_ocmd
        @make.dir = @dir
        @make += @options.to_ocmd_args
        @make << '-k' if @continue_mode
        @make << "-j#@jobs" if @jobs
        @make << @target unless @target.blank?
      end
      protected :prologue

      def run_impl
        @my_data = @make.run(@runner)
      end
      protected :run_impl

      def abort_hook
        @runner.abort @my_data if @runner and defined? @my_data
        super
      end
      protected :abort_hook

      def assertion
        assert_cmd UM::StreamMatcher, @my_data,
                   :exit => 0, :error => nil, :output => nil
        pass
      end
      protected :assertion

      def epilogue
        @my_data.clean if defined? @my_data
        super
      end
      protected :epilogue

      attribute :dir,           'building directory', :mandatory

      attribute :target,        'select a target', String, '', :invisible

      attribute :continue_mode, 'use the -k option of make', false

      attribute :jobs,          'number of jobs (-j option)'

      attribute :options,       'other options' do [] end

    end # class Make

  end # module Strategies

end # module Uttk

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
uttk-0.4.5.0 lib/uttk/strategies/Make.rb
uttk-0.4.6.2 lib/uttk/strategies/Make.rb
uttk-0.4.6.1 lib/uttk/strategies/Make.rb