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