#!/usr/bin/env perl
use v5.16;
use strict;
use warnings;
use ExtUtils::MakeMaker;

WriteMakefile(
    NAME           => 'derekovecs::server',
    AUTHOR         => 'Marc Kupietz',
    ABSTRACT       => 'Visualization of paradigmatic and syntagmatic word relations.',
    VERSION_FROM   => 'script/derekovecs-server',
    LICENSE        => 'apache',
    BUILD_REQUIRES => {
     'Test::More' => 0,
     'Test::TempFile' => 0,
     "REST::Client" => 0,
     "Data::Dump" => 0,
    },
    PREREQ_PM      => {
        'Inline::C'                               => '0.82',
        'Getopt::Std'                             => 0,
        'Getopt::Long'                            => 0,
        'Log::Any'                                => '1.701',
        'Encode'                                  => "3.17",
        'Mojolicious'                             => '9.23',
        'Mojolicious::Plugin::Util::RandomString' => '0.09',
        'Mojolicious::Plugin::CHI'                => '0.20',
        'Mojolicious::Plugin::ClientIP'           => '0.02',
        'Mojolicious::Plugin::AutoSecrets'        => '0.006',
        'Mojolicious::Plugin::RequestBase'        => '0.3',
        'Mojolicious::Plugin::RemoteAddr'         => 0,
        'Mojolicious::Plugin::Log::Access'        => '0.041',
        'Mojolicious::Plugin::Piwik'              => '1.00',
        'Mojo::JSON'                              => 0,

        # Required for older perl bundles
        'List::Util' => 1.45,

        # Currently on GitHub only (github.com/akron)
        'Mojolicious::Plugin::Localize' => '0.21'

    },
    MIN_PERL_VERSION => '5.016',
    EXE_FILES        => ['./script/derekovecs-server']
);
