From ac51e186036f8e7c09a9f71d971f54eaa2f0c821 Mon Sep 17 00:00:00 2001 From: Marius Gavrilescu Date: Sat, 22 Oct 2016 18:35:02 +0100 Subject: [PATCH 1/1] Mark optional modules as "recommends" --- Makefile.PL | 37 +++++++++++++++++++++++++++++-------- README | 7 ++++++- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/Makefile.PL b/Makefile.PL index 9cb29a9..e5063e7 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -1,6 +1,30 @@ use 5.014000; use ExtUtils::MakeMaker; +my @optionals = ( + qw/Audio::FLAC::Header 0 + Audio::Opusfile 0 + MP3::Info 0 + MP4::Info 0 + Ogg::Vorbis::Header::PurePerl 0/, +); + +sub is_installed { + my ($module) = @_; + eval "require $module" +} + +my @extra_prereqs; + +unless (grep \&is_installed, @optionals) { + my $answer = ''; + while (!$answer) { + my $yn = lc prompt 'None of the optional dependencies are installed. Install all of them? (default: y) [y/n]', 'y'; + $answer = $yn if $yn eq 'y' || $yn eq 'n'; + } + @extra_prereqs = @optionals if $answer eq 'y'; +} + WriteMakefile( NAME => 'App::MusicExpo', VERSION_FROM => 'lib/App/MusicExpo.pm', @@ -11,19 +35,16 @@ WriteMakefile( LICENSE => 'perl', SIGN => 1, PREREQ_PM => { - qw/Audio::FLAC::Header 0 - Audio::Opusfile 0 - HTML::Template::Compiled 0 + qw/HTML::Template::Compiled 0 Memoize 0 - MP3::Info 0 - MP4::Info 0 - DB_File 0 - Ogg::Vorbis::Header::PurePerl 0/, + DB_File 0/, + @extra_prereqs }, META_MERGE => { - dynamic_config => 0, + dynamic_config => 1, resources => { repository => 'http://git.ieval.ro/?p=app-musicexpo.git' }, + recommends => { @optionals }, } ); diff --git a/README b/README index 42debf7..340e4d7 100644 --- a/README +++ b/README @@ -27,9 +27,14 @@ DEPENDENCIES This module requires these other modules and libraries: + * HTML::Template::Compiled + +The following modules are optional; they determine the formats that +can be read by MusicExpo. Be sure to install at least one of them, +otherwise MusicExpo won't be able to do much! + * Audio::FLAC::Header * Audio::Opusfile - * HTML::Template::Compiled * MP3::Info * MP4::Info * Ogg::Vorbis::Header::PurePerl -- 2.39.2