NAME

Alien::MSYS2 - Tools required for autogen scripts in Windows (MSYS2)

VERSION

version 0.01

SYNOPSIS

use Alien::MSYS2;
my $root = Alien::MSYS2->msys2_root;

DESCRIPTION

Please note that this module is somewhat experimental. I do not intend on intentionally making breaking changes, but because of the maturity of this module it may be unavoidable. If you need something more battle tested you should try Alien::MSYS instead.

This Alien module provides the https://msys2.github.io/|MSYS2 tools, which are useful for building many open source packages on the Microsoft Windows platform. When this module is installed, it will generally look for an existing MSYS2 install, if it is available, and if not it will attempt to download it from the internet and install it to a share directory so that it can be used by other Perl modules.

Here is how the detection logic works:

check for user override for download

If the ALIEN_FORCE environment variable is set to true, or if ALIEN_INSTALL_TYPE is set to share, then Alien::MSYS2 will not probe your system for an existing MSYS2 install, and instead download it from the internet.

check for user override for system

If the ALIEN_MSYS2_ROOT variable is set, Alien::MSYS2 will check if that is the location of MSYS2 and use it.

check registry

If Alien::MSYS2 can find the uninstall registry key for MSYS2 it will use this. Typically if you installed MSYS2 using the GUI installer, and haven't moved it since this should work.

check shortcuts

If Alien::MSYS2 can find appropriate start menu shortcuts that point to a valid MSYS2 install, then it will use that.

check that download is acceptable fallback

If ALIEN_INSTALL_TYPE is not set to system, then Alien::MSYS2 will download MSYS from the internet. If it is set to system and none of the other methods above succeeded, the install for Alien::MSYS2 will fail.

CONSTRUCTOR

new

my $alien = Alien::MSYS2->new;

You can create an instance of Alien::MSYS2, which you can use to call its methods. All of the methods for this class can also be called as class methods, so usually you do not need to do this.

METHODS

install_type

my $type = Alien::MSYS2->install_type;

Returns the install type for MSYS. This will be either the string "system" or "share" indicating respectively either a system or a share install.

msys2_root

my $dir = Alien::MSYS2->msys2_root

Returns the root of the MSYS2 install.

bin_dir

my @dir = Alien::MSYS2->bin_dir;

Returns a list of directories that need to be added to the PATH in order for MSYS2 to operate. Note that if MSYS2 is already in the PATH, this will return an empty list.

cflags

provided for Alien::Base compatibility. Does not do anything useful.

dynamic_libs

provided for Alien::Base compatibility. Does not do anything useful.

libs

provided for Alien::Base compatibility. Does not do anything useful.

SEE ALSO

Alien

Manifesto for the Alien concept.

ALien::MSYS

MSYS is a project with a similar name and feature set to MSYS2, but despite the name they are different projects, not different versions of the same project. Alien::MSYS provides MSYS.

Alien::Base

base class useful for writing Alien modules.

AUTHOR

Graham Ollis <plicease@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2016 by Graham Ollis.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.