compat: Use '-' instead of '/' for rc.exe options

When building FFMPEG in the MSYS environment under Windows, one
must not use forward slashes ('/') for command-line options.  It
appears that the MSYS shell interprets these as absolute paths and
then automatically rewrites them into equivalent Windows paths.  For
example, the '/nologo' switch below gets rewritten to something like
'C:/Program Files/Git/nologo', and this obviously breaks the build.
Thankfully, most M$ tools accept dashes ('-') as well.

Signed-off-by: Ziemowit Łąski <15880281+zlaski@users.noreply.github.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
Ziemowit Laski 2023-02-10 02:43:05 +00:00 committed by Martin Storsjö
parent 2296078397
commit f8d6d0fbf1

View File

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
if [ "$1" = "--version" ]; then if [ "$1" = "--version" ]; then
rc.exe /? rc.exe -?
exit $? exit $?
fi fi
@ -10,12 +10,12 @@ if [ $# -lt 2 ]; then
exit 0 exit 0
fi fi
EXTRA_OPTS="/nologo" EXTRA_OPTS="-nologo"
while [ $# -gt 2 ]; do while [ $# -gt 2 ]; do
case $1 in case $1 in
-D*) EXTRA_OPTS="$EXTRA_OPTS /d$(echo $1 | sed -e "s/^..//" -e "s/ /\\\\ /g")" ;; -D*) EXTRA_OPTS="$EXTRA_OPTS -d$(echo $1 | sed -e "s/^..//" -e "s/ /\\\\ /g")" ;;
-I*) EXTRA_OPTS="$EXTRA_OPTS /i$(echo $1 | sed -e "s/^..//" -e "s/ /\\\\ /g")" ;; -I*) EXTRA_OPTS="$EXTRA_OPTS -i$(echo $1 | sed -e "s/^..//" -e "s/ /\\\\ /g")" ;;
-o) OPT_OUT="$2"; shift ;; -o) OPT_OUT="$2"; shift ;;
esac esac
shift shift
@ -29,4 +29,4 @@ else
fi fi
eval set -- $EXTRA_OPTS eval set -- $EXTRA_OPTS
rc.exe "$@" /fo "$OUT" "$IN" rc.exe "$@" -fo "$OUT" "$IN"