読者です 読者をやめる 読者になる 読者になる

パルカワ2

PerlとRubyとイチャラブ

Module::Build + cpanfile

cpanfile

requires 'Mouse' => 1.02;
requires 'Text::Xslate' => 2.0000;
requires 'Router::Simple' => 0.14;
requires 'parent' => 0.225;
requires 'URI' => 1.59;
requires 'Plack' => 0.9986;
requires 'Plack::Middleware::Session' => 0.15;

on test => sub {
    requires 'Test::More' => 0.98;
    requires 'Test::LeakTrace' => 0.14;
    requires 'HTTP::Request::Common' => 6.00;
};

on configure => sub {
    requires 'Module::Build' => 0.4003;
    requires 'Module::Build::Pluggable';
    requires 'Module::Build::Pluggable::GithubMeta';
    requires 'Module::Build::Pluggable::CPANfile';
    requires 'Module::Build::Pluggable::ReadmeMarkdownFromPod';
};

Build.PL

use strict;
use warnings;
use Module::Build::Pluggable qw(
    CPANfile
    GithubMeta
    ReadmeMarkdownFromPod
);

my $builder = Module::Build::Pluggable->new(
    license              => 'perl',
    dynamic_config       => 0,
    no_index             => { 'directory' => [ 'inc' ] },
    name                 => 'Kukuru',
    module_name          => 'Kukuru',
    test_files           => (-d '.git' || $ENV{RELEASE_TESTING}) ? 't/ xt/' : 't/',
    recursive_test_files => 1,
    create_readme        => 1,
    create_license       => 1,
    create_makefile_pl   => 'traditional',
);

$builder->create_build_script();

注意点

  • create_license => 1,するなら、cpanm Software::Licenseしとく必要ある。
  • podに"=head1 NAME"書いとく必要ありそう。
  • "=head1 LICENSE"もいるかも?いらなさそう。
  • xt/必須 => ./Build distest は通るけど、 ./Build testが通らない
  • 正直、これで合ってるのかよくわかってない。
  • 今まで、make cleanしてたけど、./Build realcleanで出来る
  • ./Build ...はM::Bのドキュメント見る。