From b94656147bc2048fd183bc0e0d1e5bb3d230a4b1 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Fri, 6 Jan 2023 12:23:25 +0900 Subject: [PATCH] mkmf.rb: Refactor splitting configure_args and remove duplicate code --- lib/mkmf.rb | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/lib/mkmf.rb b/lib/mkmf.rb index 0fbc1cc2e5..e4a6fc984f 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -89,26 +89,16 @@ module MakeMakefile unless defined? $configure_args $configure_args = {} - args = CONFIG["configure_args"] - if ENV["CONFIGURE_ARGS"] - args << " " << ENV["CONFIGURE_ARGS"] + args = CONFIG["configure_args"].shellsplit + if arg = ENV["CONFIGURE_ARGS"] + args.push(*arg.shellsplit) end - for arg in Shellwords::shellwords(args) + args.delete_if {|a| /\A--(?:top(?:src)?|src|cur)dir(?=\z|=)/ =~ a} + for arg in args.concat(ARGV) arg, val = arg.split('=', 2) next unless arg arg.tr!('_', '-') - if arg.sub!(/^(?!--)/, '--') - val or next - arg.downcase! - end - next if /^--(?:top|topsrc|src|cur)dir$/ =~ arg - $configure_args[arg] = val || true - end - for arg in ARGV - arg, val = arg.split('=', 2) - next unless arg - arg.tr!('_', '-') - if arg.sub!(/^(?!--)/, '--') + if arg.sub!(/\A(?!--)/, '--') val or next arg.downcase! end