#!/bin/sh

# Wrapper for winegcc that allows it to be used in a build generated
# from PuTTY's CMakeLists.txt, by bodging around the command-line
# options that CMake gets wrong.

init=true
link=true
for arg in init "$@"; do
    if $init; then
        set --
        init=false
        continue
    fi

    case "$arg" in
        # The Windows build definition for PuTTY specifies all the
        # system API libraries by names like kernel32.lib. When CMake
        # reads that file and thinks it's compiling for Linux, it will
        # generate link options such as -lkernel32.lib. But in fact
        # winegcc expects -lkernel32, so we need to strip the ".lib"
        # suffix.
        -l*.lib) set -- "$@" "${arg%.lib}";;

        # Options that mean we're not linking.
        -E | -S | -c) link=false  set -- "$@" "$arg";;

        # Anything else, we leave unchanged.
        *) set -- "$@" "$arg";;
    esac
done

if $link; then
    # winegcc requires this library for _wfopen
    set -- "$@" -lucrtbase
fi

echo "$@" >&2
exec winegcc "$@"