# module Hoe::Compiler

rake-compiler plugin for hoe c-extensions.

This plugin is for extconf.rb based projects that want to use rake-compiler to deal with packaging binary gems. It expects a standard extconf setup, namely that your extconf.rb and c source is located in: ext/project-name.

Look at nokogiri for a good example of how to use this.

### Tasks Provided:¶ ↑

compile

  Compile your c-extension.

### Attributes

compile_tasks[RW]

Optional: Defines what tasks need to be compile first. [default: test]

### Public Instance Methods

activate_compiler_deps() click to toggle source

Activate the rake-compiler dependencies.

    # File lib/hoe/compiler.rb, line 35
    def activate_compiler_deps
      dependency "rake-compiler", "~> 0.7", :development
      gem "rake-compiler", "~> 0.7"
    end

define_compiler_tasks() click to toggle source

Define tasks for compiler plugin.

    # File lib/hoe/compiler.rb, line 43
    def define_compiler_tasks
      require "rake/extensiontask"

      Rake::ExtensionTask.new self.name, spec do |ext|
        ext.lib_dir = File.join(*["lib", self.name, ENV["FAT_DIR"]].compact)
      end

      compile_tasks.each do |t|
        task t => :compile
      end
    end

initialize_compiler() click to toggle source

Initialize variables for compiler plugin.

    # File lib/hoe/compiler.rb, line 25
    def initialize_compiler
      self.compile_tasks = [:multi, :test, :check_manifest]
      self.spec_extras   = { :extensions => ["ext/#{self.name}/extconf.rb"] }

      clean_globs << "lib/#{self.name}/*.{so,bundle,dll}"
    end