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 ifALIEN_INSTALL_TYPE
is set toshare
, then Alien::MSYS2 will not probe your system for an existingMSYS2
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 ofMSYS2
and use it. - check registry
-
If Alien::MSYS2 can find the uninstall registry key for
MSYS2
it will use this. Typically if you installedMSYS2
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 tosystem
, then Alien::MSYS2 will downloadMSYS
from the internet. If it is set tosystem
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 toMSYS2
, but despite the name they are different projects, not different versions of the same project. Alien::MSYS providesMSYS
. - 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.