-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Description
Describe the bug
In msys2, if i specify run_command('./autogen.sh', check: true) in a meson.build where autogen.sh use autoreconf (ex: https://github.com/FFMS/ffms2/blob/master/autogen.sh), I get this error aclocal-1.18: error: aclocal: file '/msys64/usr/share/aclocal/progtest.m4' does not exist.
It happen because subprocess won't directly the environment variables from msys2. It will translate them to Windows path.
A good example is ACLOCAL_PATH.
If you execute a printenv from a msys2 shell, ACLOCAL_PATH will be /mingw64/share/aclocal:/usr/share/aclocal.
But, subprocess will use C:\msys64\mingw64\share\aclocal;C:\msys64\usr\share\aclocal.
parse_ACLOCAL_PATH from aclocal expect the separator to be : on cygwin/msys2, but subprocess will use ;.
So, it totally break the path when it parse it which explain the error why we get aclocal-1.18: error: aclocal: file '/msys64/usr/share/aclocal/progtest.m4' does not exist.
Expected behavior
Use the environment variable of msys2, so this error doesn't happen.
Workaround
We can simply use run_command('sh', '-l', 'autogen.sh', check: true) which fix the problem with the environment variable.
If we don't want to fix this bug, I think we should mention to use run_command('sh', '-l', 'autogen.sh', check: true) in cygwin here
system parameters
msys2 (it happen in any environnement)