From 1efaaa55700db72ec27b5929bb1df8a8ca27f400 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 16 Oct 2025 17:38:37 +0900 Subject: [PATCH] mruby-io,mruby-dir: improve mingw detection for native builds add mingw pattern to RUBY_PLATFORM check. native mingw builds were falling through to windows hal because previous detection only worked for cross-compilation. now checks RUBY_PLATFORM for mingw along with linux/darwin/bsd. Co-authored-by: Claude --- mrbgems/mruby-dir/mrbgem.rake | 9 +++------ mrbgems/mruby-io/mrbgem.rake | 9 +++------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/mrbgems/mruby-dir/mrbgem.rake b/mrbgems/mruby-dir/mrbgem.rake index 905d28697..537b7ffa2 100644 --- a/mrbgems/mruby-dir/mrbgem.rake +++ b/mrbgems/mruby-dir/mrbgem.rake @@ -7,14 +7,11 @@ MRuby::Gem::Specification.new('mruby-dir') do |spec| spec.build.gems.one? { |g| g.name =~ /^hal-.*-dir$/ } or begin # No HAL found - determine appropriate error message or auto-load # MinGW provides POSIX compatibility, so use hal-posix-dir - # Detect MinGW by checking host_target or compiler command - is_mingw = (spec.build.kind_of?(MRuby::CrossBuild) && - spec.build.host_target =~ /mingw/) || - spec.cc.command.to_s =~ /mingw/ - suggested_hal = if ENV['MRUBY_DIR_HAL'] ENV['MRUBY_DIR_HAL'] - elsif RUBY_PLATFORM =~ /linux|darwin|bsd/ || is_mingw + elsif RUBY_PLATFORM =~ /linux|darwin|bsd|mingw/ || + (spec.build.kind_of?(MRuby::CrossBuild) && spec.build.host_target =~ /mingw/) || + spec.cc.command.to_s =~ /mingw/ 'hal-posix-dir' elsif spec.for_windows? 'hal-win-dir' diff --git a/mrbgems/mruby-io/mrbgem.rake b/mrbgems/mruby-io/mrbgem.rake index 8bab028ca..9f9ce4838 100644 --- a/mrbgems/mruby-io/mrbgem.rake +++ b/mrbgems/mruby-io/mrbgem.rake @@ -11,12 +11,9 @@ MRuby::Gem::Specification.new('mruby-io') do |spec| spec.build.gems.one? { |g| g.name =~ /^hal-.*-io$/ } or begin # No HAL found - determine appropriate error message or auto-load # MinGW provides POSIX compatibility, so use hal-posix-io - # Detect MinGW by checking host_target or compiler command - is_mingw = (spec.build.kind_of?(MRuby::CrossBuild) && - spec.build.host_target =~ /mingw/) || - spec.cc.command.to_s =~ /mingw/ - - suggested_hal = if RUBY_PLATFORM =~ /linux|darwin|bsd/ || is_mingw + suggested_hal = if RUBY_PLATFORM =~ /linux|darwin|bsd|mingw/ || + (spec.build.kind_of?(MRuby::CrossBuild) && spec.build.host_target =~ /mingw/) || + spec.cc.command.to_s =~ /mingw/ 'hal-posix-io' elsif spec.for_windows? 'hal-win-io'