aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorMisty De Meo2016-03-24 11:18:30 -0700
committerMisty De Meo2016-04-04 15:30:22 -0700
commit4fd5c5c159c0f8d2f848524e98d4cc938e2207e8 (patch)
treed0275f9243e26782756b3995ce8641020a847705 /Library/Homebrew
parentfa3c55aa650e815ce548e1276845171def2847f4 (diff)
downloadbrew-4fd5c5c159c0f8d2f848524e98d4cc938e2207e8.tar.bz2
superenv: filter -I/-L paths on dependencies
Previously, superenv did not try to filter -I or -L flags based on the list of requested dependencies; as a result, buildsystems which opportunistically discover Homebrew-installed libraries were able to link against them even under superenv. This adds a list of all requested dependencies to the superenv environment, and compares all -I and -L flags against those; any Cellar and opt paths found which resolve to unrequested dependencies are filtered out.
Diffstat (limited to 'Library/Homebrew')
-rw-r--r--Library/Homebrew/extend/ENV/super.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/Library/Homebrew/extend/ENV/super.rb b/Library/Homebrew/extend/ENV/super.rb
index 747a76956..ca244849f 100644
--- a/Library/Homebrew/extend/ENV/super.rb
+++ b/Library/Homebrew/extend/ENV/super.rb
@@ -53,6 +53,7 @@ module Superenv
self["HOMEBREW_BREW_FILE"] = HOMEBREW_BREW_FILE.to_s
self["HOMEBREW_PREFIX"] = HOMEBREW_PREFIX.to_s
self["HOMEBREW_CELLAR"] = HOMEBREW_CELLAR.to_s
+ self["HOMEBREW_OPT"] = "#{HOMEBREW_PREFIX}/opt"
self["HOMEBREW_TEMP"] = HOMEBREW_TEMP.to_s
self["HOMEBREW_SDKROOT"] = effective_sysroot
self["HOMEBREW_OPTFLAGS"] = determine_optflags
@@ -66,6 +67,7 @@ module Superenv
self["HOMEBREW_ISYSTEM_PATHS"] = determine_isystem_paths
self["HOMEBREW_INCLUDE_PATHS"] = determine_include_paths
self["HOMEBREW_LIBRARY_PATHS"] = determine_library_paths
+ self["HOMEBREW_DEPENDENCIES"] = determine_dependencies
if MacOS::Xcode.without_clt? || (MacOS::Xcode.installed? && MacOS::Xcode.version.to_i >= 7)
self["MACOSX_DEPLOYMENT_TARGET"] = MacOS.version.to_s
@@ -184,6 +186,10 @@ module Superenv
paths.to_path_s
end
+ def determine_dependencies
+ deps.map {|d| d.name}.join(",")
+ end
+
def determine_cmake_prefix_path
paths = keg_only_deps.map { |d| d.opt_prefix.to_s }
paths << HOMEBREW_PREFIX.to_s