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

Dist::Zilla::MintingProfile::AlienBuild

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.