adding script for cross compilation on windows
This commit is contained in:
parent
f81c3b5e33
commit
59bc3da395
1 changed files with 242 additions and 0 deletions
242
builder/cross_win32.sh
Executable file
242
builder/cross_win32.sh
Executable file
|
@ -0,0 +1,242 @@
|
|||
## Début script windows ##
|
||||
#!/bin/sh
|
||||
# variables à changer :
|
||||
export BASEDIR=$PWD/wincross
|
||||
|
||||
COMPILER=vc12
|
||||
ARCH=amd64
|
||||
WINEVERSION=1.9.1
|
||||
|
||||
URL="http://kervala.net/download/"
|
||||
URLPREFIX="win32_cross_"
|
||||
URLSUFFIX=".7z"
|
||||
|
||||
download()
|
||||
{
|
||||
PACK=$1
|
||||
|
||||
if [ ! -e $URLPREFIX$PACK$URLSUFFIX ]
|
||||
then
|
||||
echo "Downloading $PACK..."
|
||||
wget -q $URL$URLPREFIX$PACK$URLSUFFIX
|
||||
fi
|
||||
|
||||
echo "Extracting $PACK..."
|
||||
7z x $URLPREFIX$PACK$URLSUFFIX 1> /dev/null
|
||||
|
||||
RET=$?
|
||||
|
||||
if [ -d $PACK/bin ]
|
||||
then
|
||||
chmod +x $PACK/bin/*.exe
|
||||
fi
|
||||
|
||||
return $RET
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if [ "$COMPILER" = "vc8" ]
|
||||
then
|
||||
echo "Using VC++ 2005 compilers"
|
||||
elif [ "$COMPILER" = "vc9" ]
|
||||
then
|
||||
echo "Using VC++ 2008 compilers"
|
||||
elif [ "$COMPILER" = "vc10" ]
|
||||
then
|
||||
echo "Using VC++ 2010 compilers"
|
||||
elif [ "$COMPILER" = "vc11" ]
|
||||
then
|
||||
echo "Using VC++ 2012 compilers"
|
||||
elif [ "$COMPILER" = "vc12" ]
|
||||
then
|
||||
echo "Using VC++ 2013 compilers"
|
||||
elif [ "$COMPILER" = "vc14" ]
|
||||
then
|
||||
echo "Using VC++ 2015 compilers"
|
||||
else
|
||||
echo "Bad compiler $COMPILER"
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [ ! -d "tools" ]
|
||||
then
|
||||
download tools
|
||||
fi
|
||||
|
||||
if [ ! -d $COMPILER ]
|
||||
then
|
||||
download $COMPILER
|
||||
|
||||
ARCHS="amd64 ia64 x86 x86_amd64 x86_ia64"
|
||||
|
||||
for TARCH in $ARCHS
|
||||
do
|
||||
CDIR=$COMPILER/bin/$TARCH
|
||||
|
||||
if [ -d "$CDIR" ]
|
||||
then
|
||||
chmod +x $CDIR/*.exe
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [ ! -d "winsdk" ]
|
||||
then
|
||||
download winsdk
|
||||
fi
|
||||
|
||||
if [ ! -d "dxsdk" ]
|
||||
then
|
||||
download dxsdk
|
||||
fi
|
||||
|
||||
if [ ! -d "$COMPILER/external" ]
|
||||
then
|
||||
download $COMPILER"_external"
|
||||
fi
|
||||
|
||||
export BASEDIRDOS=Z:$(echo "$BASEDIR" | sed 's/\//\\/g')
|
||||
|
||||
export TOOLSDIR=$BASEDIR/tools
|
||||
export TOOLSBINDIR=$TOOLSDIR/bin
|
||||
|
||||
export VCDIR=$BASEDIR/$COMPILER
|
||||
export VCBINDIR=$VCDIR/bin
|
||||
|
||||
export WINSDKDIR=$BASEDIR/winsdk
|
||||
export WINSDKBINDIR=$WINSDKDIR/bin
|
||||
|
||||
# wine
|
||||
if [ ! -z $WINEVERSION ]
|
||||
then
|
||||
export BASEWINEDIR=$BASEDIR/wineversion
|
||||
export WINEDIR=$BASEWINEDIR/$WINEVERSION/bin
|
||||
if [ ! -d $WINEDIR ]
|
||||
then
|
||||
echo "Downloading WINE $WINEVERSION..."
|
||||
wget -q http://www.playonlinux.com/wine/binaries/linux-amd64/PlayOnLinux-wine-$WINEVERSION-linux-amd64.pol
|
||||
echo "Extracting WINE $WINEVERSION..."
|
||||
tar xjf PlayOnLinux-wine-$WINEVERSION-linux-amd64.pol
|
||||
fi
|
||||
fi
|
||||
|
||||
# remove previous win32 pathes af any
|
||||
export PATH=$(echo $PATH | sed 's|:'$BASEDIR'/[a-z0-9./_-]*||g')
|
||||
|
||||
|
||||
export PATH=$PATH:$WINEDIR
|
||||
|
||||
|
||||
# add wine to path
|
||||
export CURRENT_CPU=x86
|
||||
export Configuration=Release
|
||||
export TARGET_PLATFORM=WIN7
|
||||
export APPVER=6.1
|
||||
export DEBUGMSG=Release
|
||||
export INCLUDE=$BASEDIRDOS"\\"$COMPILER"\\include;"$BASEDIRDOS"\\winsdk\\include"
|
||||
export LIB=
|
||||
export LIBPATH=$BASEDIRDOS"\\"$COMPILER"\\lib"
|
||||
|
||||
export PATH=$PATH:$TOOLSBINDIR:$WINSDKBINDIR
|
||||
|
||||
if [ $ARCH = "x86" ]
|
||||
then
|
||||
export PATH=$PATH:$VCBINDIR/x86
|
||||
export WINEPATH=$BASEDIRDOS"\\"$COMPILER"\\bin\\x86;"
|
||||
export TARGET_CPU=x86
|
||||
export LIB=$BASEDIRDOS"\\"$COMPILER"\\lib;"$BASEDIRDOS"\\winsdk\\lib;"$BASEDIRDOS"\\dxsdk\\lib"
|
||||
elif [ $ARCH = "amd64" ]
|
||||
then
|
||||
export PATH=$PATH:$VCBINDIR/x86_amd64
|
||||
export WINEPATH=$BASEDIRDOS"\\"$COMPILER"\\bin\\x86_amd64;"
|
||||
export TARGET_CPU=x64
|
||||
export LIB=$BASEDIRDOS"\\"$COMPILER"\\lib\\amd64;"$BASEDIRDOS"\\winsdk\\lib\\amd64;"$BASEDIRDOS"\\dxsdk\\lib\\amd64"
|
||||
elif [ $ARCH = "ia64" ]
|
||||
then
|
||||
export PATH=$PATH:$VCBINDIR/x86_ia64
|
||||
export WINEPATH=$BASEDIRDOS"\\"$COMPILER"\\bin\\x86_ia64;"
|
||||
export TARGET_CPU=IA64
|
||||
export LIB=$BASEDIRDOS"\\"$COMPILER"\\lib\\ia64;"$BASEDIRDOS"\\winsdk\\lib\\ia64"
|
||||
else
|
||||
echo "Bad arch $ARCH"
|
||||
return 1
|
||||
fi
|
||||
|
||||
export LIBPATH=$LIB
|
||||
export PATH=$PATH:$VCBINDIR
|
||||
|
||||
# PATH environment variable for Wine
|
||||
export WINEPATH=".;"$WINEPATH$BASEDIRDOS"\\"$COMPILER"\\bin;"$BASEDIRDOS"\\winsdk\\bin;"$BASEDIRDOS"\\bin;"$BASEDIRDOS"\\tools\\bin;"$BASEDIRDOS"\\perl\\perl\\bin"
|
||||
|
||||
export WINEPREFIX=$BASEDIR/wine/$WINEVERSION
|
||||
|
||||
mkdir -p $WINEPREFIX
|
||||
|
||||
# launch WINE fot the first time
|
||||
wine ping
|
||||
|
||||
# Copy winemenubuilder.exe to wine to avoid missing X11 warnings
|
||||
#if [ -f $TOOLSBINDIR/winemenubuilder.exe ] && [ -d $WINEPREFIX/drive_c/windows/system32 ]
|
||||
#then
|
||||
# rm -f $WINEPREFIX/drive_c/windows/system32/winemenubuilder.exe
|
||||
# rm -f $WINEPREFIX/drive_c/windows/syswow64/winemenubuilder.exe
|
||||
# export WINEDLLOVERRIDES=winemenubuilder.exe=n
|
||||
#fi
|
||||
|
||||
# delete fake manifests for VC++ 2008 runtimes
|
||||
#rm -rf $WINEPREFIX/drive_c/windows/winsxs/x86_microsoft.vc80*
|
||||
#rm -rf $WINEPREFIX/drive_c/windows/winsxs/manifests/x86_microsoft.vc80*
|
||||
#rm -f $WINEPREFIX/drive_c/windows/system32/msvcr80.dll
|
||||
#rm -rf $WINEPREFIX/drive_c/windows/winsxs/x86_microsoft.vc90*
|
||||
#rm -rf $WINEPREFIX/drive_c/windows/winsxs/manifests/x86_microsoft.vc90*
|
||||
#rm -f $WINEPREFIX/drive_c/windows/system32/msvcr90.dll
|
||||
#rm -f $WINEPREFIX/drive_c/windows/system32/msvcr100.dll
|
||||
#rm -f $WINEPREFIX/drive_c/windows/system32/msvcp100.dll
|
||||
|
||||
# Remove all WINE warnings
|
||||
export WINEDEBUG=-all
|
||||
|
||||
# Setting misc environment variables
|
||||
export QTDIR=Z:$BASEDIR/$COMPILER/qt
|
||||
export DXSDK_DIR=Z:$BASEDIR/dxsdk
|
||||
export VC_DIR=Z:$BASEDIR/$COMPILER
|
||||
#export MT_OPTIONS="-log /tmp/mt/log -verbose"
|
||||
|
||||
echo "TARGET_CPU=$TARGET_CPU"
|
||||
echo "PATH=$PATH"
|
||||
echo "WINEPATH=$WINEPATH"
|
||||
echo "LIB=$LIB"
|
||||
echo "INCLUDE=$INCLUDE"
|
||||
|
||||
export EXTERNAL_MSVC80_PATH=Z:$BASEDIR/vc8/external
|
||||
export EXTERNAL_MSVC90_PATH=Z:$BASEDIR/vc9/external
|
||||
export EXTERNAL_MSVC10_PATH=Z:$BASEDIR/vc10/external
|
||||
export EXTERNAL_MSVC11_PATH=Z:$BASEDIR/vc11/external
|
||||
export EXTERNAL_MSVC12_PATH=Z:$BASEDIR/vc12/external
|
||||
export EXTERNAL_MSVC14_PATH=Z:$BASEDIR/vc14/external
|
||||
|
||||
if [ "$COMPILER" = "vc8" ]
|
||||
then
|
||||
export EXTERNAL_PATH=$EXTERNAL_MSVC80_PATH
|
||||
elif [ "$COMPILER" = "vc9" ]
|
||||
then
|
||||
export EXTERNAL_PATH=$EXTERNAL_MSVC90_PATH
|
||||
elif [ "$COMPILER" = "vc10" ]
|
||||
then
|
||||
export EXTERNAL_PATH=$EXTERNAL_MSVC10_PATH
|
||||
elif [ "$COMPILER" = "vc11" ]
|
||||
then
|
||||
export EXTERNAL_PATH=$EXTERNAL_MSVC11_PATH
|
||||
elif [ "$COMPILER" = "vc12" ]
|
||||
then
|
||||
export EXTERNAL_PATH=$EXTERNAL_MSVC12_PATH
|
||||
export WINEDLLOVERRIDES="msvcr120.dll=n"
|
||||
elif [ "$COMPILER" = "vc14" ]
|
||||
then
|
||||
export EXTERNAL_PATH=$EXTERNAL_MSVC14_PATH
|
||||
fi
|
||||
|
||||
## Fin script windows ##
|
Loading…
Reference in a new issue