disu.se

CompileClass

Namespace

Inventory::Rake::Tasks

Ancestors
  1. Rake::DSL

  2. Object

Defines tasks for compiling and cleaning extensions.

Constructor

initialize(optionsHash = {}){ |taskself| … }?#

Sets up tasks based on inventory, optionally yields the task object for further customization, then #defines the tasks.

Options
:inventoryInventory = Inventory::Rake::Tasks.inventory

The inventory to use

Instance Methods

define#

Defines the following task:

compile

Compile all extensions; depends on each compile:name.

Then, for each extension in the inventory, define the following tasks:

compile:name

Compile extension name; depends on lib/path/so file.

lib/path/so

Installed dynamic library of extension name inside inventory path; depends on ext/name/so.

ext/name/so

Dynamic library of extension name; depends on ext/name/Makefile and the source files of the extension.

ext/name/Makefile

Makefile for extension name; depends on inventory path, ext/name/extconf.rb file, and ext/name/depend file. Will be created by extconf.rb, which may take options from environment variable name#upcase_EXTCONF_OPTIONS or EXTCONF_OPTIONS if defined.

clean:name

Clean files built for extension name; depended upon by clean.

Finally, if defined, the test task is set to depend on the compile task.

inventory=(valueInventory)Inventory#

Sets and returns the inventory to use: value.