Alien-Xmake
view release on metacpan or search on metacpan
builder/Alien/Xmake/Builder.pm view on Meta::CPAN
return $self->_generate_share_config( $bin_path, $ex_ver );
}
}
# Download and Install
say 'Installing a private copy of Xmake...';
if ( $^O eq 'MSWin32' ) {
$self->_install_windows($install_dir);
}
else {
$self->_install_unix($install_dir);
}
# Verify Install
my $bin_path = $install_dir->child( 'bin', $bin_name );
unless ( -x $bin_path ) {
my $fallback = $install_dir->child($bin_name);
$bin_path = $fallback if -x $fallback;
}
if ( !-x $bin_path ) {
die "Installation finished, but binary not found at $bin_path";
builder/Alien/Xmake/Builder.pm view on Meta::CPAN
# /S: Silent
# /D: Destination directory
my $cmd = qq{"$outfile_str" /NOADMIN /S /D=$install_str};
my $ret = system($cmd);
die "Installer failed with code $ret" if $ret != 0;
# Cleanup
path('_build_xmake')->remove_tree;
}
method _install_unix ($installdir) {
my $build_dir = path('_build_xmake');
$build_dir->remove_tree;
$build_dir->mkpath;
my $sudo = '';
if ( $> != 0 && $self->_run_cmd('sudo -n --version >/dev/null 2>&1') ) {
$sudo = 'sudo';
}
unless ( $self->_test_tools() ) {
# Do not auto-install system tools unless requested.
builder/Alien/Xmake/Builder.pm view on Meta::CPAN
my @installers = (
[ 'apt --version', 'apt install -y git build-essential libreadline-dev' ],
[ 'dnf --version', 'dnf install -y git readline-devel bzip2 @development-tools' ],
[ 'yum --version', qq[yum install -y git readline-devel bzip2 && $sudo yum groupinstall -y 'Development Tools'] ],
[ 'zypper --version',
qq[zypper --non-interactive install git readline-devel && $sudo zypper --non-interactive install -t pattern devel_C_C++]
],
[ 'pacman -V', 'pacman -S --noconfirm --needed git base-devel ncurses readline' ],
[ 'emerge -V', 'emerge -atv dev-vcs/git' ],
[ 'pkg list-installed', 'pkg install -y git gmake' ],
[ 'nix-env --version', 'nix-env -i git gcc readline ncurses' ],
[ 'apk --version', 'apk add git gcc g++ make readline-dev ncurses-dev libc-dev linux-headers' ],
[ 'xbps-install --version', 'xbps-install -Sy git base-devel' ]
);
for my $pair (@installers) {
my ( $check, $install ) = @$pair;
if ( $self->_run_cmd( $check . ' >/dev/null 2>&1' ) ) {
say "Detected package manager via: $check";
say 'Attempting to install dependencies...';
return $self->_run_cmd( $sudo . ' ' . $install );
}
( run in 0.899 second using v1.01-cache-2.11-cpan-39bf76dae61 )