Alien-proj
view release on metacpan or search on metacpan
1.25 2022-11-26
- Share builds: use https for downloads
- Noisier tests for debug purposes
1.24 2022-03-30
- Fix dependency versions in Makefile.PL
1.23 2022-03-27
- Share builds: Set rpath in resulting binaries
- Disable global setting of $ENV{{DY}LD_LIBRARY_PATH}
as it did not work and the rpath change is a better fix.
1.22 2022-03-22
- Add shared alien dependency lib dirs to $ENV{{DY}LD_LIBRARY_PATH}
so upstream FFI and aliens will work. This is set globally
so other approaches welcome.
1.21 2022-03-21
- fix argument spelling in alienfile, otherwise share
builds get mixed system and shared libs from deps
- Probe for GIS Internals builds on Windows. If found then run a system install.
1.20 2022-03-04
- Shared builds: avoid windows path separator issues
- alienfile: minor refactor
if ($on_windows) {
# possible GIS Internals distribution
if (my $path = `where geos_c.dll`) {
Alien::Build->log ('Found possible GIS Internals build');
$path = Path::Tiny::path ($path)->parent;
# could be several variants
my @proj_dlls
= map {$_->[0]}
sort { versioncmp($a->[-1], $b->[-1]) }
map { $_ =~ /(\d+)_(\d+)/; [$_, "$1.$2"] }
glob ("$path/proj*.dll");
$proj_dlls[-1] =~ /(\d+)_(\d+)/;
my $version = "$1.$2";
if (versioncmp ($version, $min_target_version) > 0) {
$path = Path::Tiny::path($proj_dlls[-1])->parent->stringify;
$path =~ s|\\|/|g; # path separators
Alien::Build->log ("Probe::CBuilder checking $path");
plugin 'Probe::CBuilder' => (
cflags => "-I$path/include",
libs => "-L$path/lib -lproj",
);
lib/Alien/proj.pm view on Meta::CPAN
use strict;
use warnings;
use parent qw( Alien::Base );
use Env qw ( @PATH @LD_LIBRARY_PATH @DYLD_LIBRARY_PATH );
use Capture::Tiny qw /:all/;
use File::Which qw /which/;
use List::Util qw /uniq/;
our $VERSION = '1.30';
# adding to global {DY}LD_LIBRARY_PATH vars is icky but seems
# to be needed for utilities and downstream FFI
my %also;
my @alien_bins = (__PACKAGE__->bin_dir);
my @ld_lib_dirs;
foreach my $alien_lib (qw /Alien::libtiff Alien::sqlite/) {
if (eval "require $alien_lib" && $alien_lib->install_type eq 'share') {
$also{$alien_lib}++;
if ($alien_lib->install_type eq 'share') {
push @alien_bins, $alien_lib->bin_dir;
}
( run in 0.512 second using v1.01-cache-2.11-cpan-49f99fa48dc )