NAME Dist::Zilla::Plugin::AlienBuild - Use Alien::Build with Dist::Zilla VERSION version 0.33 SYNOPSIS [AlienBuild] DESCRIPTION This Dist::Zilla plugin is designed to help create Alien modules using the alienfile and Alien::Build recipe system with Alien::Base. The intent is that you will maintain your alienfile as you normally would, and this plugin will ensure the right prereqs are specified in the META.json and other things that are easy to get not quite right. Specifically, this plugin: adds prereqs Adds the configure requirements to your dist configure requires. It adds the any requirements from your alienfile to your dist build requires. adjusts Makefile.PL Adjusts your Makefile.PL to use Alien::Build::MM. If you are using ExtUtils::MakeMaker. sets the mb_class for Build.PL sets mb_class to Alien::Build::MB on the Dist::Zilla::Plugin::ModuleBuild plugin. If you are using Module::Build. turn on dynamic prereqs Which are used by most Alien::Build based Alien distributions. sets x_alienfile meta Unless you turn this feature off using alienfile_meta below. PROPERTIES alienfile_meta As of version 0.23, this plugin adds a special x_alienfile metadata to your META.json or META.yml. This contains the share and system prereqs based on your alienfile. This may be useful for one day searching for Aliens which use another specific Alien during their build. Note that by their nature, share and system prereqs are dynamic, so on some platforms they may actually be different. This is on by default. You can turn this off by setting this property to 0. clean_install Sets the clean_install property on Alien::Build::MM. eumm_hash_var Sets the variable name that is used in the Makefile.PL for its arguments. Defaults to %WriteMakefileArgs, and is required to begin with % or $. This is useful when defining your own Makefile template with Dist::Zilla::Plugin::MakeMaker::Custom. NOTES When defining your own Makefile.PL template (to use with Dist::Zilla::Plugin::MakeMaker::Custom, for example,) you can specify where you want this module to insert its code by having this line in the template: # ALIEN BUILD MM An example template to use would be this: use ExtUtils::MakeMaker ##{ $eumm_version ##}; my %args = ( NAME => "My::Alien::Module", ##{ $plugin->get_default(qw(ABSTRACT AUTHOR LICENSE VERSION)) ##} ##{ $plugin->get_prereqs(1) ##} ); # ALIEN BUILD MM WriteMakefile(%args); and a dist.ini using this template would include this: [MakeMaker::Custom] # We need to manipulate %args on-the-fly if we set the version of ExtUtils::MakeMaker any lower. eumm_version: 6.64 [AlienBuild] eumm_hash_var: %args SEE ALSO Alien::Build, alienfile, Alien::Base, Alien::Build::MM, Alien::Build::MB, Dist::Zilla::Plugin::AlienBase::Doc AUTHOR Author: Graham Ollis Contributors: Curtis Jewell (CSJEWELL) COPYRIGHT AND LICENSE This software is copyright (c) 2017-2025 by Graham Ollis. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.