PerlFFI/FFI-CheckLib

Windows DLLs using underscores instead of dashes

shawnlaffan opened this issue · 2 comments

Since it shifted to a cmake build system libproj on windows has started using a naming scheme that separates components with underscores. This means the DLL is now libproj_9_1.dll instead of libproj-9-1.dll.

Assuming this is valid, the regexes at these points need to be updated.

elsif($os eq 'MSWin32')
{
# handle cases like libgeos-3-7-0___.dll and libgtk-2.0-0.dll
$pattern = [ qr{^(?:lib)?(\w+?)(?:-([0-9-\.]+))?_*\.dll$}i ];
$version_split = qr/\-/;
}

I think this will do the trick but have not tested it yet.

  $pattern = [ qr{^(?:lib)?(\w+?)(?:[_-]([0-9-\._]+))?_*\.dll$}i ];
  $version_split = qr/[_\-]/;

Let me know if you want me to work up a PR.

Shawn.

Sounds reasonable. I can't think of how this will break anything.

just a heads up Fedora broke in CI when I bumped the version and I've not got around to fixing it (or deciding to just drop Fedora which might be what I end up doing) so don't worry if that is broken in CI.