Dist::Zilla::Plugin::FFI::Build - Add FFI::Build to your Makefile.PL


version 1.07




This plugin makes the appropriate modifications to your dist to allow you to bundle code with FFI::Platypus::Bundle. It works with FFI::Build::MM, and only works with ExtUtils::MakeMaker, so don't try to use it with Module::Build.

It specifically:

Updates Makefile.PL

To call FFI::Build::MM to add the necessary hooks to build and install your bundled code.

Sets configure-time prereqs

For FFI::Build::MM. It also makes the prereqs for your distribution dynamic, which is required for FFI::Build::MM.

Prunes any build files

Removes any files in ffi/_build which may be created when developing an FFI module using the bundle interface.

This plugin adds the appropriate hooks for FFI::Build::MM into your Makefile.PL. It does not work with Module::Build.



If you are using a language plugin then you can specify it here. It will add it as a prereq. This should be the "short" name of the plugin, without the FFI::Platypus::Lang prefix. So for example for FFI::Platypus::Lang::Rust you would just set this to Rust.

In addition setting these lang to these languages will have the following additional affects:


The paths ffi/target and t/ffi/target will be pruned when building the dist. This is usually what you want.


If you need a language specific builder this is where you specify it. These are classes that live in the FFI::Build::File:: namespace. For example for Rust you would specify Cargo and for Go you would specify GoMod.

Setting this property will add the appropriate module as a configure time prereq.

You do not usually need this for the C programming language.


Author: Graham Ollis <>


Zaki Mughal (zmughal)


This software is copyright (c) 2018-2022 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.