aboutsummaryrefslogtreecommitdiff
path: root/skel/build/module-install.pl
blob: 63a9412cee75a976f654e1e0280e135a1cbc1d62 (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
38
#! perl

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

my $perl6bin = 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/\Q$mlib\E/$perl6lib/;
        print "$source => $target\n";
        mkpath dirname($target);
        copy($source, $target) or die "copy failed: $!\n";
        push @pmfiles, $target;
    }
}

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