Dist::Zilla::Plugin::AlienBuild - Use Alien::Build with Dist::Zilla
version 0.33
[AlienBuild]
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 the configure
requirements to your dist configure
requires. It adds the any
requirements from your alienfile to your dist build
requires.
Adjusts your Makefile.PL
to use Alien::Build::MM. If you are using ExtUtils::MakeMaker.
sets mb_class to Alien::Build::MB on the Dist::Zilla::Plugin::ModuleBuild plugin. If you are using Module::Build.
Which are used by most Alien::Build based Alien distributions.
Unless you turn this feature off using alienfile_meta
below.
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
.
Sets the clean_install property on Alien::Build::MM.
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.
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
Alien::Build, alienfile, Alien::Base, Alien::Build::MM, Alien::Build::MB, Dist::Zilla::Plugin::AlienBase::Doc
Author: Graham Ollis <plicease@cpan.org>
Contributors:
Curtis Jewell (CSJEWELL)
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.