brew/Library/Homebrew/build_environment.rb

60 lines
838 B
Ruby
Raw Normal View History

require 'set'
class BuildEnvironment
attr_accessor :proc
def initialize(*settings)
2014-07-07 18:12:24 -05:00
@settings = Set.new(*settings)
end
2014-07-07 09:15:56 -05:00
def merge(*args)
@settings.merge(*args)
2014-07-07 20:03:15 -05:00
self
2014-07-07 09:15:56 -05:00
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) if self.proc
end
def marshal_dump
@settings
end
def marshal_load(data)
@settings = data
end
def _dump(*)
Marshal.dump(marshal_dump)
end
def self._load(s)
new(Marshal.load(s))
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