Millaで特定のOSのみサポートするモジュールを作る

Dist::Millaで特定のOSのみ(or 以外を)サポートするようなモジュールをつくりたいときはDist::Zilla::Plugin::AssertOSを使ってdist.iniをこんな感じに定義します。

[@Milla]

[AssertOS]
; MSWin32 or CygwinをNGとする
os = -MicrosoftWindows

[Prereqs / ConfigureRequires]
; configure_requiresに追加するためのおまじない
Devel::AssertOS = 0

[MetaNoIndex]
; Dist::Zilla::Plugin::AssertOSでno_indexが上書きされるので再定義
directory = t
directory = xt
directory = inc
directory = share
directory = eg
directory = examples

で、Dist::Zilla::Plugin::AssertOSをインストールします。(既にインストールされている場合は不要です)

$ milla authordeps | cpanm

上記dist.iniでこんな感じのBuild.PLが生成されます。

use lib 'inc';
use Devel::AssertOS qw[-MicrosoftWindows];
use 5.008005;
use Module::Build::Tiny 0.019;
Build_PL();

お手軽ですね。