#!/usr/bin/perl # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # # This Source Code Form is "Incompatible With Secondary Licenses", as # defined by the Mozilla Public License, v. 2.0. use 5.10.1; use strict; use warnings; use FindBin qw($RealBin); use lib ($RealBin, "$RealBin/lib"); use Module::Build 0.36_14; use Bugzilla::Install::Requirements qw(REQUIRED_MODULES OPTIONAL_MODULES); use Bugzilla::Constants qw(BUGZILLA_VERSION); sub requires { my $requirements = REQUIRED_MODULES(); my $hrequires = {}; foreach my $module (@$requirements) { $hrequires->{$module->{module}} = $module->{version}; } return $hrequires; }; sub build_requires { my $brs = requires(); $brs->{'Module::Build'} = 0; return $brs; } sub recommends { my $recommends = OPTIONAL_MODULES(); my @blacklist = ('Apache-SizeLimit', 'mod_perl'); # Does not compile properly on Travis my $hrecommends = {}; foreach my $module (@$recommends) { next if grep($_ eq $module->{package}, @blacklist); $hrecommends->{$module->{module}} = $module->{version}; } return $hrecommends; } my $build = Module::Build->new( module_name => 'Bugzilla', dist_abstract => < 'Bugzilla/Constants.pm', dist_version => BUGZILLA_VERSION, requires => requires(), recommends => recommends(), license => 'Mozilla_2_0', create_readme => 0, create_makefile_pl => 0, configure_requires => { 'Module::Build' => 0 }, ); $build->create_build_script;