Apache-SWIT

 view release on metacpan or  search on metacpan

lib/Apache/SWIT/Subsystem/Makefile.pm  view on Meta::CPAN

use strict;
use warnings FATAL => 'all';

package Apache::SWIT::Subsystem::Makefile;
use base 'Apache::SWIT::Maker::Makefile';
use Apache::SWIT::Maker::GeneratorsQueue;
use Apache::SWIT::Maker::Manifest;
use Apache::SWIT::Maker::Config;
use File::Slurp;
use Data::Dumper;

sub write_makefile {
	shift()->SUPER::write_makefile(@_);
	my $mf = read_file('Makefile');
	my $df = join(" ", swmani_dual_tests());
	Apache::SWIT::Maker::Config->instance->for_each_url(sub {
		my ($uri, $n, $v, $ev) = @_;
		$df .= " " . $ev->{template} if $ev->{template};
	});
	$mf =~ s/%IC_TEST_FILES%/$df/;
	write_file('Makefile', $mf);
}

sub make_this_subsystem_dumps {
	my $self = shift;
	my $gq = Apache::SWIT::Maker::GeneratorsQueue->new;
	my $orig_tree = Apache::SWIT::Maker::Config->instance;
	undef $Apache::SWIT::Maker::Config::_instance;
	while (my ($n, $v) = each %{ $orig_tree->{pages} }) {
		$orig_tree->{pages}->{$n} = $gq->run('dump_page_entry', $v);
	}
	my @dual_tests = map { s#t/dual/##; $_ } swmani_dual_tests();
	my %tests = map {
		my $t = read_file("t/dual/$_");
		($_, $t)
	} @dual_tests;
	$orig_tree->{dumped_tests} = \%tests;
	return (original_tree => $orig_tree);
}

sub write_ic {
	my $class = shift;
	my %dumps = $class->make_this_subsystem_dumps;
	Apache::SWIT::Maker::FileWriterData->new
			->write_blib_lib_installationcontent_pm({
		dumps => [ map {
			{ name => $_, 'dump' => Dumper($dumps{$_}) }
	} keys %dumps ] });
}

sub do_install {
	my ($class, $from, $to) = @_;
	$class->install_files("$from/lib", $to);
}

sub _mm_constants {
	return shift()->MY::SUPER::constants(\@_);
}

1;



( run in 1.134 second using v1.01-cache-2.11-cpan-39bf76dae61 )