brew/Library/Homebrew/build_environment.rb

59 lines
816 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)
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 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