Configurations

The 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 git.