Alien-proj

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN


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

alienfile  view on Meta::CPAN

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 )