define_configuration block declares what packages should be fetched and where from.
define_configuration 'development' do |configuration| configuration[:source] = "https://github.com/kurocha/" configuration.import "my-project" # Provides all the build related infrastructure: configuration.require 'platforms' # Provides unit testing infrastructure and generators: configuration.require 'unit-test' # Provides some useful C++ generators: configuration.require 'generate-cpp-class' configuration.require "generate-project" end define_configuration "my-project" do |configuration| configuration.public! end
configuration.public! indicates a configuration which can be required by another. A public configuration with the same name as the package is automatically required by dependent packages.
configuration.import pulls dependencies from another configuration into this one.
configuration.require specifies a relative URI which is joined with
configuration[:source] to produce an URI which is fetched by