Alien-SDL2
view release on metacpan or search on metacpan
inc/My/Utility.pm view on Meta::CPAN
package My::Utility;
use strict;
use warnings;
use base qw(Exporter);
our @EXPORT_OK = qw(check_config_script check_prebuilt_binaries check_prereqs_libs check_prereqs_tools find_SDL2_dir find_file check_header
sed_inplace get_dlext $inc_lib_candidates $source_packs);
use Config;
use ExtUtils::CBuilder;
use File::Spec::Functions qw(splitdir catdir splitpath catpath rel2abs);
use File::Find qw(find);
use File::Which;
use File::Copy qw(cp);
use Cwd qw(realpath);
our $cc = $Config{cc};
our $inc_lib_candidates = {
'/usr/local/include' => '/usr/local/lib',
'/usr/include' => '/usr/lib',
'/usr/X11R6/include' => '/usr/X11R6/lib',
'/usr/local/include/smpeg' => '/usr/local/lib',
};
$inc_lib_candidates->{'/usr/pkg/include/smpeg'} = '/usr/local/lib' if -f '/usr/pkg/include/smpeg/smpeg.h';
$inc_lib_candidates->{'/usr/include/smpeg'} = '/usr/lib' if -f '/usr/include/smpeg/smpeg.h';
$inc_lib_candidates->{'/usr/X11R6/include'} = '/usr/X11R6/lib' if -f '/usr/X11R6/include/GL/gl.h';
$inc_lib_candidates->{'/usr/X11R7/include'} = '/usr/X11R7/lib' if -f '/usr/X11R7/include/GL/gl.h';
$inc_lib_candidates->{'/usr/X11R7/include'} = '/usr/X11R7/lib' if -f '/usr/X11R7/include/freetype2/freetype/freetype.h';
$inc_lib_candidates->{'/usr/X11R7/include'} = '/usr/X11R7/lib' if -f '/usr/X11R7/include/fontconfig/fontconfig.h';
$inc_lib_candidates->{'/usr/include/ogg'} = '/usr/lib/x86_64-linux-gnu' if -f '/usr/lib/x86_64-linux-gnu/libogg.so';
$inc_lib_candidates->{'/usr/include/vorbis'} = '/usr/lib/x86_64-linux-gnu' if -f '/usr/lib/x86_64-linux-gnu/libvorbis.so';
$inc_lib_candidates->{'/usr/include'} = '/usr/lib64' if -e '/usr/lib64' && $Config{'myarchname'} =~ /64/;
$inc_lib_candidates->{'/usr/include'} = ['/usr/lib64', '/usr/lib'] if -e '/usr/lib64' && -e '/usr/lib' && $Config{'myarchname'} =~ /64/;
$inc_lib_candidates->{$ENV{SDL2_INC}} = $ENV{SDL2_LIB} if exists $ENV{SDL2_LIB} && exists $ENV{SDL2_INC};
#### packs with prebuilt binaries
# the order matters, we offer binaries to user in the same order (1st = preffered)
my $prebuilt_binaries = [
{
title => "Binaries Win/32bit SDL2 (20130305) RECOMMENDED\n" .
"\t(gfx, image, mixer, net, smpeg, ttf)",
url => [
'http://strawberryperl.com/package/kmx/sdl/32bit_SDL2_20130305.zip',
],
sha1sum => 'e77e5f04339d60871e9b79f66ac1bca4996648a7',
match => sub { $Config{archname} =~ /^MSWin32-x86-/ && $Config{cc} =~ /gcc/ },
},
{
title => "Binaries Win/64bit SDL2 (20130305) RECOMMENDED\n" .
"\t(gfx, image, mixer, net, smpeg, ttf)",
url => [
'http://strawberryperl.com/package/kmx/sdl/64bit_SDL2_20130305.zip',
],
sha1sum => 'f4d9b5e933029571ebbc1e323f504300da7988bc',
match => sub { $Config{archname} =~ /^MSWin32-x64-/ && $Config{cc} =~ /gcc/ },
},
];
#### tarballs with source codes
our $source_packs = [
{
title => "Source code build\n ",
members => [
{
pack => 'z',
version => '1.2.8',
dirname => 'zlib-1.2.8',
url => [
'http://zlib.net/zlib-1.2.8.tar.gz'
],
sha1sum => 'a4d316c404ff54ca545ea71a27af7dbc29817088',
patches => [],
prereq_libs => [],
},
{
pack => 'jpeg',
version => '9',
dirname => 'jpeg-9',
url => [
'http://www.ijg.org/files/jpegsrc.v9.tar.gz'
],
sha1sum => '724987e7690ca3d74d6ab7c1f1b6854e88ca204b',
patches => [],
prereq_libs => [],
},
{
pack => 'tiff',
version => '4.0.3',
( run in 1.123 second using v1.01-cache-2.11-cpan-5735350b133 )