view scripts/wine-py2exe @ 166:a82cab951ce2

windows packaging stuff
author Neil Muller <drnlmuller@gmail.com>
date Fri, 11 May 2012 23:38:25 +0200
parents
children
line wrap: on
line source

#!/bin/sh
# wine-py2exe
#
# Usage: wine-py2exe

MM_VERSION=`sed -nre 's/VERSION_STR = "(.*)"/\1/p' setup.py`
BUILD_FOLDER="sypikslang-${MM_VERSION}"
ZIP_NAME="${BUILD_FOLDER}.zip"
PY2EXE_LOG="py2exe.log"

WINE_PYTHON=`winepath "C:/Python26"`
WINE_SYS32=`winepath "C:/windows/system32"`

#
# Run py2exe build under wine
#

echo "=== Running wine python setup.py ==="
echo ""
echo "  Sypikslang version: ${MM_VERSION}"
echo "  Writing log to ${PY2EXE_LOG}."
echo ""
echo "  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo "  WARNING: After running please fix the sypikslang.exe"
echo "           checksum and executable size using PETools!"
echo "  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo ""

rm -rf "dist/${BUILD_FOLDER}"
mkdir -p "dist/${BUILD_FOLDER}"
rm -rf "dist/${ZIP_NAME}"

wine python setup.py py2exe >${PY2EXE_LOG} 2>&1

#
# Copy dependencies py2exe missed
#

echo "=== Copying dependencies that py2exe missed ==="
echo ""

DEST="dist/${BUILD_FOLDER}"

if [ -f "${WINE_SYS32}/python26.dll" ]; then
   cp -v "${WINE_SYS32}/python26.dll" "${DEST}"
else
   # Try the python installation
   cp -v "${WINE_PYTHON}//python26.dll" "${DEST}"
fi
# TODO: the line below copies in the Wine placeholder DLL (oddly this
# doesn't appear to break anything)
# Decide whether to keep this or not.
# cp -v "${WINE_SYS32}/msvcr80.dll" "${DEST}"

echo "'data' -> '${DEST}/data'"
hg archive -I "path:data/" "${DEST}"

echo "'${WINE_PYTHON}/Lib/site-packages/pygame' -> '${DEST}'"
rm -rf "${DEST}/pygame"
cp -R "${WINE_PYTHON}/Lib/site-packages/pygame" "${DEST}"
rm -rf "${DEST}/pygame/examples" "${DEST}/pygame/tests" "${DEST}/pygame/docs"

#
# create zip file
#

echo "=== Creating zip of patched py2exe dist folder ==="
echo ""
echo "  Zip file: dist/${ZIP_NAME}"
echo "  Build folder: dist/${BUILD_FOLDER}"
echo ""

cd dist
rm -f "$ZIP_NAME"
zip -r -q "$ZIP_NAME" "$BUILD_FOLDER"
cd ..

echo "=== Done ==="
echo ""
echo -n "  "; du -sh dist/${ZIP_NAME}
echo -n "  "; du -sh dist/${BUILD_FOLDER}
echo ""