Alien-Xmake

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            "HTTP::Tiny" : "0",
            "JSON::PP" : "2",
            "Path::Tiny" : "0",
            "perl" : "v5.40.0"
         }
      },
      "configure" : {
         "requires" : {
            "Archive::Tar" : "0",
            "CPAN::Meta" : "0",
            "Data::Dumper" : "0",
            "Exporter" : "5.57",
            "ExtUtils::Helpers" : "0.028",
            "ExtUtils::Install" : "0",
            "ExtUtils::InstallPaths" : "0.002",
            "File::Basename" : "0",
            "File::Find" : "0",
            "File::Path" : "0",
            "File::Spec::Functions" : "0",
            "Getopt::Long" : "2.36",
            "HTTP::Tiny" : "0",

builder/Alien/Xmake/Builder.pm  view on Meta::CPAN


class Alien::Xmake::Builder {
    use CPAN::Meta;
    use ExtUtils::Install qw[pm_to_blib install];
    use ExtUtils::InstallPaths;
    use JSON::PP;
    use Config;
    use HTTP::Tiny;
    use Path::Tiny        qw[path cwd];
    use ExtUtils::Helpers qw[make_executable split_like_shell detildefy];
    use Data::Dumper;

    # Configuration
    field $target_version : param : reader //= 'v3.0.6';
    field $force  : param  //= 0;
    field $meta   : reader //= CPAN::Meta->load_file('META.json');
    field $action : param  //= 'build';
    field $target_config = 'lib/Alien/Xmake/ConfigData.pm';

    # Params to Build script
    field $install_base  : param    //= '';

builder/Alien/Xmake/Builder.pm  view on Meta::CPAN

    method _version_cmp ( $v1, $v2 ) {
        require version;
        $v1 =~ s/^v//;
        $v2 =~ s/^v//;
        return version->parse($v1) <=> version->parse($v2);
    }

    method _write_config_data ($data) {
        my $dest = path('blib')->child($target_config);
        $dest->parent->mkpath;
        my $dumper = Data::Dumper->new( [$data], ['conf'] );
        $dumper->Indent(1)->Terse(1)->Sortkeys(1);
        my $content = sprintf <<~'PERL', $dumper->Dump;
        package Alien::Xmake::ConfigData {
            use v5.40;
            use File::Spec;
            use File::Basename qw[dirname];

            my $config = %s;

            sub config ($s, $key //= ()) { defined $key ? $config->{$key} : $config }

cpanfile  view on Meta::CPAN

requires 'perl', 'v5.40.0';
on configure => sub {
    requires 'Archive::Tar';
    requires 'CPAN::Meta';
    requires 'Data::Dumper';
    requires 'Exporter',          '5.57';
    requires 'ExtUtils::Helpers', '0.028';
    requires 'ExtUtils::Install';
    requires 'ExtUtils::InstallPaths', '0.002';
    requires 'File::Basename';
    requires 'File::Find';
    requires 'File::Path';
    requires 'File::Spec::Functions';
    requires 'Getopt::Long', '2.36';
    requires 'HTTP::Tiny';



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