On 20/02/2020 11:06, Carlo B. wrote:
[...]
x86_64-w64-mingw32-pkg-config are emulated with a shell script, for
example the one for i686 is:
#!/bin/sh
exec pkgconf --personality=i686-w64-mingw32 $@
But while this solution mostly works when you exec it from the command
line, it makes impossible to detect the presence of the tool from
meson and cmake build systems.
If you try to do this on the bash prompt, you get:
$ i686-w64-mingw32-pkg-config --version
pkgconf: --version specified with other options or module names,
assuming --modversion.
Please specify at least one package name on the command line.
and this is exactly what happens with those build systems (and perhaps
others, I don't know): it tries to call pkg-config with "--version"
and it executes the above script that calls pkgconf. But sadly, the
presence of the "--personality" option makes the process to fail,
because the "--version" is currently allowed only when no other
options are added.
And, for this reason, meson and cmake fail the detection of the tool.
I have also filed an issue here for pkgconf:
https://todo.sr.ht/~kaniini/pkgconf/10
because the solution is actually to ignore the presence of the
"--personality" option when the "--version" is written, but
unfortunately I have not received any feedback.
So, I'm also writing here, with the hope that you could find a solution.
[...]
Thanks for reporting this issue.
I guess the alternative to fixing pkgconf would be to modify those
wrapper scripts to detect when the parameters are just '--version' (or
equivalent) and not use --personality in that case?
These wrapper scripts are specific to cygwin (generated by the cygport,
see [1])
It's possible other distros have more sophisticated wrapper scripts,
which avoid this problem?
If you do write or discover some improved wrapper scripts, a patch to
[1] to update them would be appreciated.
[1]
https://cygwin.com/git-cygwin-packages/?p=git/cygwin-packages/pkgconf.git;a=blob;f=pkgconf.cygport#l84
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple