From bfa474857adb749a4edc7727987bb42ce66de728 Mon Sep 17 00:00:00 2001 From: Alex Wang Date: Mon, 26 Feb 2018 18:29:37 -0500 Subject: [PATCH 1/4] Add macOS libs ahead of brewed llvm libs in lib search path This ensures that libraries that are built with brewed LLVM but not included in the Command Line Tools/Xcode (e.g. libomp) can be found during a build, while still using system libraries for the essential stuff (e.g. libc++) --- Library/Homebrew/extend/ENV/super.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Library/Homebrew/extend/ENV/super.rb b/Library/Homebrew/extend/ENV/super.rb index b4f0dfcac0..ce17af5ca3 100644 --- a/Library/Homebrew/extend/ENV/super.rb +++ b/Library/Homebrew/extend/ENV/super.rb @@ -176,6 +176,8 @@ module Superenv PATH.new( keg_only_deps.map(&:opt_lib), HOMEBREW_PREFIX/"lib", + "#{MacOS.sdk_path}/usr/lib", + (compiler == :llvm_clang ? Formula["llvm"].opt_lib.to_s : ""), homebrew_extra_library_paths, ).existing end From 7b94842610119cb12c4ac706e936565d3cfbb98e Mon Sep 17 00:00:00 2001 From: Alex Wang Date: Wed, 28 Feb 2018 09:26:15 -0500 Subject: [PATCH 2/4] Split ternary for PATH building into if/else cases --- Library/Homebrew/extend/ENV/super.rb | 32 ++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/Library/Homebrew/extend/ENV/super.rb b/Library/Homebrew/extend/ENV/super.rb index ce17af5ca3..c3806d421e 100644 --- a/Library/Homebrew/extend/ENV/super.rb +++ b/Library/Homebrew/extend/ENV/super.rb @@ -173,13 +173,31 @@ module Superenv end def determine_library_paths - PATH.new( - keg_only_deps.map(&:opt_lib), - HOMEBREW_PREFIX/"lib", - "#{MacOS.sdk_path}/usr/lib", - (compiler == :llvm_clang ? Formula["llvm"].opt_lib.to_s : ""), - homebrew_extra_library_paths, - ).existing + if compiler == :llvm_clang + if MacOS::CLT.installed? + PATH.new( + keg_only_deps.map(&:opt_lib), + HOMEBREW_PREFIX/"lib", + "/usr/lib", + Formula["llvm"].opt_lib.to_s, + homebrew_extra_library_paths, + ).existing + else + PATH.new( + keg_only_deps.map(&:opt_lib), + HOMEBREW_PREFIX/"lib", + "#{MacOS.sdk_path}/usr/lib", + Formula["llvm"].opt_lib.to_s, + homebrew_extra_library_paths, + ).existing + end + else + PATH.new( + keg_only_deps.map(&:opt_lib), + HOMEBREW_PREFIX/"lib", + homebrew_extra_library_paths, + ).existing + end end def determine_dependencies From 7cb6ebf3fb2e76b4b2a9ebe15ae7af1f33e13ac1 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Tue, 6 Mar 2018 08:44:47 +0000 Subject: [PATCH 3/4] super: refactor LLVM path addition. --- Library/Homebrew/extend/ENV/super.rb | 31 ++++++++++------------------ 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/Library/Homebrew/extend/ENV/super.rb b/Library/Homebrew/extend/ENV/super.rb index c3806d421e..8d53436111 100644 --- a/Library/Homebrew/extend/ENV/super.rb +++ b/Library/Homebrew/extend/ENV/super.rb @@ -173,31 +173,22 @@ module Superenv end def determine_library_paths + paths = [ + keg_only_deps.map(&:opt_lib), + HOMEBREW_PREFIX/"lib", + ] + if compiler == :llvm_clang if MacOS::CLT.installed? - PATH.new( - keg_only_deps.map(&:opt_lib), - HOMEBREW_PREFIX/"lib", - "/usr/lib", - Formula["llvm"].opt_lib.to_s, - homebrew_extra_library_paths, - ).existing + paths << "/usr/lib" else - PATH.new( - keg_only_deps.map(&:opt_lib), - HOMEBREW_PREFIX/"lib", - "#{MacOS.sdk_path}/usr/lib", - Formula["llvm"].opt_lib.to_s, - homebrew_extra_library_paths, - ).existing + paths << "#{MacOS.sdk_path}/usr/lib" end - else - PATH.new( - keg_only_deps.map(&:opt_lib), - HOMEBREW_PREFIX/"lib", - homebrew_extra_library_paths, - ).existing + paths << Formula["llvm"].opt_lib.to_s end + + paths << homebrew_extra_library_paths + PATH.new(paths).existing end def determine_dependencies From 740e89d2f329d4d114defc3f286433fb802e7b64 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Wed, 7 Mar 2018 15:00:08 +0000 Subject: [PATCH 4/4] super: tweak LLVM refactoring. --- Library/Homebrew/extend/ENV/super.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/extend/ENV/super.rb b/Library/Homebrew/extend/ENV/super.rb index 8d53436111..660b9b3a3c 100644 --- a/Library/Homebrew/extend/ENV/super.rb +++ b/Library/Homebrew/extend/ENV/super.rb @@ -187,7 +187,7 @@ module Superenv paths << Formula["llvm"].opt_lib.to_s end - paths << homebrew_extra_library_paths + paths += homebrew_extra_library_paths PATH.new(paths).existing end