module Build::Provider

Public Instance Methods

dependencies() click to toggle source

@return [IdentitySet<Dependency>]

# File lib/build/dependency/provider.rb, line 148
def dependencies
        @dependencies ||= Set.new
end
depends(*names, **options) click to toggle source

Add one or more dependencies to the provider. @param [Array<String>] names the dependency names to add. @example A named dependency.

target.depends "Compiler/clang"

@example A symbolic dependency.

target.depends :compiler
# File lib/build/dependency/provider.rb, line 194
def depends(*names, **options)
        names.each do |name|
                dependencies << Depends.new(name, **options)
        end
end
depends?(name) click to toggle source
# File lib/build/dependency/provider.rb, line 200
def depends?(name)
        dependencies.include?(name)
end
filter(dependency) click to toggle source
# File lib/build/dependency/provider.rb, line 152
def filter(dependency)
        provisions.select{|name, provision| dependency.match?(name)}
end
freeze() click to toggle source
Calls superclass method
# File lib/build/dependency/provider.rb, line 123
def freeze
        return unless frozen?
        
        provisions.freeze
        dependencies.freeze
        
        super
end
priority() click to toggle source

The default priority.

# File lib/build/dependency/provider.rb, line 138
def priority
        @priority ||= 0
end
priority=(value) click to toggle source

Assign a priority.

# File lib/build/dependency/provider.rb, line 133
def priority= value
        @priority = value
end
provides(*names, **aliases, &block) click to toggle source

Add one or more provisions to the provider. @param [Array<String>] names the named provisions to add. @param [Hash<Symbol, Array>] aliases the aliases to add. @example A named provision.

target.provides "Compiler/clang" do
        cxx "clang"
end

@example A symbolic provision.

target.provides compiler: "Compiler/clang"
# File lib/build/dependency/provider.rb, line 178
def provides(*names, **aliases, &block)
        names.each do |name|
                provisions[name] = Provision.new(name, self, block)
        end
        
        aliases.each do |name, dependencies|
                provisions[name] = Alias.new(name, self, Array(dependencies))
        end
end
provides?(dependency) click to toggle source

Does this unit provide the named thing?

# File lib/build/dependency/provider.rb, line 157
def provides?(dependency)
        provisions.key?(dependency.name)
end
provision_for(dependency) click to toggle source
# File lib/build/dependency/provider.rb, line 161
def provision_for(dependency)
        return provisions[dependency.name]
end
provisions() click to toggle source

@return Hash<String, Provision> a table of named provisions.

# File lib/build/dependency/provider.rb, line 143
def provisions
        @provisions ||= {}
end
resolution_for(dependency) click to toggle source
# File lib/build/dependency/provider.rb, line 165
def resolution_for(dependency)
        return Resolution.new(provision_for(dependency), dependency)
end