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 <plicease@cpan.org>
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.