brew/Library/Homebrew/build_environment.rb

51 lines
732 B
Ruby
Raw Normal View History

require 'set'
class BuildEnvironment
attr_accessor :proc
def initialize(*settings)
@settings = Set.new(settings)
end
2014-07-07 09:15:56 -05:00
def merge(*args)
@settings.merge(*args)
end
def <<(o)
@settings << o
self
end
def std?
@settings.include? :std
end
def userpaths?
@settings.include? :userpaths
end
def modify_build_environment(receiver)
receiver.instance_eval(&proc)
end
def _dump(*)
@settings.to_a.join(":")
end
def self._load(s)
new(*s.split(":").map(&:to_sym))
end
end
module BuildEnvironmentDSL
def env(*settings, &block)
@env ||= BuildEnvironment.new
if block_given?
@env.proc = block
else
2014-07-07 09:15:56 -05:00
@env.merge(settings)
end
@env
end
end