1 package inc::MMPackageStash;
4 extends 'Dist::Zilla::Plugin::MakeMaker::Awesome';
6 # XXX: this is pretty gross, it should be possible to clean this up later
7 around _build_MakeFile_PL_template => sub {
12 my $can_cc = <<'CAN_CC';
16 # check if we can run some command
21 return $_cmd if (-x $_cmd or $_cmd = MM->maybe_command($_cmd));
23 for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') {
25 my $abs = File::Spec->catfile($dir, $_[1]);
26 return $abs if (-x $abs or $abs = MM->maybe_command($abs));
32 # can we locate a (the) C compiler
34 my @chunks = split(/ /, $Config::Config{cc}) or return;
36 # $Config{cc} may contain args; try to find out the program part
38 return can_run("@chunks") || (pop(@chunks), next);
45 my $template = $self->$orig(@_);
47 $template =~ s/(WriteMakefile\()/delete \$WriteMakefileArgs{PREREQ_PM}{'Package::Stash::XS'}\n unless can_cc();\n\n$1/;
49 return $template . $can_cc;
52 __PACKAGE__->meta->make_immutable;