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.50

[@Author::Plicease]
:version      = 2.69
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

workflow = static
workflow = linux
workflow = macos
workflow = windows
workflow = cygwin
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

; ABMB
remove = Alien::Base::ModuleBuild
remove = Alien::Base::PkgConfig

; pulled in dynamically as needed
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 = 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)