Skip to content

1.9.0rc1 regression: exe.full_path() uses forward slashes on Windows #14910

@bgilbert

Description

@bgilbert

Describe the bug
On Windows, the string returned by exe.full_path() uses forward slashes as the path separator.

In particular, this breaks WrapDB subprojects using meson.override_find_program() (e.g. in mesonbuild/wrapdb#2311) because WrapDB expects overridden paths to start with meson.global_source_root() or meson.global_build_root(), both of which use backslashes.

To Reproduce

project('dnm', 'c')
exe = executable('dnm', 'dnm.c')
message(exe.full_path())

Expected behavior
The returned path uses backslashes as the path separator, as it did in Meson 1.8.0. full_path() is typically used in cases where the exact format of the string matters, since it's about to be passed to tools outside Meson's control.

system parameters

  • Is this a cross build or just a plain native build (for the same computer)?

native

  • what operating system (e.g. MacOS Catalina, Windows 10, CentOS 8.0, Ubuntu 18.04, etc.)

Windows Server 2022

  • what Python version are you using e.g. 3.8.0

3.9.13

  • what meson --version

1.9.0.rc1

  • what ninja --version if it's a Ninja build

1.13.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions