Skip to content

DESTDIR: Meson's path handling differs from autoconf's on Windows #407

Open
@zmughal

Description

@zmughal

On Windows, Meson's path handling drops the drive letter from the prefix path when joining the DESTDIR with the prefix.

I have a work around that replaces the private Alien::Build::Util::_destdir_prefix function to make this work:

use Path::Tiny;
use Alien::Build::Util;

# Work around for Meson's `destdir_join` which drops the first part of
# the path when joining (this is the drive letter).
# See <https://github.com/mesonbuild/meson/blob/1.2.3/mesonbuild/scripts/__init__.py>.
*Alien::Build::Util::_destdir_prefix = sub {
  my($destdir, $prefix) = @_;
  $prefix =~ s{^/?([a-z]):}{}i if $^O eq 'MSWin32';
  path($destdir)->child($prefix)->stringify;
};

I'm not sure how to approach fixing this. Perhaps there can be a destdir_prefix_method property:

  • POSIX-ish / MinGW join (default): "D:/path/to/destdir" + "C:/foo/bar" ⇒ "D:/path/to/destdir/c/foo/bar"
  • Meson join: "D:/path/to/destdir" + "C:/foo/bar" ⇒ "D:/path/to/destdir/foo/bar"

Or just a callback.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions