NAME
Alien::Build::Wizard - Alien distribution creation wizard
VERSION
version 0.02
SYNOPSIS
% perldoc Dist::Zilla::MintingProfile::AlienBuild
DESCRIPTION
This class is private.
SEE ALSO
AUTHOR
Graham Ollis <plicease@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2021 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.
NAME
[% wizard.class_name %] - Find or build [% wizard.human_name %]
SYNOPSIS [%- IF wizard.alien_types.xs %]
From ExtUtils::MakeMaker:
use ExtUtils::MakeMaker;
use Alien::Base::Wrapper ();
WriteMakefile(
Alien::Base::Wrapper->new('[% wizard.class_name %]')->mm_args2(
NAME => 'FOO::XS',
...
),
);
From Module::Build:
use Module::Build;
use Alien::Base::Wrapper qw( [% wizard.class_name %] !export );
use [% wizard.class_name %];
my $build = Module::Build->new(
...
configure_requires => {
'Alien::Base::Wrapper' => '0',
'[% wizard.class_name %]' => '0',
...
},
Alien::Base::Wrapper->mb_args,
...
);
$build->create_build_script;
From Inline::C / Inline::CPP script:
use Inline 0.56 with => '[% wizard.class_name %]';
From Dist::Zilla
[@Filter]
-bundle = @Basic
-remove = MakeMaker
[Prereqs / ConfigureRequires]
[% wizard.class_name %] = 0
[MakeMaker::Awesome]
header = use Alien::Base::Wrapper qw( [% wizard.class_name %] !export );
WriteMakefile_arg = Alien::Base::Wrapper->mm_args
[%- END %]
[%- IF wizard.alien_types.ffi %]
From FFI::Platypus:
use FFI::Platypus;
use [% wizard.class_name %];
my $ffi = FFI::Platypus->new(
lib => [ [% wizard.class_name %]->dynamic_libs ],
);
[%- END %]
[%- IF wizard.alien_types.tool %]
Command line tool:
use [% wizard.class_name %];
use Env qw( @PATH );
unshift @PATH, [% wizard.class_name %]->bin_dir;
[%- END %]
DESCRIPTION
This distribution provides [% wizard.human_name %] so that it can be used by other Perl distributions that are on CPAN. It does this by first trying to detect an existing install of [% wizard.human_name %] on your system. If found it will use that. If it cannot be found, the source code will be downloaded from the internet and it will be installed in a private share location for the use of other modules.
SEE ALSO
- Alien
-
Documentation on the Alien concept itself.
- Alien::Base
-
The base class for this Alien.
- Alien::Build::Manual::AlienUser
-
Detailed manual for users of Alien classes.