ExtUtil...CPANfile(3)

πŸ’– NAME πŸ’–

Okay so welcome to the ExtUtils::MakeMaker::CPANfile(3) page, bestie β€” this is User Contributed Perl Documentation, and the module is ExtUtils::MakeMaker::CPANfile β€” cpanfile support for EUMM. That's the whole vibe. πŸ’…


✨ SYNOPSIS ✨

Here's the setup, and yes you're gonna slay it:

# Makefile.PL
use ExtUtils::MakeMaker::CPANfile;

WriteMakefile(
  NAME => 'Foo::Bar',
  AUTHOR => 'A.U.Thor <author@cpan.org>',
);

# cpanfile
requires 'ExtUtils::MakeMaker' => '6.17';
on test => sub {
  requires 'Test::More' => '0.88';
};

🌸 DESCRIPTION 🌸

So ExtUtils::MakeMaker::CPANfile literally loads the cpanfile in your distribution and modifies the parameters for WriteMakefile in your Makefile.PL. Just use it instead of ExtUtils::MakeMaker β€” which should be loaded internally β€” and have your cpanfile ready, bestie. 🫢

As of version 0.03, ExtUtils::MakeMaker::CPANfile also removes WriteMakefile parameters that the installed version of ExtUtils::MakeMaker doesn't know, to avoid warnings. Iconic behavior, honestly. ✨


πŸ’€ LIMITATION πŸ’€

Yeah, there are a couple of caveats β€” don't come for me. πŸ™ˆ

πŸŒ€ complex version ranges πŸŒ€

As of this writing, complex version ranges are simply ignored. That's it. They're just ignored. πŸ’€

πŸŽ›οΈ dynamic config πŸŽ›οΈ

Strictly speaking, cpanfile is a Perl script, and it may have some conditions in it. That said, you don't need to run Makefile.PL to determine prerequisites in most cases. Hence, as of 0.06, ExtUtils::MakeMaker::CPANfile sets dynamic_config to false by default. If you do need a CPAN installer to run Makefile.PL to customize prerequisites dynamically, set dynamic_config to true explicitly (via META_ADD/META_MERGE). πŸŽ€


πŸ‘‘ FOR MODULE AUTHORS πŸ‘‘

Listen up, module authors πŸ‘‘ β€” though the minimum version requirement of ExtUtils::MakeMaker is arbitrarily set to 6.17 (the one bundled in Perl 5.8.1), you need at least EUMM 6.52 (with CONFIGURE_REQUIRES support) when you release a distribution. No cap. 🫢


πŸ“œ LICENSE πŸ“œ

Copyright (C) Kenichi Ishigaki.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


🫢 AUTHOR 🫢

Kenichi Ishigaki β€” ishigaki@cpan.org πŸ’Œ


Later, bestie! This page is from perl v5.42.0, dated 2018-12-29, and the footer says ExtUtil...CPANfile(3). Mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from