Skip to content

MSWin32: pkg-config issues with C:/path and unix sep char  #137

Open
@shawnlaffan

Description

@shawnlaffan

This might be better reported against a plugin.

I'm getting failures in compiling a shared version of Alien::proj, which in turn depends on Alien::sqlite. This is on windows.

The Alien::proj alienfile calls the Build::SearchDep plugin to load Alien::sqlite, but later the configure call in the build process cannot find the sqlite3.pc file. The error report suggests that C:/berrybrew/ has been converted to C /berrybrew/, so something in the stack is not escaping the colon before it gets to MSYS. Or the configure script is not honouring MSYS handling of windows paths.

Sample code:

plugin 'Build::SearchDep' => (
  aliens   => ['Alien::sqlite'],
  public_I => 1,
  public_l => 1,
);

Relevant alienfile is at https://github.com/shawnlaffan/perl-alien-proj/blob/f78b8f22b49e7c0361cfa5eacd355aa52aa504f8/alienfile

Sample fail report is at https://ci.appveyor.com/project/shawnlaffan/perl-alien-proj/builds/27221239

If I set $ENV{PKG_CONFIG_PATH} to use a valid MSYS path then the reported configure error is the same, but there is a semicolon in the list of paths, e.g. /C/berrybrew/restofpath;C /berrybrew/restofpath /usr/lib/pkgconfig /usr/share/pkgconfig. This suggests that the handling code is using a windows separator to merge them, which is perhaps a clue as to where it is coming from.

Metadata

Metadata

Assignees

No one assigned

    Labels

    💣MSWin32Windows is a weird best🚉Platform SpecificOften Windows lol, but could be something else

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions