package MakeMaker::Test::NoXS; # Disable all XS loading. use Carp; require DynaLoader; require XSLoader; # Things like Cwd key on this to decide if they're running miniperl delete $DynaLoader::{boot_DynaLoader}; if ($^O eq 'MSWin32') { require Win32; my $GetCwd = *{'Win32::GetCwd'}{CODE}; my $SetChildShowWindow = *{'Win32::SetChildShowWindow'}{CODE}; %{*main::Win32::{HASH}} = (); *{'Win32::GetCwd'} = $GetCwd; *{'Win32::SetChildShowWindow'} = $SetChildShowWindow; } # This isn't 100%. Things like Win32.pm will crap out rather than # just not load. See ExtUtils::MM->_is_win95 for an example no warnings 'redefine'; *DynaLoader::bootstrap = sub { confess "Tried to load XS for @_"; }; *XSLoader::load = sub { confess "Tried to load XS for @_"; }; 1;