Skip to content

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

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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