aboutsummaryrefslogtreecommitdiff
path: root/build/module-install.pl
blob: cba32dfb84a41c474b9240ec9021555fb4e69302 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#! perl

use warnings;
use strict;
use File::Find;
use File::Copy;
use File::Path;
use File::Basename;

my $perl6 = shift @ARGV;
my $perl6lib = shift @ARGV;

my @pmfiles;
while (@ARGV) {
    my $module = shift @ARGV;
    our $mlib   = "$module/lib";

    find({ no_chdir=>1, wanted => \&libcopy }, $mlib);

    sub libcopy {
        return unless /\.pm6?/;
        my $source = $File::Find::name;
        my $target = $source;
        $target =~ s/$mlib/$perl6lib/;
        print "$source => $target\n";
        mkpath dirname($target);
        copy($source, $target) or die "copy failed: $!\n";
        push @pmfiles, $target;
    }
}

foreach my $pm (@pmfiles) {
    my $out = $pm;  $out =~ s/\.pm6?$/.pir/;
    my @cmd = ('./perl6', '--target=pir', "--output=$out", $pm);
    print join(' ', @cmd), "\n";
    system(@cmd);
}