name = Alien-Build
author = Graham Ollis <plicease@cpan.org>
author = Joel Berger <joel.a.berger@gmail.com>
license = Perl_5
copyright_holder = Graham Ollis
copyright_year = 2011-2022
version = 2.80
[@Author::Plicease]
:version = 2.75
release_tests = 1
installer = Author::Plicease::MakeMaker
github_user = PerlAlien
github_repo = Alien-Build
irc = irc://irc.perl.org/#native
diag = +FFI::Platypus
diag = +Acme::Alien::DontPanic
diag = +Plack
test2_v0 = 1
clean_keep = ^corpus
workflow = static
workflow = linux
workflow = macos
workflow = windows
workflow = msys2-mingw
preamble = | require './inc/probebad.pl';
diag_preamble = | $post_diag = sub {
diag_preamble = | eval {
diag_preamble = | require Alien::Build::Plugin::Core::Setup;
diag_preamble = | require Alien::Build::Plugin::Build::Autoconf;
diag_preamble = | require Alien::Build::Plugin::Build::CMake;
diag_preamble = | require Alien::Build::Plugin::PkgConfig::Negotiate;
diag_preamble = | require Alien::Build::Util;
diag_preamble = | require File::Which;
diag_preamble = | };
diag_preamble = | if($@)
diag_preamble = | {
diag_preamble = | diag "error: $@";
diag_preamble = | }
diag_preamble = | else
diag_preamble = | {
diag_preamble = | my %hash;
diag_preamble = | Alien::Build::Plugin::Core::Setup->_platform(\%hash);
diag_preamble = | $hash{cmake_generator} = Alien::Build::Plugin::Build::CMake::cmake_generator();
diag_preamble = | $hash{'pkg-config'}->{$_} = File::Which::which($_) for qw( pkg-config pkgconf );
diag_preamble = | $hash{'pkg-config'}->{PKG_CONFIG} = File::Which::which($ENV{PKG_CONFIG}) if defined $ENV{PKG_CONFIG};
diag_preamble = | diag Alien::Build::Util::_dump(\%hash);
diag_preamble = | diag "pkg-config negotiate pick = ", Alien::Build::Plugin::PkgConfig::Negotiate->pick;
diag_preamble = | diag '';
diag_preamble = | diag '';
diag_preamble = | diag "[config.site]";
diag_preamble = | diag(Alien::Build::Plugin::Build::Autoconf->new->config_site);
diag_preamble = | }
diag_preamble = | };
diag = +YAML
diag = +PkgConfig
diag = +PkgConfig::LibPkgConf
diag = +Net::FTP
diag = +URI
diag = +Sort::Versions
daig = +File::Listing
diag = +HTTP::Tiny
diag = +HTML::Parser
diag = +LWP
diag = +File::Listing
diag = +File::Listing::Ftpcopy
diag = +Alien::Base::ModuleBuild
diag = +IO::Zlib
diag = +IO::Uncompress::Bunzip2
diag = +IO::Compress::Bzip2
diag = +Alien::xz
diag = +Alien::Libbz2
diag = +Alien::gzip
diag = +IO::Socket::SSL
diag = +Net::SSLeay
diag = +LWP::Protocol::https
diag = +Alien::cmake3
diag = +Readonly
diag = +Env::ShellWords
diag = +Mojo::DOM58
diag = +Mojolicious
diag = +Archive::Zip
[GatherFile]
filename = corpus/vcpkg/r1/.vcpkg-root
filename = corpus/vcpkg/r2/.vcpkg-root
[RemovePrereqs]
; core pragma
remove = strict
remove = warnings
remove = lib
remove = constant
remove = overload
remove = if
remove = utf8
; core modules
remove = Exporter
remove = Data::Dumper
remove = Carp
remove = File::Temp
remove = Getopt::Long
remove = IO::Socket::INET
remove = File::Basename
remove = File::Copy
remove = Scalar::Util
remove = Storable
remove = Env
remove = File::Find
remove = File::Glob
remove = File::Path
remove = File::Spec
remove = DynaLoader
remove = XSLoader
remove = Term::ANSIColor
; optional for Test::Alien
remove = FFI::Platypus
remove = Acme::Alien::DontPanic
; corpus
remove = Alien::Build::Plugin::RogerRamjet
remove = Alien::Build::Plugin::Fetch::Corpus
remove = Alien::Foo
remove = Alien::libfoo1
remove = Alien::libfoo2
remove = Alien::libfoo3
remove = Alien::perlhelp
; ABMB
remove = Alien::Base::ModuleBuild
remove = Alien::Base::PkgConfig
; pulled in dynamically as needed
remove = Alien::MSYS
remove = URI
remove = URI::file
remove = Net::FTP
remove = HTTP::Tiny
remove = Sort::Versions
remove = File::Listing
remove = File::Listing::Ftpcopy
remove = HTML::LinkExtor
remove = LWP
remove = LWP::UserAgent
remove = PkgConfig
remove = PkgConfig::LibPkgConf
remove = PkgConfig::LibPkgConf::Client
remove = PkgConfig::LibPkgConf::Util
remove = Win32::Vcpkg
remove = Win32::Vcpkg::List
remove = Win32::Vcpkg::Package
; only optionally used in diagnostics
; for tests
remove = YAML
; only used for developer testing
remove = AnyEvent
remove = AnyEvent::FTP::Server
remove = EV
remove = Proc::Daemon
remove = Mojolicious
remove = Mojolicious::Lite
remove = Mojo::DOM
remove = Mojo::DOM58
remove = Mojo::JSON
remove = Mojo::URL
remove = HTTP::Server::PSGI
remove = Plack::App::Directory
remove = Plack::Builder
remove = Plack
remove = URI::Escape
; other optional / dynamic thingies
remove = Archive::Tar
remove = Archive::Zip
remove = Alien::gmake
remove = Alien::cmake3
remove = Devel::Hide
remove = Net::SSLeay
remove = IO::Socket::SSL
remove = Env::ShellWords
remove = Readonly
[Prereqs]
Capture::Tiny = 0.17
Path::Tiny = 0.077
FFI::CheckLib = 0.11
Text::ParseWords = 3.26
ExtUtils::ParseXS = 3.30
ExtUtils::MakeMaker = 6.64
parent = 0
[Prereqs / ConfigureRequires]
-phase = configure
ExtUtils::CBuilder = 0
ExtUtils::ParseXS = 3.30
File::Which = 0
ExtUtils::MakeMaker = 6.64
[Prereqs / BuildRequires]
-phase = build
ExtUtils::MakeMaker = 6.64
[Prereqs / TestSuggestRequires]
-phase = test
-relationship = suggests
Devel::Hide = 0
[Prereqs / SuggestsRequires]
-relationship = suggests
Archive::Tar = 0
[Author::Plicease::Upload]
cpan = 1
[PruneFiles]
match = ^t/bin/.*\.log$
match = ^t/bin/.*\.json$
match = ^example/Alien-
match = ^corpus/alien_build_plugin_fetch_curlcommand/record/new\.
match = ^corpus/alien_build_plugin_fetch_wget/record/new\.
match = ^test-logs/
match = ^testalien
match = ^t/cip/
match = ^.tmp/
match = \.old$
filename = xt/author/pod_spelling_common.t
filename = xt/author/strict.t
[MetaNoIndex]
directory = corpus
directory = example
directory = maint
;; TODO: convert these to inc/mymm.pl so that we can avoid
;; extra prereqs
[DynamicPrereqs / PkgConfigPM]
-condition = !do { require File::Which; ($ENV{PKG_CONFIG} && File::Which::which($ENV{PKG_CONFIG})) || File::Which::which('pkgconf') || File::Which::which('pkg-config') }
-body = requires('PkgConfig' => '0.14026' ); # for static cflags support
[DynamicPrereqs / PkgConfigPMSolaris]
-condition = do { use Config; ($^O eq 'solaris' && $Config{ptrsize} == 8) || $^O eq 'MSWin32' }
-body = requires('PkgConfig' => '0.14026' ); # for using the wrong libraries support
[DynamicPrereqs / CleanupDotTmp]
-raw = $WriteMakefileArgs{clean} = {FILES => ".tmp"};
[DynamicPrereqs / Vcpkg]
-condition = do { use Config; $^O eq 'MSWin32' && $Config{ccname} eq 'cl' }
-body = requires('Win32::Vcpkg' => '0.04');
[Author::Plicease::Thanks]
current = Graham Ollis <plicease@cpan.org>
; if you have a preference for how to display your name
; feel free send a PR. I don't use the git hisory.
contributor = Diab Jerius (DJERIUS)
contributor = Roy Storey (KIWIROY)
contributor = Ilya Pavlov
contributor = David Mertens (run4flat)
contributor = Mark Nunberg (mordy, mnunberg)
contributor = Christian Walde (Mithaldu)
contributor = Brian Wightman (MidLifeXis)
contributor = Zaki Mughal (zmughal)
contributor = mohawk (mohawk2, ETJ)
contributor = Vikas N Kumar (vikasnkumar)
contributor = Flavio Poletti (polettix)
contributor = Salvador Fandiño (salva)
contributor = Gianni Ceccarelli (dakkar)
contributor = Pavel Shaydo (zwon, trinitum)
contributor = Kang-min Liu (劉康民, gugod)
contributor = Nicholas Shipp (nshp)
contributor = Juan Julián Merelo Guervós (JJ)
contributor = Joel Berger (JBERGER)
contributor = Petr Písař (ppisar)
contributor = Lance Wicks (LANCEW)
contributor = Ahmad Fatoum (a3f, ATHREEF)
contributor = José Joaquín Atria (JJATRIA)
contributor = Duke Leto (LETO)
contributor = Shoichi Kaji (SKAJI)
contributor = Shawn Laffan (SLAFFAN)
contributor = Paul Evans (leonerd, PEVANS)
contributor = Håkon Hægland (hakonhagland, HAKONH)
contributor = nick nauwelaerts (INPHOBIA)
contributor = Florian Weimer