Define O1 and O0 methods separately

This commit is contained in:
Carlo Cabrera 2021-07-08 10:56:36 +01:00
parent b37e574ad3
commit ebeb9e7e90
No known key found for this signature in database
GPG Key ID: C74D447FC549A1D0

View File

@ -337,15 +337,25 @@ module Superenv
append_to_cccfg "O" append_to_cccfg "O"
end end
%w[O1 O0].each do |opt| # rubocop: disable Naming/MethodName
define_method opt do |&block| sig { params(block: T.nilable(T.proc.void)).void }
if T.must(block) def O0(&block)
with_env(HOMEBREW_OPTIMIZATION_LEVEL: opt) { block.call } if block
else with_env(HOMEBREW_OPTIMIZATION_LEVEL: "O0", &block)
send(:[]=, "HOMEBREW_OPTIMIZATION_LEVEL", opt) else
end self["HOMEBREW_OPTIMIZATION_LEVEL"] = "O0"
end end
end end
sig { params(block: T.nilable(T.proc.void)).void }
def O1(&block)
if block
with_env(HOMEBREW_OPTIMIZATION_LEVEL: "O1", &block)
else
self["HOMEBREW_OPTIMIZATION_LEVEL"] = "O1"
end
end
# rubocop: enable Naming/MethodName
end end
require "extend/os/extend/ENV/super" require "extend/os/extend/ENV/super"