Alien-SDL2
view release on metacpan or search on metacpan
inc/My/Builder.pm view on Meta::CPAN
# defaults
$cfg->{version} = $version;
$cfg->{prefix} = '@PrEfIx@';
$cfg->{libs} = $L . $self->get_path('@PrEfIx@/lib') . ' -lSDL2main -lSDL2';
$cfg->{cflags} = '-I' . $self->get_path('@PrEfIx@/include/SDL2') . ' -D_GNU_SOURCE=1 -Dmain=SDL2_main';
$cfg->{ld_shared_libs} = [ ];
# overwrite values available via sdl2-config
my $bp = $self->config_data('build_prefix') || $prefix;
my $devnull = File::Spec->devnull();
my $script = $self->escape_path( rel2abs("$prefix/bin/sdl2-config") );
foreach my $p (qw(version prefix libs cflags)) {
my $o=`$script --$p 2>$devnull`;
if ($o) {
$o =~ s/[\r\n]*$//;
$o =~ s/\Q$prefix\E/\@PrEfIx\@/g;
$cfg->{$p} = $o;
}
}
# write config
inc/My/Builder.pm view on Meta::CPAN
}
sub clean_dir {
my( $self, $dir ) = @_;
if (-d $dir) {
remove_tree($dir);
make_path($dir);
}
}
sub escape_path {
# this needs to be overriden in My::Builder::<platform>
my( $self, $path ) = @_;
return $path;
}
sub check_build_done_marker {
my $self = shift;
return (-e 'build_done');
}
inc/My/Builder/Unix.pm view on Meta::CPAN
}
}
return 1;
}
### internal helper functions
sub _get_configure_cmd {
my ($self, $pack, $prefixdir) = @_;
my $extra = '';
my $escaped_prefixdir = $self->escape_path( $prefixdir );
my $extra_cflags = "-I$escaped_prefixdir/include " . $self->get_additional_cflags();
my $extra_ldflags = "-L$escaped_prefixdir/lib " . $self->get_additional_libs();
my $cmd;
# NOTE: all ugly IFs concerning ./configure params have to go here
if($pack =~ /^SDL2_(image|mixer|ttf|gfx|net)$/) {
$extra .= ' --disable-sdltest';
}
if($pack =~ /^SDL2_/) {
$extra .= " --with-sdl-prefix=$escaped_prefixdir";
}
if($pack eq 'z') {
# does not support params CFLAGS=...
$cmd = "./configure --prefix=$escaped_prefixdir";
}
else {
$cmd = "./configure --prefix=$escaped_prefixdir --enable-static=yes --enable-shared=yes $extra" .
" CFLAGS=\"$extra_cflags\" LDFLAGS=\"$extra_ldflags\"";
}
if($pack eq 'vorbis') {
$cmd = "PKG_CONFIG_PATH=\"$escaped_prefixdir/lib/pkgconfig:\$PKG_CONFIG_PATH\" $cmd";
}
return $cmd;
}
sub _get_make {
my ($self) = @_;
my @try = ('make', 'gmake', $Config{gmake}, $Config{make});
my %tested;
print "Gonna detect GNU make:\n";
inc/My/Builder/Unix.pm view on Meta::CPAN
sub _is_gnu_make {
my ($self, $name) = @_;
my $devnull = File::Spec->devnull();
my $ver = `$name --version 2> $devnull`;
if($ver =~ /GNU Make/i) {
return 1;
}
return 0;
}
sub escape_path {
my( $self, $path ) = @_;
my $_path = $path;
$_path =~ s/([^\\]) /$1\\ /g;
return $_path;
}
1;
inc/My/Builder/Windows.pm view on Meta::CPAN
sub get_additional_libs {
my $self = shift;
if($My::Utility::cc eq 'cl' && $self->notes('env_lib')) {
my $lib = $self->notes('env_lib');
$lib =~ s/"//g;
my @libs = split(/;/, $lib);
my $libs = '';
my $inc = $_;
for( @libs ) {
my $_lib = $self->escape_path( $_ );
$libs .= "/LIBPATH:$_lib " ;
}
return $libs;
}
return '';
}
sub escape_path {
my( $self, $path ) = @_;
my $_path = eval { require Win32; Win32::GetShortPathName($path); };
$_path ||= $path;
$_path = qq("$_path") if $_path =~ / /;
return $_path;
}
1;
( run in 0.347 second using v1.01-cache-2.11-cpan-c21f80fb71c )