Alien-Xmake
view release on metacpan or search on metacpan
"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 }
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 )