Sha256: df435f1d548abb2e0bce9e2a20c321b6ea4915727386b2719d367ff30cf3b343

Contents?: true

Size: 1.02 KB

Versions: 2

Compression:

Stored size: 1.02 KB

Contents

require 'rubygems/ext'

module Shoe
  module Tasks

    class Compile < AbstractTask
      def active?
        File.directory?('ext')
      end

      def define
        desc 'Compile C extensions'
        task :compile do
          top_level_path   = File.expand_path('.')
          destination_path = File.join(top_level_path, spec.require_paths.first)

          spec.extensions.each do |extension|
            Dir.chdir File.dirname(extension) do
              Gem::Ext::ExtConfBuilder.build(
                extension,
                top_level_path,
                destination_path,
                results = []
              )
            end
          end
        end

        %w(
          test
          cucumber:ok
          cucumber:wip
          release
        ).each do |name|
          before_existing(name, :compile)
        end
      end

      def update_spec
        spec.files      += Rake::FileList['ext/**/extconf.rb', 'ext/**/*.c']
        spec.extensions += Rake::FileList['ext/**/extconf.rb']
      end
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
shoe-0.3.0 lib/shoe/tasks/compile.rb
shoe-0.2.0 lib/shoe/tasks/compile.rb