128 lines
2.2 KiB
Bash
Executable file
128 lines
2.2 KiB
Bash
Executable file
#! /bin/sh
|
|
# Wrapper for windres to rc which do not understand '-i -o --output-format'.
|
|
# cvtres is invoked by the linker
|
|
scriptversion=2021-04-02.18; # UTC
|
|
|
|
|
|
nl='
|
|
'
|
|
|
|
# We need space, tab and new line, in precisely that order. Quoting is
|
|
# there to prevent tools from complaining about whitespace usage.
|
|
IFS=" "" $nl"
|
|
|
|
file_conv=
|
|
|
|
# func_file_conv build_file lazy
|
|
# Convert a $build file to $host form and store it in $file
|
|
# Currently only supports Windows hosts. If the determined conversion
|
|
# type is listed in (the comma separated) LAZY, no conversion will
|
|
# take place.
|
|
func_file_conv ()
|
|
{
|
|
file=$1
|
|
case $file in
|
|
/ | /[!/]*) # absolute file, and not a UNC file
|
|
if test -z "$file_conv"; then
|
|
# lazily determine how to convert abs files
|
|
case `uname -s` in
|
|
MINGW*)
|
|
file_conv=mingw
|
|
;;
|
|
CYGWIN* | MSYS*)
|
|
file_conv=cygwin
|
|
;;
|
|
*)
|
|
file_conv=wine
|
|
;;
|
|
esac
|
|
fi
|
|
case $file_conv/,$2, in
|
|
*,$file_conv,*)
|
|
;;
|
|
mingw/*)
|
|
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
|
;;
|
|
cygwin/* | msys/*)
|
|
file=`cygpath -m "$file" || echo "$file"`
|
|
;;
|
|
wine/*)
|
|
file=`winepath -w "$file" || echo "$file"`
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# func_windres_wrapper rc args...
|
|
# Adjust compile command to suit rc instead of windres
|
|
func_windres_wrapper ()
|
|
{
|
|
# Assume a capable shell
|
|
in=
|
|
out=
|
|
|
|
for arg
|
|
do
|
|
if test -n "$eat"; then
|
|
eat=
|
|
else
|
|
case $1 in
|
|
-o)
|
|
eat=1
|
|
func_file_conv "$2"
|
|
out="$file"
|
|
echo "OUTPUT:$file"
|
|
set x "$@"
|
|
shift
|
|
;;
|
|
*.obj)
|
|
func_file_conv "$1"
|
|
out="$file"
|
|
echo "OUTPUT:$file"
|
|
set x "$@"
|
|
shift
|
|
;;
|
|
--output-format=*)
|
|
set x "$@"
|
|
shift
|
|
;;
|
|
-i)
|
|
eat=1
|
|
func_file_conv "$2" mingw
|
|
in="$file"
|
|
echo "INPUT:$file"
|
|
set x "$@"
|
|
shift
|
|
;;
|
|
-*)
|
|
set x "$@" "${1//\\\"/\"}"
|
|
shift
|
|
;;
|
|
*)
|
|
set x "$@" "$1"
|
|
shift
|
|
;;
|
|
esac
|
|
fi
|
|
shift
|
|
done
|
|
echo "$@" -fo "$out" "$in"
|
|
exec "$@" -fo "$out" "$in"
|
|
exit 1
|
|
}
|
|
|
|
eat=
|
|
|
|
func_windres_wrapper "$@"
|
|
|
|
|
|
# Local Variables:
|
|
# mode: shell-script
|
|
# sh-indentation: 2
|
|
# eval: (add-hook 'before-save-hook 'time-stamp)
|
|
# time-stamp-start: "scriptversion="
|
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
# time-stamp-time-zone: "UTC0"
|
|
# time-stamp-end: "; # UTC"
|
|
# End:
|