aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorCharlie Sharpsteen2012-03-07 18:33:32 -0800
committerCharlie Sharpsteen2012-03-09 12:14:05 -0800
commit295116ff722b314f5ef440091314da3b4431352f (patch)
treec9785d1434ecc754ab7ca0eebd8ae9802cd2b843 /Library
parent6e3726c7301794f4b296bc828ce5d23eb42f8ec9 (diff)
downloadhomebrew-295116ff722b314f5ef440091314da3b4431352f.tar.bz2
ENV.rb: Generalize method for setting CPU flags
All logic has been copied into a new method `set_cpu_flags` that accepts an additional argument, `flags`, which contains a list of environment variables for which the CPU flags are to be adjusted. `set_cpu_cflags` now recalls `set_cpu_flags` and passes `cflags_flags` as the first argument. Signed-off-by: Charlie Sharpsteen <source@sharpsteen.net>
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/extend/ENV.rb24
1 files changed, 15 insertions, 9 deletions
diff --git a/Library/Homebrew/extend/ENV.rb b/Library/Homebrew/extend/ENV.rb
index c00ee917f..c67c93800 100644
--- a/Library/Homebrew/extend/ENV.rb
+++ b/Library/Homebrew/extend/ENV.rb
@@ -355,24 +355,30 @@ Please take one of the following actions:
end
end
- def set_cpu_cflags default, map = {}
+ # Sets architecture-specific flags for every environment variable
+ # given in the list `flags`.
+ def set_cpu_flags flags, default, map = {}
cflags =~ %r{(-Xarch_i386 )-march=}
xarch = $1.to_s
- remove_from_cflags %r{(-Xarch_i386 )?-march=\S*}
- remove_from_cflags %r{( -Xclang \S+)+}
- remove_from_cflags %r{-mssse3}
- remove_from_cflags %r{-msse4(\.\d)?}
- append_to_cflags xarch unless xarch.empty?
+ remove flags, %r{(-Xarch_i386 )?-march=\S*}
+ remove flags, %r{( -Xclang \S+)+}
+ remove flags, %r{-mssse3}
+ remove flags, %r{-msse4(\.\d)?}
+ append flags, xarch unless xarch.empty?
if ARGV.build_bottle?
- append_to_cflags '-mtune=' + map.fetch(:bottle) if map.has_key? :bottle
+ append flags, '-mtune=' + map.fetch(:bottle) if map.has_key? :bottle
else
# Don't set -msse3 and older flags because -march does that for us
- append_to_cflags '-march=' + map.fetch(Hardware.intel_family, default)
+ append flags, '-march=' + map.fetch(Hardware.intel_family, default)
end
# not really a 'CPU' cflag, but is only used with clang
- remove_from_cflags '-Qunused-arguments'
+ remove flags, '-Qunused-arguments'
+ end
+
+ def set_cpu_cflags default, map = {}
+ set_cpu_flags cc_flag_vars, default, map
end
# actually c-compiler, so cc would be a better name