Allow requirements to specify env options
This commit is contained in:
parent
f8d253950f
commit
9c8a73cf41
@ -57,9 +57,8 @@ end
|
||||
def post_superenv_hacks f
|
||||
# Only allow Homebrew-approved directories into the PATH, unless
|
||||
# a formula opts-in to allowing the user's path.
|
||||
if f.env.userpaths?
|
||||
paths = ORIGINAL_PATHS.map{|pn| pn.realpath.to_s rescue nil } - %w{/usr/X11/bin /opt/X11/bin}
|
||||
ENV['PATH'] = "#{ENV['PATH']}:#{paths.join(':')}"
|
||||
if f.env.userpaths? or f.recursive_requirements.any? { |rq| rq.env.userpaths? }
|
||||
ENV.userpaths!
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
require 'build_environment'
|
||||
|
||||
## This file defines dependencies and requirements.
|
||||
##
|
||||
## A dependency is a formula that another formula needs to install.
|
||||
@ -169,6 +171,10 @@ class Requirement
|
||||
# See X11Dependency
|
||||
def modify_build_environment; nil end
|
||||
|
||||
def env
|
||||
@env ||= self.class.env
|
||||
end
|
||||
|
||||
def eql?(other)
|
||||
other.is_a? self.class and hash == other.hash
|
||||
end
|
||||
@ -181,6 +187,12 @@ class Requirement
|
||||
def fatal(val=nil)
|
||||
val.nil? ? @fatal : @fatal = val
|
||||
end
|
||||
|
||||
def env(*settings)
|
||||
@env ||= BuildEnvironment.new
|
||||
settings.each { |s| @env << s }
|
||||
@env
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@ -431,6 +431,11 @@ class << ENV
|
||||
append 'CPPFLAGS', "-DNCURSES_OPAQUE=0"
|
||||
end
|
||||
|
||||
def userpaths!
|
||||
paths = ORIGINAL_PATHS.map { |p| p.realpath.to_s rescue nil } - %w{/usr/X11/bin /opt/X11/bin}
|
||||
self['PATH'] = paths.unshift(*self['PATH'].split(":")).uniq.join(":")
|
||||
end
|
||||
|
||||
def fortran
|
||||
fc_flag_vars = %w{FCFLAGS FFLAGS}
|
||||
|
||||
|
||||
@ -102,6 +102,8 @@ class MPIDependency < Requirement
|
||||
|
||||
fatal true
|
||||
|
||||
env :userpaths
|
||||
|
||||
def initialize *lang_list
|
||||
@lang_list = lang_list
|
||||
@non_functional = []
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user