#! /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: