use alienfile;

# PkgConfig uses the pkg-config negotiator to pick the best
# available implementation (as of this writing, in order:
# libpkgconf, pkg-config, PkgConfig,pm), to determine
# if the system already provides the library.  In addition,
# it gets the version, cflags and libs during either a
# "system" or "share" install.
plugin 'PkgConfig' => 'libcurl';

# in addition to the library, we require that the xz command
# is also available.
plugin 'Probe::CommandLine' => (
  command   => 'curl',
  secondary => 1,
);

share {

  # items in the share block relate to building the package
  # from source.  It is called share because it will be
  # installed into a dist level share directory in your
  # perl lib.

  # The Download negotiator picks the best method for
  # downloading the package.  It uses the version
  # regex to parse out the version number from the
  # tarball so that it can pick the most recent
  # version.
  start_url 'https://curl.haxx.se/download/';
  plugin Download => (
    version => qr/^curl-([0-9\.]+)\.tar\.gz$/,
  );

  # The Extract negotiator picks the best method for
  # extracting from the tarball.  We give it a hint
  # here that we expect the tarball to be .gz compressed
  # in case it needs to load extra modules to
  # decompress.
  plugin Extract => 'tar.gz';

  # The Autoconf plugin builds using the standard
  # configure and make tools.  It uses a DESTDIR
  # ( https://www.gnu.org/prep/standards/html_node/DESTDIR.html )
  # to ensure that the prefix during the build
  # (ie when you install the Alien::xz module)
  # matches the prefix during runtime
  # (ie when you use it from XZ::XS).
  plugin 'Build::Autoconf';

  # This package doesn't build a dynamic library, but if
  # it did this would make sure that it wasn't used with XS.
  # (See Alien::Build::Manual::AlienAuthor for details).
  plugin 'Gather::IsolateDynamic';

};