Files
lmms/cmake/modules/winegcc_wrapper.in
T
Lukas W 515fefa6ce Winewrapper fixes (#4501)
* Fix library fix regression from 38f6371de6
* Fix missing windows include directory
2018-07-26 18:37:35 +02:00

64 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
# Wrapper script for winegcc to remove .exe file ending automatically
# appended by winebuild.
# See FindWine.cmake for usage
set -e
args="$@"
# Find output name, link mode and architecture
while [ $# -gt 0 ]; do
key="$1"
case $key in
-o)
output=$2
shift
;;
-c)
no_link=true
;;
-m32)
win32=true
;;
*)
;;
esac
shift
done
if [ -z "$output" ]; then
# If -c is used without specifying an output name, GCC defaults to "a.out".
if [ "$no_link" != true ]; then
output="a.out"
no_move=true
fi
fi
# Some Wine distributions can't find their own headers. WINE_INCLUDE_DIR provided
# by FindWine.cmake
extra_args="-I@WINE_INCLUDE_DIR@ -I@WINE_INCLUDE_DIR@/wine/windows"
# Apply -m32 library fix if necessary
if [ "$win32" = true ] && [ "$no_link" != true ]; then
extra_args="$extra_args @WINE_32_FLAGS@"
fi
# Run winegcc
export WINEBUILD=@WINE_BUILD@
@WINE_CXX@ $extra_args $args
if [ "$no_move" = true ] || [ "$no_link" = true ]; then
exit 0
fi
if [ ! -e "$output.exe" ]; then
echo "Fatal error in winegcc wrapper: No output file \"$output.exe\" found."
exit 1
fi
mv $output.exe $output